Merge branch 'develop' into feat/context-menu-snooze
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div
|
||||
class="w-[25%] bg-white dark:bg-slate-900 contact--panel"
|
||||
:class="{ 'border-left': showAvatar }"
|
||||
class="w-1/4 bg-white dark:bg-slate-900 border-slate-50 dark:border-slate-800/50 h-full text-sm overflow-y-auto relative"
|
||||
:class="showAvatar ? 'border-l border-solid ' : 'border-r border-solid'"
|
||||
>
|
||||
<contact-info
|
||||
:show-close-button="showCloseButton"
|
||||
@@ -151,9 +151,6 @@ export default {
|
||||
@apply pb-3 mb-4;
|
||||
}
|
||||
}
|
||||
.contact--panel {
|
||||
@apply border-r border-slate-50 dark:border-slate-800/50 h-full text-sm overflow-y-auto relative;
|
||||
}
|
||||
|
||||
.list-group {
|
||||
.list-group-item {
|
||||
|
||||
@@ -135,7 +135,7 @@ export default {
|
||||
status={row.availability_status}
|
||||
/>
|
||||
<div class="user-block">
|
||||
<h6 class="sub-block-title overflow-hidden whitespace-nowrap text-ellipsis">
|
||||
<h6 class="text-base overflow-hidden whitespace-nowrap text-ellipsis">
|
||||
<router-link
|
||||
to={`/app/accounts/${this.$route.params.accountId}/contacts/${row.id}`}
|
||||
class="user-name"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="wrap">
|
||||
<div class="header">
|
||||
<h5 class="block-title text-black-900 dark:text-slate-200">
|
||||
<h5 class="text-lg text-black-900 dark:text-slate-200">
|
||||
{{ $t('EVENTS.HEADER.TITLE') }}
|
||||
</h5>
|
||||
</div>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<div class="card-wrap">
|
||||
<div class="header">
|
||||
<div class="text-wrap">
|
||||
<h6 class="text-block-title">
|
||||
<h6 class="text-sm">
|
||||
{{ eventType }}
|
||||
</h6>
|
||||
<span class="event-path">on {{ eventPath }}</span>
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
:show-avatar="false"
|
||||
:contact="contact"
|
||||
/>
|
||||
<div class="w-[75%] h-full">
|
||||
<div class="w-3/4 h-full">
|
||||
<woot-tabs :index="selectedTabIndex" @change="onClickTabChange">
|
||||
<woot-tabs-item
|
||||
v-for="tab in tabs"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<spinner v-if="watchersUiFlas.isFetching" size="tiny" />
|
||||
{{ totalWatchersText }}
|
||||
</p>
|
||||
<p v-else class="text-muted m-0 text-sm">
|
||||
<p v-else class="text-slate-400 dark:text-slate-700 m-0 text-sm">
|
||||
{{ $t('CONVERSATION_PARTICIPANTS.NO_PARTICIPANTS_TEXT') }}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -3,14 +3,13 @@
|
||||
<span class="overflow-hidden whitespace-nowrap text-ellipsis">{{
|
||||
macro.name
|
||||
}}</span>
|
||||
<div class="macros-actions">
|
||||
<div class="macros-actions flex items-center gap-1">
|
||||
<woot-button
|
||||
v-tooltip.left-start="$t('MACROS.EXECUTE.PREVIEW')"
|
||||
size="tiny"
|
||||
variant="smooth"
|
||||
color-scheme="secondary"
|
||||
icon="info"
|
||||
class="margin-right-smaller"
|
||||
@click="toggleMacroPreview(macro)"
|
||||
/>
|
||||
<woot-button
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<form
|
||||
class="contact--form w-full pt-6 px-8 pb-8"
|
||||
class="w-full px-8 pt-6 pb-8 contact--form"
|
||||
@submit.prevent="handleSubmit"
|
||||
>
|
||||
<div>
|
||||
@@ -76,7 +76,7 @@
|
||||
</label>
|
||||
<div
|
||||
v-if="isPhoneNumberNotValid || !phoneNumber"
|
||||
class="callout small warning text-sm dark:bg-yellow-200/20 dark:text-yellow-400"
|
||||
class="relative mx-0 mt-0 mb-2.5 p-2 rounded-md text-sm border border-solid border-yellow-500 text-yellow-700 dark:border-yellow-700 bg-yellow-200/60 dark:bg-yellow-200/20 dark:text-yellow-400"
|
||||
>
|
||||
{{ $t('CONTACT_FORM.FORM.PHONE_NUMBER.HELP') }}
|
||||
</div>
|
||||
@@ -121,17 +121,20 @@
|
||||
<div
|
||||
v-for="socialProfile in socialProfileKeys"
|
||||
:key="socialProfile.key"
|
||||
class="input-group"
|
||||
class="flex items-stretch w-full mb-4"
|
||||
>
|
||||
<span class="input-group-label">{{ socialProfile.prefixURL }}</span>
|
||||
<span
|
||||
class="flex items-center h-10 px-2 text-sm border-solid bg-slate-50 border-y ltr:border-l rtl:border-r ltr:rounded-l-md rtl:rounded-r-md dark:bg-slate-700 text-slate-800 dark:text-slate-100 border-slate-200 dark:border-slate-600"
|
||||
>{{ socialProfile.prefixURL }}</span
|
||||
>
|
||||
<input
|
||||
v-model="socialProfileUserNames[socialProfile.key]"
|
||||
class="input-group-field"
|
||||
class="input-group-field ltr:rounded-l-none rtl:rounded-r-none !mb-0"
|
||||
type="text"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex flex-row justify-end gap-2 py-2 px-0 w-full">
|
||||
<div class="flex flex-row justify-end w-full gap-2 px-0 py-2">
|
||||
<div class="w-full">
|
||||
<woot-submit-button
|
||||
:loading="inProgress"
|
||||
@@ -416,10 +419,6 @@ export default {
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.input-group-label {
|
||||
@apply text-sm bg-slate-50 dark:bg-slate-700 text-slate-800 dark:text-slate-100 border-slate-200 dark:border-slate-600;
|
||||
}
|
||||
|
||||
::v-deep {
|
||||
.multiselect .multiselect__tags .multiselect__single {
|
||||
@apply pl-0;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="relative items-center p-4 bg-white dark:bg-slate-900">
|
||||
<div class="text-left rtl:text-right">
|
||||
<div class="text-left rtl:text-right flex flex-col gap-2">
|
||||
<div class="flex justify-between flex-row">
|
||||
<thumbnail
|
||||
v-if="showAvatar"
|
||||
@@ -17,10 +17,10 @@
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="mt-2 w-full">
|
||||
<div v-if="showAvatar" class="flex items-start mb-2 gap-1.5">
|
||||
<div class="flex flex-col items-start gap-1.5 min-w-0 w-full">
|
||||
<div v-if="showAvatar" class="flex items-start gap-2 min-w-0 w-full">
|
||||
<h3
|
||||
class="text-base text-slate-800 dark:text-slate-100 capitalize whitespace-normal my-0"
|
||||
class="flex-shrink min-w-0 text-base text-slate-800 dark:text-slate-100 capitalize my-0 max-w-full break-words"
|
||||
>
|
||||
{{ contact.name }}
|
||||
</h3>
|
||||
@@ -38,7 +38,7 @@
|
||||
/>
|
||||
<a
|
||||
:href="contactProfileLink"
|
||||
class="fs-default"
|
||||
class="text-base"
|
||||
target="_blank"
|
||||
rel="noopener nofollow noreferrer"
|
||||
>
|
||||
@@ -52,10 +52,10 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p v-if="additionalAttributes.description" class="break-words">
|
||||
<p v-if="additionalAttributes.description" class="break-words mb-0.5">
|
||||
{{ additionalAttributes.description }}
|
||||
</p>
|
||||
<div class="mb-3">
|
||||
<div class="flex flex-col gap-2 items-start">
|
||||
<contact-info-row
|
||||
:href="contact.email ? `mailto:${contact.email}` : ''"
|
||||
:value="contact.email"
|
||||
@@ -95,7 +95,7 @@
|
||||
<social-icons :social-profiles="socialProfiles" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-center w-full mt-2 gap-2">
|
||||
<div class="flex items-center w-full mt-0.5 gap-2">
|
||||
<woot-button
|
||||
v-tooltip="$t('CONTACT_PANEL.NEW_MESSAGE')"
|
||||
title="$t('CONTACT_PANEL.NEW_MESSAGE')"
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
<template>
|
||||
<div class="-ml-1">
|
||||
<div class="ltr:-ml-1 rtl:-mr-1 h-5">
|
||||
<a
|
||||
v-if="href"
|
||||
:href="href"
|
||||
class="flex items-center mb-2 text-slate-800 dark:text-slate-100 hover:underline"
|
||||
class="flex items-center gap-2 text-slate-800 dark:text-slate-100 hover:underline"
|
||||
>
|
||||
<emoji-or-icon
|
||||
:icon="icon"
|
||||
:emoji="emoji"
|
||||
icon-size="14"
|
||||
class="mr-2 ml-1 rtl:mr-1 rtl:ml-2"
|
||||
class="ltr:ml-1 rtl:mr-1"
|
||||
/>
|
||||
<span
|
||||
v-if="value"
|
||||
@@ -29,20 +29,20 @@
|
||||
size="tiny"
|
||||
color-scheme="secondary"
|
||||
icon="clipboard"
|
||||
class-names="copy-button"
|
||||
class-names="p-0"
|
||||
@click="onCopy"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<div
|
||||
v-else
|
||||
class="flex items-center mb-2 text-slate-800 dark:text-slate-100"
|
||||
class="flex items-center gap-2 text-slate-800 dark:text-slate-100"
|
||||
>
|
||||
<emoji-or-icon
|
||||
:icon="icon"
|
||||
:emoji="emoji"
|
||||
icon-size="14"
|
||||
class="mr-2 ml-1 rtl:mr-1 rtl:ml-2"
|
||||
class="ltr:ml-1 rtl:mr-1"
|
||||
/>
|
||||
<span
|
||||
v-if="value"
|
||||
@@ -97,8 +97,3 @@ export default {
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.copy-button {
|
||||
@apply ml-1 rtl:ml-0 rtl:mr-1;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
<template>
|
||||
<form class="conversation--form w-full" @submit.prevent="onFormSubmit">
|
||||
<div v-if="showNoInboxAlert" class="callout warning">
|
||||
<p>
|
||||
<div
|
||||
v-if="showNoInboxAlert"
|
||||
class="relative mx-0 mt-0 mb-2.5 p-2 rounded-none text-sm border border-solid border-yellow-500 dark:border-yellow-700 bg-yellow-200/60 dark:bg-yellow-200/20 text-slate-700 dark:text-yellow-400"
|
||||
>
|
||||
<p class="mb-0">
|
||||
{{ $t('NEW_CONVERSATION.NO_INBOX') }}
|
||||
</p>
|
||||
</div>
|
||||
@@ -226,7 +229,7 @@
|
||||
class="flex top-0 bottom-0 z-30 gap-2 right-0 left-0 items-center justify-center flex-col absolute w-full h-full bg-white/80 dark:bg-slate-700/80"
|
||||
>
|
||||
<fluent-icon icon="cloud-backup" size="40" />
|
||||
<h4 class="page-sub-title text-slate-600 dark:text-slate-200">
|
||||
<h4 class="text-2xl break-words text-slate-600 dark:text-slate-200">
|
||||
{{ $t('CONVERSATION.REPLYBOX.DRAG_DROP') }}
|
||||
</h4>
|
||||
</div>
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
:show-close="true"
|
||||
:color="label.color"
|
||||
variant="smooth"
|
||||
class="max-w-[calc(100%-0.5rem)]"
|
||||
@click="removeLabelFromConversation"
|
||||
/>
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
</span>
|
||||
<span class="article-column article-category">
|
||||
<router-link
|
||||
class="fs-small button clear link secondary"
|
||||
class="text-sm button clear link secondary"
|
||||
:to="getCategoryRoute(category.slug)"
|
||||
>
|
||||
<span
|
||||
@@ -52,7 +52,7 @@
|
||||
</router-link>
|
||||
</span>
|
||||
<span class="article-column article-read-count">
|
||||
<span class="fs-small" :title="formattedViewCount">
|
||||
<span class="text-sm" :title="formattedViewCount">
|
||||
{{ readableViewCount }}
|
||||
</span>
|
||||
</span>
|
||||
@@ -67,7 +67,7 @@
|
||||
</div>
|
||||
</span>
|
||||
<span class="article-column article-last-edited">
|
||||
<span class="fs-small">
|
||||
<span class="text-sm">
|
||||
{{ lastUpdatedAt }}
|
||||
</span>
|
||||
</span>
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
@click="handlePreview"
|
||||
>
|
||||
<h4
|
||||
class="text-block-title text-left mb-0 text-slate-900 dark:text-slate-25 px-1 -mx-1 rounded-sm width-auto hover:underline group-hover:underline"
|
||||
class="text-sm text-left mb-0 text-slate-900 dark:text-slate-25 px-1 -mx-1 rounded-sm width-auto hover:underline group-hover:underline"
|
||||
>
|
||||
{{ title }}
|
||||
</h4>
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="flex flex-col py-1">
|
||||
<div class="flex-container align-middle align-justify py-2">
|
||||
<h3 class="sub-block-title text-slate-900 dark:text-slate-25">
|
||||
<div class="flex align-middle align-justify py-2">
|
||||
<h3 class="text-base text-slate-900 dark:text-slate-25">
|
||||
{{ title }}
|
||||
</h3>
|
||||
<woot-button
|
||||
|
||||
+3
-1
@@ -5,7 +5,9 @@
|
||||
<div class="flex items-center">
|
||||
<woot-sidemenu-icon />
|
||||
<div class="flex items-center my-0 mx-2">
|
||||
<h3 class="text-2xl text-slate-800 dark:text-slate-100 mb-0">
|
||||
<h3
|
||||
class="text-2xl text-slate-800 dark:text-slate-100 font-medium mb-0"
|
||||
>
|
||||
{{ headerTitle }}
|
||||
</h3>
|
||||
<span class="text-sm text-slate-600 dark:text-slate-300 my-0 mx-2">{{
|
||||
|
||||
+1
-1
@@ -85,7 +85,7 @@
|
||||
size="tiny"
|
||||
variant="smooth"
|
||||
icon="delete"
|
||||
color-scheme="secondary"
|
||||
color-scheme="alert"
|
||||
:disabled="locale.code === selectedLocaleCode"
|
||||
@click="deleteLocale(locale.code)"
|
||||
/>
|
||||
|
||||
+5
-7
@@ -1,7 +1,9 @@
|
||||
<template>
|
||||
<div class="wizard-body w-[75%] flex-shrink-0 flex-grow-0 max-w-[75%]">
|
||||
<div
|
||||
class="pt-3 bg-white dark:bg-slate-900 h-full border border-solid border-transparent px-6 pb-6 dark:border-transparent w-full max-w-full md:w-3/4 md:max-w-[75%] flex-shrink-0 flex-grow-0"
|
||||
>
|
||||
<div class="w-full">
|
||||
<h3 class="block-title text-black-900 dark:text-slate-200">
|
||||
<h3 class="text-lg text-black-900 dark:text-slate-200">
|
||||
{{
|
||||
$t(
|
||||
'HELP_CENTER.PORTAL.ADD.CREATE_FLOW_PAGE.BASIC_SETTINGS_PAGE.TITLE'
|
||||
@@ -75,7 +77,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex-end">
|
||||
<div class="flex justify-end">
|
||||
<woot-button
|
||||
:is-loading="isSubmitting"
|
||||
:is-disabled="$v.$invalid"
|
||||
@@ -243,10 +245,6 @@ export default {
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.wizard-body {
|
||||
@apply pt-3 border border-solid border-transparent dark:border-transparent;
|
||||
}
|
||||
|
||||
::v-deep {
|
||||
input {
|
||||
@apply mb-1;
|
||||
|
||||
+5
-7
@@ -1,7 +1,9 @@
|
||||
<template>
|
||||
<div class="wizard-body w-[75%] flex-shrink-0 flex-grow-0 max-w-[75%] h-auto">
|
||||
<div
|
||||
class="pt-3 bg-white dark:bg-slate-900 h-full border border-solid border-transparent px-6 pb-6 dark:border-transparent w-full max-w-full md:w-3/4 md:max-w-[75%] flex-shrink-0 flex-grow-0"
|
||||
>
|
||||
<div class="w-full">
|
||||
<h3 class="block-title text-black-900 dark:text-slate-200">
|
||||
<h3 class="text-lg text-black-900 dark:text-slate-200">
|
||||
{{
|
||||
$t('HELP_CENTER.PORTAL.ADD.CREATE_FLOW_PAGE.CUSTOMIZATION_PAGE.TITLE')
|
||||
}}
|
||||
@@ -57,7 +59,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex-end">
|
||||
<div class="flex justify-end">
|
||||
<woot-button
|
||||
:is-loading="isSubmitting"
|
||||
:is-disabled="$v.$invalid"
|
||||
@@ -150,10 +152,6 @@ export default {
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.wizard-body {
|
||||
@apply pt-3 border border-solid border-transparent dark:border-transparent;
|
||||
}
|
||||
|
||||
::v-deep {
|
||||
input {
|
||||
@apply mb-1;
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
</span>
|
||||
<span
|
||||
v-if="isLocaleDefault(locale.code)"
|
||||
class="fs-small text-slate-300 dark:text-slate-200"
|
||||
class="text-sm text-slate-300 dark:text-slate-200"
|
||||
>
|
||||
{{ `(${$t('HELP_CENTER.PORTAL.DEFAULT')})` }}
|
||||
</span>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
@show="showArticleInPortal"
|
||||
@update-meta="updateMeta"
|
||||
/>
|
||||
<div v-if="isFetching" class="text-center p-normal fs-default h-full">
|
||||
<div v-if="isFetching" class="text-center p-4 text-base h-full">
|
||||
<spinner size="" />
|
||||
<span>{{ $t('HELP_CENTER.EDIT_ARTICLE.LOADING') }}</span>
|
||||
</div>
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
<div class="flex items-center relative">
|
||||
<woot-button
|
||||
variant="hollow"
|
||||
class="absolute [&>span]:flex [&>span]:items-center [&>span]:justify-center z-10 top-[25px] h-[2.45rem] w-[2.45rem] !text-slate-400 dark:!text-slate-600 dark:!bg-slate-900 !p-0"
|
||||
class="absolute [&>span]:flex [&>span]:items-center [&>span]:justify-center z-10 top-[28px] h-[2.5rem] w-[2.45rem] !text-slate-400 dark:!text-slate-600 dark:!bg-slate-900 !p-0"
|
||||
color-scheme="secondary"
|
||||
@click="toggleEmojiPicker"
|
||||
>
|
||||
|
||||
+3
-1
@@ -3,7 +3,9 @@
|
||||
<div class="flex justify-between items-center mt-0 mb-2 mx-0 h-12">
|
||||
<div class="flex items-center">
|
||||
<woot-sidemenu-icon />
|
||||
<h1 class="my-0 mx-2 text-2xl text-slate-800 dark:text-slate-100">
|
||||
<h1
|
||||
class="my-0 mx-2 text-2xl text-slate-800 dark:text-slate-100 font-medium"
|
||||
>
|
||||
{{ $t('HELP_CENTER.PORTAL.HEADER') }}
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
class="flex flex-row overflow-auto py-4 pl-4 rtl:pl-0 rtl:pr-4 h-full bg-slate-50 dark:bg-slate-800"
|
||||
>
|
||||
<woot-wizard
|
||||
class="hide-for-small-only w-[25%]"
|
||||
class="hidden md:block w-1/4"
|
||||
:global-config="globalConfig"
|
||||
:items="items"
|
||||
/>
|
||||
|
||||
+4
-7
@@ -1,5 +1,7 @@
|
||||
<template>
|
||||
<div class="wizard-body w-[75%] flex-shrink-0 flex-grow-0 max-w-[75%] h-auto">
|
||||
<div
|
||||
class="pt-3 bg-white dark:bg-slate-900 h-full border border-solid border-transparent px-6 pb-6 dark:border-transparent w-full max-w-full md:w-3/4 md:max-w-[75%] flex-shrink-0 flex-grow-0"
|
||||
>
|
||||
<empty-state
|
||||
:title="$t('HELP_CENTER.PORTAL.ADD.CREATE_FLOW_PAGE.FINISH_PAGE.TITLE')"
|
||||
:message="
|
||||
@@ -8,7 +10,7 @@
|
||||
>
|
||||
<div class="w-full text-center">
|
||||
<router-link
|
||||
class="button success nice"
|
||||
class="button success nice rounded"
|
||||
:to="{
|
||||
name: 'list_all_portals',
|
||||
}"
|
||||
@@ -35,8 +37,3 @@ export default {
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.wizard-body {
|
||||
@apply pb-3;
|
||||
}
|
||||
</style>
|
||||
|
||||
+1
-3
@@ -139,9 +139,7 @@ export default {
|
||||
uiFlags: 'notifications/getUIFlags',
|
||||
}),
|
||||
notificationPanelFooterIconClass() {
|
||||
return this.isRTLView
|
||||
? 'margin-right-minus-slab'
|
||||
: 'margin-left-minus-slab';
|
||||
return this.isRTLView ? '-mr-3' : '-ml-3';
|
||||
},
|
||||
totalUnreadNotifications() {
|
||||
return this.meta.unreadCount;
|
||||
|
||||
+2
-1
@@ -1,9 +1,10 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="w-full">
|
||||
<woot-button
|
||||
size="expanded"
|
||||
color-scheme="secondary"
|
||||
variant="link"
|
||||
class="w-full"
|
||||
@click="onClickOpenNotification()"
|
||||
>
|
||||
<div
|
||||
|
||||
+3
-5
@@ -1,5 +1,7 @@
|
||||
<template>
|
||||
<section class="notification--table-wrap bg-white dark:bg-slate-900">
|
||||
<section
|
||||
class="h-full flex-shrink flex-grow overflow-hidden py-8 px-4 bg-white dark:bg-slate-900"
|
||||
>
|
||||
<woot-submit-button
|
||||
v-if="notificationMetadata.unreadCount"
|
||||
class="button nice success button--fixed-top"
|
||||
@@ -136,10 +138,6 @@ export default {
|
||||
@apply text-sm m-0 text-slate-800 dark:text-slate-100;
|
||||
}
|
||||
|
||||
.notification--table-wrap {
|
||||
@apply overflow-hidden hover:overflow-y-auto flex-shrink flex-grow h-full py-8 px-12;
|
||||
}
|
||||
|
||||
.notifications-table {
|
||||
> tbody {
|
||||
> tr {
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="columns notification--page">
|
||||
<div class="notification--content medium-12">
|
||||
<div class="overflow-y-auto h-full">
|
||||
<div class="flex flex-col h-full">
|
||||
<notification-table
|
||||
:notifications="records"
|
||||
:is-loading="uiFlags.isFetching"
|
||||
|
||||
@@ -15,15 +15,17 @@
|
||||
v-if="icon"
|
||||
:icon="icon"
|
||||
:class="iconClass"
|
||||
class="mr-2 ml-4 rtl:ml-2 rtl:mr-4"
|
||||
class="mr-2 ml-1 rtl:ml-2 rtl:mr-1 hidden md:block"
|
||||
/>
|
||||
<slot />
|
||||
<span class="text-slate-900 dark:text-slate-100">{{ headerTitle }}</span>
|
||||
<span class="text-slate-900 font-medium text-2xl dark:text-slate-100">
|
||||
{{ headerTitle }}
|
||||
</span>
|
||||
</h1>
|
||||
<router-link
|
||||
v-if="showNewButton && isAdmin"
|
||||
:to="buttonRoute"
|
||||
class="button success button--fixed-top"
|
||||
class="button success button--fixed-top px-3.5 py-1 rounded-[5px] flex gap-2"
|
||||
>
|
||||
<fluent-icon icon="add-circle" />
|
||||
<span class="button__content">
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
<template>
|
||||
<div class="flex flex-col w-full items-start">
|
||||
<h2 class="text-xl text-slate-800 dark:text-slate-100 break-words">
|
||||
<h2
|
||||
class="text-xl font-medium mb-1 text-slate-800 dark:text-slate-100 break-words"
|
||||
>
|
||||
{{ headerTitle }}
|
||||
</h2>
|
||||
<p
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div
|
||||
class="flex flex-1 h-full justify-between flex-col m-0 bg-slate-25 dark:bg-slate-900"
|
||||
class="flex flex-1 h-full justify-between flex-col m-0 bg-slate-25 dark:bg-slate-900 overflow-auto"
|
||||
>
|
||||
<settings-header
|
||||
button-route="new"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<div
|
||||
class="flex-grow-0 flex-shrink-0 flex-[25%] min-w-0 py-4 pr-6 pl-0"
|
||||
>
|
||||
<h4 class="block-title text-black-900 dark:text-slate-200">
|
||||
<h4 class="text-lg font-medium text-black-900 dark:text-slate-200">
|
||||
{{ $t('GENERAL_SETTINGS.FORM.GENERAL_SECTION.TITLE') }}
|
||||
</h4>
|
||||
<p>{{ $t('GENERAL_SETTINGS.FORM.GENERAL_SECTION.NOTE') }}</p>
|
||||
@@ -87,12 +87,12 @@
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="p-4 border-slate-25 dark:border-slate-700 text-black-900 dark:text-slate-300 row"
|
||||
class="p-4 border-slate-25 dark:border-slate-700 text-black-900 dark:text-slate-300 flex flex-row"
|
||||
>
|
||||
<div
|
||||
class="flex-grow-0 flex-shrink-0 flex-[25%] min-w-0 py-4 pr-6 pl-0"
|
||||
>
|
||||
<h4 class="block-title text-black-900 dark:text-slate-200">
|
||||
<h4 class="text-lg font-medium text-black-900 dark:text-slate-200">
|
||||
{{ $t('GENERAL_SETTINGS.FORM.ACCOUNT_ID.TITLE') }}
|
||||
</h4>
|
||||
<p>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="flex-1 overflow-auto p-4">
|
||||
<div class="flex flex-row gap-4">
|
||||
<div class="w-[60%]">
|
||||
<div class="w-full lg:w-3/5">
|
||||
<woot-loading-state
|
||||
v-if="uiFlags.isFetching"
|
||||
:message="$t('AGENT_BOTS.LIST.LOADING')"
|
||||
@@ -23,7 +23,7 @@
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="w-[34%]">
|
||||
<div class="hidden lg:block w-1/3">
|
||||
<p v-html="$t('AGENT_BOTS.SIDEBAR_TXT')" />
|
||||
</div>
|
||||
</div>
|
||||
@@ -94,9 +94,11 @@ export default {
|
||||
.bots-list {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.nowrap {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.white-text {
|
||||
color: white;
|
||||
}
|
||||
|
||||
+2
-11
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<tr>
|
||||
<tr class="space-x-2">
|
||||
<td class="agent-bot--details">
|
||||
<div class="agent-bot--link">
|
||||
{{ agentBot.name }}
|
||||
@@ -9,7 +9,7 @@
|
||||
<show-more :text="agentBot.description" :limit="120" />
|
||||
</div>
|
||||
</td>
|
||||
<td class="button-wrapper">
|
||||
<td class="flex justify-end gap-1">
|
||||
<woot-button
|
||||
v-if="isACSMLTypeBot"
|
||||
v-tooltip.top="$t('AGENT_BOTS.EDIT.BUTTON_TEXT')"
|
||||
@@ -75,13 +75,4 @@ export default {
|
||||
.agent-bot--details {
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
.button-wrapper {
|
||||
max-width: var(--space-mega);
|
||||
min-width: auto;
|
||||
|
||||
button:nth-child(2) {
|
||||
margin-left: var(--space-normal);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<span>
|
||||
<span class="inline-flex items-center gap-1">
|
||||
<img
|
||||
v-tooltip="botTypeConfig[botType].label"
|
||||
class="agent-bot-type--thumbnail"
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
<!-- List Agents -->
|
||||
<div class="flex flex-row gap-4">
|
||||
<div class="w-[60%]">
|
||||
<div class="w-full lg:w-3/5">
|
||||
<woot-loading-state
|
||||
v-if="uiFlags.isFetching"
|
||||
:message="$t('AGENT_MGMT.LOADING')"
|
||||
@@ -27,7 +27,6 @@
|
||||
<td>
|
||||
<thumbnail
|
||||
:src="agent.thumbnail"
|
||||
class="columns"
|
||||
:username="agent.name"
|
||||
size="40px"
|
||||
:status="agent.availability_status"
|
||||
@@ -85,7 +84,7 @@
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="w-[34%]">
|
||||
<div class="w-1/3 hidden lg:block">
|
||||
<span
|
||||
v-dompurify-html="
|
||||
useInstallationName(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="flex flex-row gap-4 pl-2">
|
||||
<div class="w-[60%]">
|
||||
<div class="flex flex-row gap-4 p-8">
|
||||
<div class="w-full lg:w-3/5">
|
||||
<woot-tabs :index="selectedTabIndex" @change="onClickTabChange">
|
||||
<woot-tabs-item
|
||||
v-for="tab in tabs"
|
||||
@@ -81,7 +81,7 @@
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="w-[34%]">
|
||||
<div class="hidden lg:block w-1/3">
|
||||
<span v-dompurify-html="$t('ATTRIBUTES_MGMT.SIDEBAR_TXT')" />
|
||||
</div>
|
||||
<woot-modal :show.sync="showEditPopup" :on-close="hideEditPopup">
|
||||
@@ -224,6 +224,7 @@ export default {
|
||||
@apply p-0;
|
||||
}
|
||||
}
|
||||
|
||||
.tabs-title a {
|
||||
font-weight: var(--font-weight-medium);
|
||||
padding-top: 0;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="flex-1 overflow-auto p-4">
|
||||
<div class="flex-1 overflow-auto">
|
||||
<woot-button
|
||||
color-scheme="success"
|
||||
class-names="button--fixed-top"
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
class="woot-table w-full"
|
||||
>
|
||||
<colgroup>
|
||||
<col class="w-[60%]" />
|
||||
<col class="w-3/5" />
|
||||
<col />
|
||||
<col />
|
||||
</colgroup>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
{{ $t('AUTOMATION.HEADER_BTN_TXT') }}
|
||||
</woot-button>
|
||||
<div class="flex flex-row gap-4">
|
||||
<div class="w-[60%]">
|
||||
<div class="w-full lg:w-3/5">
|
||||
<p
|
||||
v-if="!uiFlags.isFetching && !records.length"
|
||||
class="flex h-full items-center flex-col justify-center"
|
||||
@@ -77,7 +77,7 @@
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="w-[34%]">
|
||||
<div class="hidden lg:block w-1/3">
|
||||
<span v-dompurify-html="$t('AUTOMATION.SIDEBAR_TXT')" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
</label>
|
||||
|
||||
<label
|
||||
v-if="isOnOffType"
|
||||
v-if="isOneOffType"
|
||||
class="multiselect-wrap--small"
|
||||
:class="{ error: $v.selectedAudience.$error }"
|
||||
>
|
||||
@@ -106,7 +106,7 @@
|
||||
</span>
|
||||
</label>
|
||||
|
||||
<label v-if="isOnOffType">
|
||||
<label v-if="isOneOffType">
|
||||
{{ $t('CAMPAIGN.ADD.FORM.SCHEDULED_AT.LABEL') }}
|
||||
<woot-date-time-picker
|
||||
:value="scheduledAt"
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
<template>
|
||||
<div
|
||||
class="bg-white dark:bg-slate-800 mb-2 border border-slate-50 dark:border-slate-900 rounded-md px-5 py-4"
|
||||
class="px-5 py-4 mb-2 bg-white border rounded-md dark:bg-slate-800 border-slate-50 dark:border-slate-900"
|
||||
>
|
||||
<div class="flex flex-row items-start justify-between">
|
||||
<div class="flex flex-col">
|
||||
<div class="text-base font-medium -mt-1 mb-1">
|
||||
<div
|
||||
class="mb-1 -mt-1 text-base font-medium text-slate-900 dark:text-slate-100"
|
||||
>
|
||||
{{ campaign.title }}
|
||||
</div>
|
||||
<div
|
||||
@@ -35,14 +37,14 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-row mt-5 items-center space-x-3">
|
||||
<div class="flex flex-row items-center mt-5 space-x-3">
|
||||
<woot-label
|
||||
small
|
||||
:title="campaignStatus"
|
||||
:color-scheme="colorScheme"
|
||||
class="text-xs mr-3"
|
||||
class="mr-3 text-xs"
|
||||
/>
|
||||
<inbox-name :inbox="campaign.inbox" class="ltr:ml-0 rtl:mr-0 mb-1" />
|
||||
<inbox-name :inbox="campaign.inbox" class="mb-1 ltr:ml-0 rtl:mr-0" />
|
||||
<user-avatar-with-name
|
||||
v-if="campaign.sender"
|
||||
:user="campaign.sender"
|
||||
@@ -50,13 +52,13 @@
|
||||
/>
|
||||
<div
|
||||
v-if="campaign.trigger_rules.url"
|
||||
class="text-xs text-woot-600 mb-1 text-truncate w-1/4"
|
||||
class="w-1/4 mb-1 text-xs text-woot-600 text-truncate"
|
||||
>
|
||||
{{ campaign.trigger_rules.url }}
|
||||
</div>
|
||||
<div
|
||||
v-if="campaign.scheduled_at"
|
||||
class="text-xs text-slate-700 dark:text-slate-500 mb-1"
|
||||
class="mb-1 text-xs text-slate-700 dark:text-slate-500"
|
||||
>
|
||||
{{ messageStamp(new Date(campaign.scheduled_at), 'LLL d, h:mm a') }}
|
||||
</div>
|
||||
|
||||
@@ -18,7 +18,7 @@ export default {
|
||||
},
|
||||
{
|
||||
path: 'ongoing',
|
||||
name: 'settings_account_campaigns',
|
||||
name: 'ongoing_campaigns',
|
||||
roles: ['administrator'],
|
||||
component: Index,
|
||||
},
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<div class="editor-wrap">
|
||||
<woot-message-editor
|
||||
v-model="content"
|
||||
class="message-editor"
|
||||
class="message-editor [&>div]:px-1"
|
||||
:class="{ editor_warning: $v.content.$error }"
|
||||
:enable-variables="true"
|
||||
:enable-canned-responses="false"
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
<div class="editor-wrap">
|
||||
<woot-message-editor
|
||||
v-model="content"
|
||||
class="message-editor"
|
||||
class="message-editor [&>div]:px-1"
|
||||
:class="{ editor_warning: $v.content.$error }"
|
||||
:enable-variables="true"
|
||||
:enable-canned-responses="false"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="flex-1 overflow-auto p-4">
|
||||
<div class="flex-1 overflow-auto">
|
||||
<woot-button
|
||||
color-scheme="success"
|
||||
class-names="button--fixed-top"
|
||||
@@ -10,11 +10,11 @@
|
||||
</woot-button>
|
||||
|
||||
<!-- List Canned Response -->
|
||||
<div class="flex flex-row gap-4">
|
||||
<div class="w-[60%]">
|
||||
<div class="flex flex-row gap-4 p-8">
|
||||
<div class="w-full xl:w-3/5">
|
||||
<p
|
||||
v-if="!uiFlags.fetchingList && !records.length"
|
||||
class="flex h-full items-center flex-col justify-center"
|
||||
class="flex flex-col items-center justify-center h-full"
|
||||
>
|
||||
{{ $t('CANNED_MGMT.LIST.404') }}
|
||||
</p>
|
||||
@@ -32,6 +32,7 @@
|
||||
<th
|
||||
v-for="thHeader in $t('CANNED_MGMT.LIST.TABLE_HEADER')"
|
||||
:key="thHeader"
|
||||
class="last:text-right"
|
||||
>
|
||||
{{ thHeader }}
|
||||
</th>
|
||||
@@ -42,7 +43,10 @@
|
||||
:key="cannedItem.short_code"
|
||||
>
|
||||
<!-- Short Code -->
|
||||
<td class="w-[8.75rem]">
|
||||
<td
|
||||
class="w-[8.75rem] truncate max-w-[8.75rem]"
|
||||
:title="cannedItem.short_code"
|
||||
>
|
||||
{{ cannedItem.short_code }}
|
||||
</td>
|
||||
<!-- Content -->
|
||||
@@ -50,7 +54,7 @@
|
||||
{{ cannedItem.content }}
|
||||
</td>
|
||||
<!-- Action Buttons -->
|
||||
<td class="button-wrapper">
|
||||
<td class="flex justify-end gap-1 min-w-[12.5rem]">
|
||||
<woot-button
|
||||
v-tooltip.top="$t('CANNED_MGMT.EDIT.BUTTON_TEXT')"
|
||||
variant="smooth"
|
||||
@@ -75,7 +79,7 @@
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="w-[34%]">
|
||||
<div class="hidden w-1/3 xl:block">
|
||||
<span v-dompurify-html="$t('CANNED_MGMT.SIDEBAR_TXT')" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<template>
|
||||
<div class="wizard-body w-[75%] flex-shrink-0 flex-grow-0 max-w-[75%]">
|
||||
<div
|
||||
class="border border-slate-25 dark:border-slate-800/60 bg-white dark:bg-slate-900 h-full p-6 w-full max-w-full md:w-3/4 md:max-w-[75%] flex-shrink-0 flex-grow-0"
|
||||
>
|
||||
<form class="mx-0 flex flex-wrap" @submit.prevent="addAgents()">
|
||||
<div class="w-full">
|
||||
<page-header
|
||||
@@ -7,7 +9,7 @@
|
||||
:header-content="$t('INBOX_MGMT.ADD.AGENTS.DESC')"
|
||||
/>
|
||||
</div>
|
||||
<div class="w-[60%]">
|
||||
<div class="w-3/5">
|
||||
<div class="w-full">
|
||||
<label :class="{ error: $v.selectedAgents.$error }">
|
||||
{{ $t('INBOX_MGMT.ADD.AGENTS.TITLE') }}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<template>
|
||||
<div class="wizard-body w-[75%] flex-shrink-0 flex-grow-0 max-w-[75%] h-auto">
|
||||
<div
|
||||
class="border border-slate-25 dark:border-slate-800/60 bg-white dark:bg-slate-900 h-full p-6 w-full max-w-full md:w-3/4 md:max-w-[75%] flex-shrink-0 flex-grow-0"
|
||||
>
|
||||
<page-header
|
||||
:header-title="$t('INBOX_MGMT.ADD.AUTH.TITLE')"
|
||||
:header-content="
|
||||
@@ -82,12 +84,3 @@ export default {
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.height-auto {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.channel-list {
|
||||
margin-top: var(--space-medium);
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<template>
|
||||
<div class="wizard-body w-[75%] flex-shrink-0 flex-grow-0 max-w-[75%]">
|
||||
<div
|
||||
class="border border-slate-25 dark:border-slate-800/60 bg-white dark:bg-slate-900 h-full p-6 w-full max-w-full md:w-3/4 md:max-w-[75%] flex-shrink-0 flex-grow-0"
|
||||
>
|
||||
<empty-state
|
||||
:title="$t('INBOX_MGMT.FINISH.TITLE')"
|
||||
:message="message"
|
||||
@@ -58,7 +60,7 @@
|
||||
</div>
|
||||
<div class="flex justify-center gap-2 mt-4">
|
||||
<router-link
|
||||
class="button hollow primary"
|
||||
class="button hollow primary rounded"
|
||||
:to="{
|
||||
name: 'settings_inbox_show',
|
||||
params: { inboxId: $route.params.inbox_id },
|
||||
@@ -67,7 +69,7 @@
|
||||
{{ $t('INBOX_MGMT.FINISH.MORE_SETTINGS') }}
|
||||
</router-link>
|
||||
<router-link
|
||||
class="button success"
|
||||
class="button success rounded"
|
||||
:to="{
|
||||
name: 'inbox_dashboard',
|
||||
params: { inboxId: $route.params.inbox_id },
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="settings--content">
|
||||
<div class="mx-8">
|
||||
<settings-section
|
||||
:title="$t('INBOX_MGMT.IMAP.TITLE')"
|
||||
:sub-title="$t('INBOX_MGMT.IMAP.SUBTITLE')"
|
||||
@@ -10,16 +10,17 @@
|
||||
<input
|
||||
v-model="isIMAPEnabled"
|
||||
type="checkbox"
|
||||
class="ltr:mr-2 rtl:ml-2"
|
||||
name="toggle-imap-enable"
|
||||
/>
|
||||
{{ $t('INBOX_MGMT.IMAP.TOGGLE_AVAILABILITY') }}
|
||||
</label>
|
||||
<p>{{ $t('INBOX_MGMT.IMAP.TOGGLE_HELP') }}</p>
|
||||
<div v-if="isIMAPEnabled" class="imap-details-wrap">
|
||||
<div v-if="isIMAPEnabled" class="mb-6">
|
||||
<woot-input
|
||||
v-model.trim="address"
|
||||
:class="{ error: $v.address.$error }"
|
||||
class="medium-9 columns"
|
||||
class="max-w-[75%] w-full"
|
||||
:label="$t('INBOX_MGMT.IMAP.ADDRESS.LABEL')"
|
||||
:placeholder="$t('INBOX_MGMT.IMAP.ADDRESS.PLACE_HOLDER')"
|
||||
@blur="$v.address.$touch"
|
||||
@@ -28,7 +29,7 @@
|
||||
v-model="port"
|
||||
type="number"
|
||||
:class="{ error: $v.port.$error }"
|
||||
class="medium-9 columns"
|
||||
class="max-w-[75%] w-full"
|
||||
:label="$t('INBOX_MGMT.IMAP.PORT.LABEL')"
|
||||
:placeholder="$t('INBOX_MGMT.IMAP.PORT.PLACE_HOLDER')"
|
||||
@blur="$v.port.$touch"
|
||||
@@ -36,7 +37,7 @@
|
||||
<woot-input
|
||||
v-model="login"
|
||||
:class="{ error: $v.login.$error }"
|
||||
class="medium-9 columns"
|
||||
class="max-w-[75%] w-full"
|
||||
:label="$t('INBOX_MGMT.IMAP.LOGIN.LABEL')"
|
||||
:placeholder="$t('INBOX_MGMT.IMAP.LOGIN.PLACE_HOLDER')"
|
||||
@blur="$v.login.$touch"
|
||||
@@ -44,7 +45,7 @@
|
||||
<woot-input
|
||||
v-model="password"
|
||||
:class="{ error: $v.password.$error }"
|
||||
class="medium-9 columns"
|
||||
class="max-w-[75%] w-full"
|
||||
:label="$t('INBOX_MGMT.IMAP.PASSWORD.LABEL')"
|
||||
:placeholder="$t('INBOX_MGMT.IMAP.PASSWORD.PLACE_HOLDER')"
|
||||
type="password"
|
||||
@@ -54,6 +55,7 @@
|
||||
<input
|
||||
v-model="isSSLEnabled"
|
||||
type="checkbox"
|
||||
class="ltr:mr-2 rtl:ml-2"
|
||||
name="toggle-enable-ssl"
|
||||
/>
|
||||
{{ $t('INBOX_MGMT.IMAP.ENABLE_SSL') }}
|
||||
@@ -159,8 +161,3 @@ export default {
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.imap-details-wrap {
|
||||
margin-bottom: var(--space-medium);
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
class="flex flex-row overflow-auto p-4 h-full bg-slate-25 dark:bg-slate-800"
|
||||
>
|
||||
<woot-wizard
|
||||
class="hide-for-small-only w-[25%]"
|
||||
class="hidden md:block w-1/4"
|
||||
:global-config="globalConfig"
|
||||
:items="items"
|
||||
/>
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
<template>
|
||||
<div class="flex-1 overflow-auto p-4">
|
||||
<!-- List Canned Response -->
|
||||
<div class="flex flex-row gap-4">
|
||||
<div class="w-[60%]">
|
||||
<div class="flex-1 overflow-auto">
|
||||
<div class="flex flex-row gap-4 p-8">
|
||||
<div class="w-full lg:w-3/5">
|
||||
<p
|
||||
v-if="!inboxesList.length"
|
||||
class="flex h-full items-center flex-col justify-center"
|
||||
@@ -99,7 +98,7 @@
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="w-[34%]">
|
||||
<div class="w-1/3 hidden lg:block">
|
||||
<span
|
||||
v-dompurify-html="
|
||||
useInstallationName(
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
{{ $t('INBOX_MGMT.PRE_CHAT_FORM.DESCRIPTION') }}
|
||||
</div>
|
||||
<form class="flex flex-col" @submit.prevent="updateInbox">
|
||||
<label class="w-[25%]">
|
||||
<label class="w-1/4">
|
||||
{{ $t('INBOX_MGMT.PRE_CHAT_FORM.ENABLE.LABEL') }}
|
||||
<select v-model="preChatFormEnabled">
|
||||
<option :value="true">
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
</woot-tabs>
|
||||
</setting-intro-banner>
|
||||
|
||||
<div v-if="selectedTabKey === 'inbox_settings'" class="settings--content">
|
||||
<div v-if="selectedTabKey === 'inbox_settings'" class="mx-8">
|
||||
<settings-section
|
||||
:title="$t('INBOX_MGMT.SETTINGS_POPUP.INBOX_UPDATE_TITLE')"
|
||||
:sub-title="$t('INBOX_MGMT.SETTINGS_POPUP.INBOX_UPDATE_SUB_TEXT')"
|
||||
@@ -37,7 +37,7 @@
|
||||
/>
|
||||
<woot-input
|
||||
v-model.trim="selectedInboxName"
|
||||
class="w-[75%] pb-4"
|
||||
class="w-3/4 pb-4"
|
||||
:class="{ error: $v.selectedInboxName.$error }"
|
||||
:label="inboxNameLabel"
|
||||
:placeholder="inboxNamePlaceHolder"
|
||||
@@ -51,7 +51,7 @@
|
||||
<woot-input
|
||||
v-if="isAPIInbox"
|
||||
v-model.trim="webhookUrl"
|
||||
class="w-[75%] pb-4"
|
||||
class="w-3/4 pb-4"
|
||||
:class="{ error: $v.webhookUrl.$error }"
|
||||
:label="
|
||||
$t('INBOX_MGMT.ADD.WEBSITE_CHANNEL.CHANNEL_WEBHOOK_URL.LABEL')
|
||||
@@ -69,7 +69,7 @@
|
||||
<woot-input
|
||||
v-if="isAWebWidgetInbox"
|
||||
v-model.trim="channelWebsiteUrl"
|
||||
class="w-[75%] pb-4"
|
||||
class="w-3/4 pb-4"
|
||||
:label="$t('INBOX_MGMT.ADD.WEBSITE_CHANNEL.CHANNEL_DOMAIN.LABEL')"
|
||||
:placeholder="
|
||||
$t('INBOX_MGMT.ADD.WEBSITE_CHANNEL.CHANNEL_DOMAIN.PLACEHOLDER')
|
||||
@@ -78,7 +78,7 @@
|
||||
<woot-input
|
||||
v-if="isAWebWidgetInbox"
|
||||
v-model.trim="channelWelcomeTitle"
|
||||
class="w-[75%] pb-4"
|
||||
class="w-3/4 pb-4"
|
||||
:label="
|
||||
$t('INBOX_MGMT.ADD.WEBSITE_CHANNEL.CHANNEL_WELCOME_TITLE.LABEL')
|
||||
"
|
||||
@@ -92,7 +92,7 @@
|
||||
<woot-input
|
||||
v-if="isAWebWidgetInbox"
|
||||
v-model.trim="channelWelcomeTagline"
|
||||
class="w-[75%] pb-4"
|
||||
class="w-3/4 pb-4"
|
||||
:label="
|
||||
$t('INBOX_MGMT.ADD.WEBSITE_CHANNEL.CHANNEL_WELCOME_TAGLINE.LABEL')
|
||||
"
|
||||
@@ -103,17 +103,17 @@
|
||||
"
|
||||
/>
|
||||
|
||||
<label v-if="isAWebWidgetInbox" class="w-[75%] pb-4">
|
||||
<label v-if="isAWebWidgetInbox" class="w-3/4 pb-4">
|
||||
{{ $t('INBOX_MGMT.ADD.WEBSITE_CHANNEL.WIDGET_COLOR.LABEL') }}
|
||||
<woot-color-picker v-model="inbox.widget_color" />
|
||||
</label>
|
||||
|
||||
<label v-if="isAWhatsAppChannel" class="w-[75%] pb-4">
|
||||
<label v-if="isAWhatsAppChannel" class="w-3/4 pb-4">
|
||||
{{ $t('INBOX_MGMT.ADD.WHATSAPP.PROVIDERS.LABEL') }}
|
||||
<input v-model="whatsAppAPIProviderName" type="text" disabled />
|
||||
</label>
|
||||
|
||||
<label class="w-[75%] pb-4">
|
||||
<label class="w-3/4 pb-4">
|
||||
{{
|
||||
$t('INBOX_MGMT.ADD.WEBSITE_CHANNEL.CHANNEL_GREETING_TOGGLE.LABEL')
|
||||
}}
|
||||
@@ -157,7 +157,7 @@
|
||||
:richtext="!textAreaChannels"
|
||||
/>
|
||||
</div>
|
||||
<label v-if="isAWebWidgetInbox" class="w-[75%] pb-4">
|
||||
<label v-if="isAWebWidgetInbox" class="w-3/4 pb-4">
|
||||
{{ $t('INBOX_MGMT.ADD.WEBSITE_CHANNEL.REPLY_TIME.TITLE') }}
|
||||
<select v-model="replyTime">
|
||||
<option key="in_a_few_minutes" value="in_a_few_minutes">
|
||||
@@ -180,7 +180,7 @@
|
||||
</p>
|
||||
</label>
|
||||
|
||||
<label v-if="isAWebWidgetInbox" class="w-[75%] pb-4">
|
||||
<label v-if="isAWebWidgetInbox" class="w-3/4 pb-4">
|
||||
{{ $t('INBOX_MGMT.SETTINGS_POPUP.ENABLE_EMAIL_COLLECT_BOX') }}
|
||||
<select v-model="emailCollectEnabled">
|
||||
<option :value="true">
|
||||
@@ -197,7 +197,7 @@
|
||||
</p>
|
||||
</label>
|
||||
|
||||
<label class="w-[75%] pb-4">
|
||||
<label class="w-3/4 pb-4">
|
||||
{{ $t('INBOX_MGMT.SETTINGS_POPUP.ENABLE_CSAT') }}
|
||||
<select v-model="csatSurveyEnabled">
|
||||
<option :value="true">
|
||||
@@ -212,7 +212,7 @@
|
||||
</p>
|
||||
</label>
|
||||
|
||||
<label v-if="isAWebWidgetInbox" class="w-[75%] pb-4">
|
||||
<label v-if="isAWebWidgetInbox" class="w-3/4 pb-4">
|
||||
{{ $t('INBOX_MGMT.SETTINGS_POPUP.ALLOW_MESSAGES_AFTER_RESOLVED') }}
|
||||
<select v-model="allowMessagesAfterResolved">
|
||||
<option :value="true">
|
||||
@@ -231,7 +231,7 @@
|
||||
</p>
|
||||
</label>
|
||||
|
||||
<label v-if="isAWebWidgetInbox" class="w-[75%] pb-4">
|
||||
<label v-if="isAWebWidgetInbox" class="w-3/4 pb-4">
|
||||
{{ $t('INBOX_MGMT.SETTINGS_POPUP.ENABLE_CONTINUITY_VIA_EMAIL') }}
|
||||
<select v-model="continuityViaEmail">
|
||||
<option :value="true">
|
||||
@@ -249,7 +249,7 @@
|
||||
}}
|
||||
</p>
|
||||
</label>
|
||||
<div class="w-[75%] pb-4">
|
||||
<div class="w-3/4 pb-4">
|
||||
<label>
|
||||
{{ $t('INBOX_MGMT.HELP_CENTER.LABEL') }}
|
||||
</label>
|
||||
@@ -265,7 +265,7 @@
|
||||
{{ $t('INBOX_MGMT.HELP_CENTER.SUB_TEXT') }}
|
||||
</p>
|
||||
</div>
|
||||
<label v-if="canLocktoSingleConversation" class="w-[75%] pb-4">
|
||||
<label v-if="canLocktoSingleConversation" class="w-3/4 pb-4">
|
||||
{{ $t('INBOX_MGMT.SETTINGS_POPUP.LOCK_TO_SINGLE_CONVERSATION') }}
|
||||
<select v-model="locktoSingleConversation">
|
||||
<option :value="true">
|
||||
@@ -287,7 +287,7 @@
|
||||
<label v-if="isAWebWidgetInbox">
|
||||
{{ $t('INBOX_MGMT.FEATURES.LABEL') }}
|
||||
</label>
|
||||
<div v-if="isAWebWidgetInbox" class="pt-2 pb-4">
|
||||
<div v-if="isAWebWidgetInbox" class="pt-2 pb-4 flex gap-2">
|
||||
<input
|
||||
v-model="selectedFeatureFlags"
|
||||
type="checkbox"
|
||||
@@ -298,7 +298,7 @@
|
||||
{{ $t('INBOX_MGMT.FEATURES.DISPLAY_FILE_PICKER') }}
|
||||
</label>
|
||||
</div>
|
||||
<div v-if="isAWebWidgetInbox" class="pb-4">
|
||||
<div v-if="isAWebWidgetInbox" class="pb-4 flex gap-2">
|
||||
<input
|
||||
v-model="selectedFeatureFlags"
|
||||
type="checkbox"
|
||||
@@ -309,7 +309,7 @@
|
||||
{{ $t('INBOX_MGMT.FEATURES.DISPLAY_EMOJI_PICKER') }}
|
||||
</label>
|
||||
</div>
|
||||
<div v-if="isAWebWidgetInbox" class="pb-4">
|
||||
<div v-if="isAWebWidgetInbox" class="pb-4 flex gap-2">
|
||||
<input
|
||||
v-model="selectedFeatureFlags"
|
||||
type="checkbox"
|
||||
@@ -320,7 +320,7 @@
|
||||
{{ $t('INBOX_MGMT.FEATURES.ALLOW_END_CONVERSATION') }}
|
||||
</label>
|
||||
</div>
|
||||
<div v-if="isAWebWidgetInbox" class="pb-4">
|
||||
<div v-if="isAWebWidgetInbox" class="pb-4 flex gap-2">
|
||||
<input
|
||||
v-model="selectedFeatureFlags"
|
||||
type="checkbox"
|
||||
@@ -338,7 +338,7 @@
|
||||
:sub-title="$t('INBOX_MGMT.EDIT.SENDER_NAME_SECTION.SUB_TEXT')"
|
||||
:show-border="false"
|
||||
>
|
||||
<div class="w-[75%] pb-4">
|
||||
<div class="w-3/4 pb-4">
|
||||
<sender-name-example-preview
|
||||
:sender-name-type="senderNameType"
|
||||
:business-name="businessName"
|
||||
@@ -400,7 +400,7 @@
|
||||
<facebook-reauthorize v-if="isAFacebookInbox" :inbox-id="inbox.id" />
|
||||
</div>
|
||||
|
||||
<div v-if="selectedTabKey === 'collaborators'" class="settings--content">
|
||||
<div v-if="selectedTabKey === 'collaborators'" class="mx-8">
|
||||
<collaborators-page :inbox="inbox" />
|
||||
</div>
|
||||
<div v-if="selectedTabKey === 'configuration'">
|
||||
@@ -757,11 +757,9 @@ export default {
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.settings {
|
||||
.settings--tabs {
|
||||
::v-deep .tabs {
|
||||
@apply p-0;
|
||||
}
|
||||
.settings--tabs {
|
||||
::v-deep .tabs {
|
||||
@apply p-0;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="settings--content">
|
||||
<div class="mx-8">
|
||||
<settings-section
|
||||
:title="$t('INBOX_MGMT.SMTP.TITLE')"
|
||||
:sub-title="$t('INBOX_MGMT.SMTP.SUBTITLE')"
|
||||
@@ -14,11 +14,11 @@
|
||||
{{ $t('INBOX_MGMT.SMTP.TOGGLE_AVAILABILITY') }}
|
||||
</label>
|
||||
<p>{{ $t('INBOX_MGMT.SMTP.TOGGLE_HELP') }}</p>
|
||||
<div v-if="isSMTPEnabled" class="smtp-details-wrap">
|
||||
<div v-if="isSMTPEnabled" class="mb-6">
|
||||
<woot-input
|
||||
v-model.trim="address"
|
||||
:class="{ error: $v.address.$error }"
|
||||
class="medium-9 columns"
|
||||
class="max-w-[75%] w-full"
|
||||
:label="$t('INBOX_MGMT.SMTP.ADDRESS.LABEL')"
|
||||
:placeholder="$t('INBOX_MGMT.SMTP.ADDRESS.PLACE_HOLDER')"
|
||||
@blur="$v.address.$touch"
|
||||
@@ -27,7 +27,7 @@
|
||||
v-model="port"
|
||||
type="number"
|
||||
:class="{ error: $v.port.$error }"
|
||||
class="medium-9 columns"
|
||||
class="max-w-[75%] w-full"
|
||||
:label="$t('INBOX_MGMT.SMTP.PORT.LABEL')"
|
||||
:placeholder="$t('INBOX_MGMT.SMTP.PORT.PLACE_HOLDER')"
|
||||
@blur="$v.port.$touch"
|
||||
@@ -35,7 +35,7 @@
|
||||
<woot-input
|
||||
v-model="login"
|
||||
:class="{ error: $v.login.$error }"
|
||||
class="medium-9 columns"
|
||||
class="max-w-[75%] w-full"
|
||||
:label="$t('INBOX_MGMT.SMTP.LOGIN.LABEL')"
|
||||
:placeholder="$t('INBOX_MGMT.SMTP.LOGIN.PLACE_HOLDER')"
|
||||
@blur="$v.login.$touch"
|
||||
@@ -43,7 +43,7 @@
|
||||
<woot-input
|
||||
v-model="password"
|
||||
:class="{ error: $v.password.$error }"
|
||||
class="medium-9 columns"
|
||||
class="max-w-[75%] w-full"
|
||||
:label="$t('INBOX_MGMT.SMTP.PASSWORD.LABEL')"
|
||||
:placeholder="$t('INBOX_MGMT.SMTP.PASSWORD.PLACE_HOLDER')"
|
||||
type="password"
|
||||
@@ -52,7 +52,7 @@
|
||||
<woot-input
|
||||
v-model.trim="domain"
|
||||
:class="{ error: $v.domain.$error }"
|
||||
class="medium-9 columns"
|
||||
class="max-w-[75%] w-full"
|
||||
:label="$t('INBOX_MGMT.SMTP.DOMAIN.LABEL')"
|
||||
:placeholder="$t('INBOX_MGMT.SMTP.DOMAIN.PLACE_HOLDER')"
|
||||
@blur="$v.domain.$touch"
|
||||
@@ -63,14 +63,14 @@
|
||||
:action="handleEncryptionChange"
|
||||
/>
|
||||
<single-select-dropdown
|
||||
class="medium-9 columns"
|
||||
class="max-w-[75%] w-full"
|
||||
:label="$t('INBOX_MGMT.SMTP.OPEN_SSL_VERIFY_MODE')"
|
||||
:selected="openSSLVerifyMode"
|
||||
:options="openSSLVerifyModes"
|
||||
:action="handleSSLModeChange"
|
||||
/>
|
||||
<single-select-dropdown
|
||||
class="medium-9 columns"
|
||||
class="max-w-[75%] w-full"
|
||||
:label="$t('INBOX_MGMT.SMTP.AUTH_MECHANISM')"
|
||||
:selected="authMechanism"
|
||||
:options="authMechanisms"
|
||||
@@ -237,8 +237,3 @@ export default {
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.smtp-details-wrap {
|
||||
margin-bottom: var(--space-medium);
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="settings--content">
|
||||
<div class="mx-8">
|
||||
<div class="widget-builder-container">
|
||||
<div class="settings-container w-100 lg:w-[40%]">
|
||||
<div class="settings-content">
|
||||
@@ -123,7 +123,7 @@
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="widget-container w-100 lg:w-[60%]">
|
||||
<div class="widget-container w-100 lg:w-3/5">
|
||||
<input-radio-group
|
||||
name="widget-view-options"
|
||||
:items="getWidgetViewOptions"
|
||||
@@ -422,9 +422,9 @@ export default {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
padding: var(--space-one);
|
||||
@include breakpoint(900px down) {
|
||||
flex-direction: column;
|
||||
}
|
||||
// @include breakpoint(900px down) {
|
||||
// flex-direction: column;
|
||||
// }
|
||||
}
|
||||
|
||||
.settings-container {
|
||||
@@ -450,10 +450,11 @@ export default {
|
||||
padding: var(--space-one) var(--space-one) var(--space-one) var(--space-one);
|
||||
@apply bg-slate-50 dark:bg-slate-700;
|
||||
|
||||
@include breakpoint(500px down) {
|
||||
background: none;
|
||||
}
|
||||
// @include breakpoint(500px down) {
|
||||
// background: none;
|
||||
// }
|
||||
}
|
||||
|
||||
.widget-script {
|
||||
@apply mx-5 p-2.5 bg-slate-50 dark:bg-slate-700;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<template>
|
||||
<div class="wizard-body w-[75%] flex-shrink-0 flex-grow-0 max-w-[75%]">
|
||||
<div
|
||||
class="border border-slate-25 dark:border-slate-800/60 bg-white dark:bg-slate-900 h-full p-6 w-full max-w-full md:w-3/4 md:max-w-[75%] flex-shrink-0 flex-grow-0"
|
||||
>
|
||||
<page-header
|
||||
:header-title="$t('INBOX_MGMT.ADD.API_CHANNEL.TITLE')"
|
||||
:header-content="$t('INBOX_MGMT.ADD.API_CHANNEL.DESC')"
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<template>
|
||||
<div
|
||||
v-if="!provider"
|
||||
class="wizard-body small-12 medium-9 columns height-auto"
|
||||
class="border border-slate-25 dark:border-slate-800/60 bg-white dark:bg-slate-900 h-full p-6 w-full md:w-full max-w-full md:max-w-[75%] flex-shrink-0 flex-grow-0"
|
||||
>
|
||||
<page-header
|
||||
:header-title="$t('INBOX_MGMT.ADD.EMAIL_PROVIDER.TITLE')"
|
||||
:header-content="$t('INBOX_MGMT.ADD.EMAIL_PROVIDER.DESCRIPTION')"
|
||||
/>
|
||||
<div class="row channel-list">
|
||||
<div class="flex flex-row flex-wrap mx-0 mt-6">
|
||||
<channel-selector
|
||||
v-for="emailProvider in emailProviderList"
|
||||
:key="emailProvider.key"
|
||||
@@ -63,9 +63,3 @@ export default {
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.channel-list {
|
||||
margin-top: var(--space-medium);
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<template>
|
||||
<div class="wizard-body w-[75%] flex-shrink-0 flex-grow-0 max-w-[75%]">
|
||||
<div
|
||||
class="border border-slate-25 dark:border-slate-800/60 bg-white dark:bg-slate-900 h-full p-6 w-full max-w-full md:w-3/4 md:max-w-[75%] flex-shrink-0 flex-grow-0"
|
||||
>
|
||||
<div v-if="!hasLoginStarted" class="login-init h-full">
|
||||
<a href="#" @click="startLogin()">
|
||||
<img
|
||||
@@ -41,7 +43,7 @@
|
||||
"
|
||||
/>
|
||||
</div>
|
||||
<div class="w-[60%]">
|
||||
<div class="w-3/5">
|
||||
<div class="w-full">
|
||||
<div class="input-wrap" :class="{ error: $v.selectedPage.$error }">
|
||||
{{ $t('INBOX_MGMT.ADD.FB.CHOOSE_PAGE') }}
|
||||
@@ -283,3 +285,16 @@ export default {
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
.login-init {
|
||||
@apply pt-[30%] text-center;
|
||||
|
||||
p {
|
||||
@apply p-6;
|
||||
}
|
||||
|
||||
> a > img {
|
||||
@apply w-60;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<template>
|
||||
<div class="wizard-body w-[75%] flex-shrink-0 flex-grow-0 max-w-[75%]">
|
||||
<div
|
||||
class="border border-slate-25 dark:border-slate-800/60 bg-white dark:bg-slate-900 h-full p-6 w-full max-w-full md:w-3/4 md:max-w-[75%] flex-shrink-0 flex-grow-0"
|
||||
>
|
||||
<page-header
|
||||
:header-title="$t('INBOX_MGMT.ADD.LINE_CHANNEL.TITLE')"
|
||||
:header-content="$t('INBOX_MGMT.ADD.LINE_CHANNEL.DESC')"
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<template>
|
||||
<div class="wizard-body w-[75%] flex-shrink-0 flex-grow-0 max-w-[75%]">
|
||||
<div
|
||||
class="border border-slate-25 dark:border-slate-800/60 bg-white dark:bg-slate-900 h-full p-6 w-full max-w-full md:w-3/4 md:max-w-[75%] flex-shrink-0 flex-grow-0"
|
||||
>
|
||||
<page-header
|
||||
:header-title="$t('INBOX_MGMT.ADD.SMS.TITLE')"
|
||||
:header-content="$t('INBOX_MGMT.ADD.SMS.DESC')"
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<template>
|
||||
<div class="wizard-body w-[75%] flex-shrink-0 flex-grow-0 max-w-[75%]">
|
||||
<div
|
||||
class="border border-slate-25 dark:border-slate-800/60 bg-white dark:bg-slate-900 h-full p-6 w-full max-w-full md:w-3/4 md:max-w-[75%] flex-shrink-0 flex-grow-0"
|
||||
>
|
||||
<page-header
|
||||
:header-title="$t('INBOX_MGMT.ADD.TELEGRAM_CHANNEL.TITLE')"
|
||||
:header-content="$t('INBOX_MGMT.ADD.TELEGRAM_CHANNEL.DESC')"
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="medium-8 columns messagingServiceHelptext">
|
||||
<div class="max-w-[65%] w-full messagingServiceHelptext">
|
||||
<label for="useMessagingService">
|
||||
<input
|
||||
id="useMessagingService"
|
||||
@@ -84,7 +84,7 @@
|
||||
}}</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="medium-8 columns messagingServiceHelptext">
|
||||
<div class="max-w-[65%] w-full messagingServiceHelptext">
|
||||
<label for="useAPIKey">
|
||||
<input
|
||||
id="useAPIKey"
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<template>
|
||||
<div class="wizard-body w-[75%] flex-shrink-0 flex-grow-0 max-w-[75%]">
|
||||
<div
|
||||
class="border border-slate-25 dark:border-slate-800/60 bg-white dark:bg-slate-900 h-full p-6 w-full max-w-full md:w-3/4 md:max-w-[75%] flex-shrink-0 flex-grow-0"
|
||||
>
|
||||
<div class="login-init h-full text-center">
|
||||
<form @submit.prevent="requestAuthorization">
|
||||
<woot-submit-button
|
||||
@@ -40,3 +42,14 @@ export default {
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
.login-init {
|
||||
@apply pt-[30%] text-center;
|
||||
p {
|
||||
@apply p-6;
|
||||
}
|
||||
> a > img {
|
||||
@apply w-60;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<template>
|
||||
<div class="wizard-body w-[75%] flex-shrink-0 flex-grow-0 max-w-[75%] h-auto">
|
||||
<div
|
||||
class="border border-slate-25 dark:border-slate-800/60 bg-white dark:bg-slate-900 h-full p-6 w-full max-w-full md:w-3/4 md:max-w-[75%] flex-shrink-0 flex-grow-0"
|
||||
>
|
||||
<page-header
|
||||
:header-title="$t('INBOX_MGMT.ADD.WEBSITE_CHANNEL.TITLE')"
|
||||
:header-content="$t('INBOX_MGMT.ADD.WEBSITE_CHANNEL.DESC')"
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<template>
|
||||
<div class="wizard-body w-[75%] flex-shrink-0 flex-grow-0 max-w-[75%]">
|
||||
<div
|
||||
class="border border-slate-25 dark:border-slate-800/60 bg-white dark:bg-slate-900 h-full p-6 w-full max-w-full md:w-3/4 md:max-w-[75%] flex-shrink-0 flex-grow-0"
|
||||
>
|
||||
<page-header
|
||||
:header-title="$t('INBOX_MGMT.ADD.WHATSAPP.TITLE')"
|
||||
:header-content="$t('INBOX_MGMT.ADD.WHATSAPP.DESC')"
|
||||
|
||||
+3
-1
@@ -1,5 +1,7 @@
|
||||
<template>
|
||||
<div class="wizard-body w-[75%] flex-shrink-0 flex-grow-0 max-w-[75%]">
|
||||
<div
|
||||
class="border border-slate-25 dark:border-slate-800/60 bg-white dark:bg-slate-900 h-full p-6 w-full max-w-full md:w-3/4 md:max-w-[75%] flex-shrink-0 flex-grow-0"
|
||||
>
|
||||
<page-header
|
||||
:header-title="$t('INBOX_MGMT.ADD.EMAIL_CHANNEL.TITLE')"
|
||||
:header-content="$t('INBOX_MGMT.ADD.EMAIL_CHANNEL.DESC')"
|
||||
|
||||
+3
-1
@@ -1,5 +1,7 @@
|
||||
<template>
|
||||
<div class="wizard-body w-[75%] flex-shrink-0 flex-grow-0 max-w-[75%]">
|
||||
<div
|
||||
class="border border-slate-25 dark:border-slate-800/60 bg-white dark:bg-slate-900 h-full p-6 w-full max-w-full md:w-3/4 md:max-w-[75%] flex-shrink-0 flex-grow-0"
|
||||
>
|
||||
<settings-sub-page-header
|
||||
:header-title="$t('INBOX_MGMT.ADD.MICROSOFT.TITLE')"
|
||||
:header-content="$t('INBOX_MGMT.ADD.MICROSOFT.DESCRIPTION')"
|
||||
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<div class="settings--content">
|
||||
<div class="mx-8">
|
||||
<settings-section
|
||||
:title="$t('INBOX_MGMT.MICROSOFT.TITLE')"
|
||||
:sub-title="$t('INBOX_MGMT.MICROSOFT.SUBTITLE')"
|
||||
>
|
||||
<div class="smtp-details-wrap">
|
||||
<div class="mb-6">
|
||||
<form @submit.prevent="requestAuthorization">
|
||||
<woot-submit-button
|
||||
icon="brand-twitter"
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="settings--content">
|
||||
<div class="mx-8">
|
||||
<loading-state v-if="uiFlags.isFetching || uiFlags.isFetchingAgentBot" />
|
||||
<form
|
||||
v-else
|
||||
@@ -10,7 +10,7 @@
|
||||
:title="$t('AGENT_BOTS.BOT_CONFIGURATION.TITLE')"
|
||||
:sub-title="$t('AGENT_BOTS.BOT_CONFIGURATION.DESC')"
|
||||
>
|
||||
<div class="w-[60%]">
|
||||
<div class="w-3/5">
|
||||
<label>
|
||||
<select v-model="selectedAgentBotId">
|
||||
<option value="" disabled selected>
|
||||
|
||||
@@ -248,7 +248,7 @@ export default {
|
||||
}
|
||||
|
||||
.label {
|
||||
@apply bg-woot-50 dark:bg-woot-600 text-woot-700 dark:text-woot-100 text-xs;
|
||||
@apply bg-woot-50 dark:bg-woot-600 text-woot-700 dark:text-woot-100 text-xs inline-block px-2 py-1 rounded-sm cursor-default whitespace-nowrap;
|
||||
}
|
||||
|
||||
.date-error {
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
<button
|
||||
v-for="keyOption in senderNameKeyOptions"
|
||||
:key="keyOption.key"
|
||||
class="text-slate-800 dark:text-slate-100 cursor-pointer"
|
||||
class="text-slate-800 dark:text-slate-100 cursor-pointer p-0"
|
||||
@click="toggleSenderNameType(keyOption.key)"
|
||||
>
|
||||
<preview-card
|
||||
|
||||
+5
-2
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="my-2 mx-8">
|
||||
<div class="mx-8">
|
||||
<settings-section
|
||||
:title="$t('INBOX_MGMT.BUSINESS_HOURS.TITLE')"
|
||||
:sub-title="$t('INBOX_MGMT.BUSINESS_HOURS.SUBTITLE')"
|
||||
@@ -9,11 +9,14 @@
|
||||
<input
|
||||
v-model="isBusinessHoursEnabled"
|
||||
type="checkbox"
|
||||
class="ltr:mr-2 rtl:ml-2"
|
||||
name="toggle-business-hours"
|
||||
/>
|
||||
{{ $t('INBOX_MGMT.BUSINESS_HOURS.TOGGLE_AVAILABILITY') }}
|
||||
</label>
|
||||
<p>{{ $t('INBOX_MGMT.BUSINESS_HOURS.TOGGLE_HELP') }}</p>
|
||||
<p class="text-slate-700 dark:text-slate-300 mb-4">
|
||||
{{ $t('INBOX_MGMT.BUSINESS_HOURS.TOGGLE_HELP') }}
|
||||
</p>
|
||||
<div v-if="isBusinessHoursEnabled" class="mb-6">
|
||||
<div class="max-w-[37.5rem]">
|
||||
<label class="unavailable-input-wrap">
|
||||
|
||||
+2
-2
@@ -31,8 +31,8 @@
|
||||
:title="$t('INBOX_MGMT.SETTINGS_POPUP.AGENT_ASSIGNMENT')"
|
||||
:sub-title="$t('INBOX_MGMT.SETTINGS_POPUP.AGENT_ASSIGNMENT_SUB_TEXT')"
|
||||
>
|
||||
<label class="w-[75%] settings-item">
|
||||
<div class="enter-to-send--checkbox">
|
||||
<label class="w-3/4 settings-item">
|
||||
<div class="flex items-center gap-2">
|
||||
<input
|
||||
id="enableAutoAssignment"
|
||||
v-model="enableAutoAssignment"
|
||||
|
||||
+14
-26
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div v-if="isATwilioChannel" class="settings--content">
|
||||
<div v-if="isATwilioChannel" class="mx-8">
|
||||
<settings-section
|
||||
:title="$t('INBOX_MGMT.ADD.TWILIO.API_CALLBACK.TITLE')"
|
||||
:sub-title="$t('INBOX_MGMT.ADD.TWILIO.API_CALLBACK.SUBTITLE')"
|
||||
@@ -7,7 +7,7 @@
|
||||
<woot-code :script="inbox.callback_webhook_url" lang="html" />
|
||||
</settings-section>
|
||||
</div>
|
||||
<div v-else-if="isALineChannel" class="settings--content">
|
||||
<div v-else-if="isALineChannel" class="mx-8">
|
||||
<settings-section
|
||||
:title="$t('INBOX_MGMT.ADD.LINE_CHANNEL.API_CALLBACK.TITLE')"
|
||||
:sub-title="$t('INBOX_MGMT.ADD.LINE_CHANNEL.API_CALLBACK.SUBTITLE')"
|
||||
@@ -16,7 +16,7 @@
|
||||
</settings-section>
|
||||
</div>
|
||||
<div v-else-if="isAWebWidgetInbox">
|
||||
<div class="settings--content">
|
||||
<div class="mx-8">
|
||||
<settings-section
|
||||
:title="$t('INBOX_MGMT.SETTINGS_POPUP.MESSENGER_HEADING')"
|
||||
:sub-title="$t('INBOX_MGMT.SETTINGS_POPUP.MESSENGER_SUB_HEAD')"
|
||||
@@ -48,7 +48,7 @@
|
||||
:title="$t('INBOX_MGMT.SETTINGS_POPUP.HMAC_MANDATORY_VERIFICATION')"
|
||||
:sub-title="$t('INBOX_MGMT.SETTINGS_POPUP.HMAC_MANDATORY_DESCRIPTION')"
|
||||
>
|
||||
<div class="enter-to-send--checkbox">
|
||||
<div class="flex items-center gap-2">
|
||||
<input
|
||||
id="hmacMandatory"
|
||||
v-model="hmacMandatory"
|
||||
@@ -62,7 +62,7 @@
|
||||
</settings-section>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else-if="isAPIInbox" class="settings--content">
|
||||
<div v-else-if="isAPIInbox" class="mx-8">
|
||||
<settings-section
|
||||
:title="$t('INBOX_MGMT.SETTINGS_POPUP.INBOX_IDENTIFIER')"
|
||||
:sub-title="$t('INBOX_MGMT.SETTINGS_POPUP.INBOX_IDENTIFIER_SUB_TEXT')"
|
||||
@@ -80,7 +80,7 @@
|
||||
:title="$t('INBOX_MGMT.SETTINGS_POPUP.HMAC_MANDATORY_VERIFICATION')"
|
||||
:sub-title="$t('INBOX_MGMT.SETTINGS_POPUP.HMAC_MANDATORY_DESCRIPTION')"
|
||||
>
|
||||
<div class="enter-to-send--checkbox">
|
||||
<div class="flex items-center gap-2">
|
||||
<input
|
||||
id="hmacMandatory"
|
||||
v-model="hmacMandatory"
|
||||
@@ -94,7 +94,7 @@
|
||||
</settings-section>
|
||||
</div>
|
||||
<div v-else-if="isAnEmailChannel">
|
||||
<div class="settings--content">
|
||||
<div class="mx-8">
|
||||
<settings-section
|
||||
:title="$t('INBOX_MGMT.SETTINGS_POPUP.FORWARD_EMAIL_TITLE')"
|
||||
:sub-title="$t('INBOX_MGMT.SETTINGS_POPUP.FORWARD_EMAIL_SUB_TEXT')"
|
||||
@@ -110,7 +110,7 @@
|
||||
/>
|
||||
</div>
|
||||
<div v-else-if="isAWhatsAppChannel && !isATwilioChannel">
|
||||
<div v-if="inbox.provider_config" class="settings--content">
|
||||
<div v-if="inbox.provider_config" class="mx-8">
|
||||
<settings-section
|
||||
:title="$t('INBOX_MGMT.SETTINGS_POPUP.WHATSAPP_WEBHOOK_TITLE')"
|
||||
:sub-title="$t('INBOX_MGMT.SETTINGS_POPUP.WHATSAPP_WEBHOOK_SUBHEADER')"
|
||||
@@ -129,11 +129,13 @@
|
||||
$t('INBOX_MGMT.SETTINGS_POPUP.WHATSAPP_SECTION_UPDATE_SUBHEADER')
|
||||
"
|
||||
>
|
||||
<div class="whatsapp-settings--content">
|
||||
<div
|
||||
class="whatsapp-settings--content items-center flex flex-1 justify-between mt-2"
|
||||
>
|
||||
<woot-input
|
||||
v-model.trim="whatsAppInboxAPIKey"
|
||||
type="text"
|
||||
class="input"
|
||||
class="flex-1 mr-2"
|
||||
:placeholder="
|
||||
$t(
|
||||
'INBOX_MGMT.SETTINGS_POPUP.WHATSAPP_SECTION_UPDATE_PLACEHOLDER'
|
||||
@@ -238,22 +240,8 @@ export default {
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.whatsapp-settings--content {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
flex: 1;
|
||||
justify-content: space-between;
|
||||
margin-top: var(--space-small);
|
||||
|
||||
.input {
|
||||
flex: 1;
|
||||
margin-right: var(--space-small);
|
||||
::v-deep input {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
::v-deep input {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.hmac-link-to-docs {
|
||||
margin-top: var(--space-small);
|
||||
}
|
||||
</style>
|
||||
|
||||
+7
-3
@@ -7,10 +7,10 @@
|
||||
/>
|
||||
</div>
|
||||
<div class="flex flex-col justify-center m-0 mx-4 flex-1">
|
||||
<h3 class="text-xl text-slate-800 dark:text-slate-100">
|
||||
<h3 class="text-xl font-medium mb-1 text-slate-800 dark:text-slate-100">
|
||||
{{ integrationName }}
|
||||
</h3>
|
||||
<p>
|
||||
<p class="text-slate-700 dark:text-slate-200">
|
||||
{{
|
||||
useInstallationName(
|
||||
integrationDescription,
|
||||
@@ -20,7 +20,11 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="flex justify-center items-center mb-0 w-[15%]">
|
||||
<woot-label :title="labelText" :color-scheme="labelColor" />
|
||||
<woot-label
|
||||
:title="labelText"
|
||||
:color-scheme="labelColor"
|
||||
class="text-xs rounded-sm"
|
||||
/>
|
||||
</div>
|
||||
<div class="flex justify-center items-center mb-0 w-[15%]">
|
||||
<router-link
|
||||
|
||||
+4
-4
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="flex flex-row gap-4">
|
||||
<div class="w-[60%]">
|
||||
<div class="w-full lg:w-3/5">
|
||||
<table v-if="hasConnectedHooks" class="woot-table">
|
||||
<thead>
|
||||
<th v-for="hookHeader in hookHeaders" :key="hookHeader">
|
||||
@@ -22,7 +22,7 @@
|
||||
<td v-if="isHookTypeInbox" class="break-words">
|
||||
{{ inboxName(hook) }}
|
||||
</td>
|
||||
<td class="button-wrapper">
|
||||
<td class="flex justify-end gap-1">
|
||||
<woot-button
|
||||
v-tooltip.top="$t('INTEGRATION_APPS.LIST.DELETE.BUTTON_TEXT')"
|
||||
variant="smooth"
|
||||
@@ -36,7 +36,7 @@
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p v-else class="flex h-full items-center flex-col justify-center">
|
||||
<p v-else class="flex flex-col items-center justify-center h-full">
|
||||
{{
|
||||
$t('INTEGRATION_APPS.NO_HOOK_CONFIGURED', {
|
||||
integrationId: integration.id,
|
||||
@@ -44,7 +44,7 @@
|
||||
}}
|
||||
</p>
|
||||
</div>
|
||||
<div class="w-[34%]">
|
||||
<div class="hidden w-1/3 lg:block">
|
||||
<p>
|
||||
<b>{{ integration.name }}</b>
|
||||
</p>
|
||||
|
||||
+4
-2
@@ -12,10 +12,12 @@
|
||||
/>
|
||||
</div>
|
||||
<div class="flex flex-col justify-center m-0 mx-4 flex-1">
|
||||
<h3 class="text-xl text-slate-800 dark:text-slate-100">
|
||||
<h3
|
||||
class="text-xl font-medium mb-1 text-slate-800 dark:text-slate-100"
|
||||
>
|
||||
{{ integration.name }}
|
||||
</h3>
|
||||
<p>
|
||||
<p class="text-slate-700 dark:text-slate-200">
|
||||
{{ integration.description }}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
+3
-4
@@ -1,9 +1,8 @@
|
||||
<template>
|
||||
<woot-modal :show="show" :on-close="closeModal">
|
||||
<div class="h-auto overflow-auto flex flex-col">
|
||||
<div class="flex flex-col h-auto overflow-auto">
|
||||
<woot-modal-header :header-title="header" />
|
||||
|
||||
<form class="mx-0 flex flex-wrap" @submit.prevent="submit">
|
||||
<form class="w-full" @submit.prevent="submit">
|
||||
<woot-input
|
||||
v-model.trim="app.title"
|
||||
:class="{ error: $v.app.title.$error }"
|
||||
@@ -36,7 +35,7 @@
|
||||
data-testid="app-url"
|
||||
@input="$v.app.content.url.$touch"
|
||||
/>
|
||||
<div class="flex flex-row justify-end gap-2 py-2 px-0 w-full">
|
||||
<div class="flex flex-row justify-end w-full gap-2 px-0 py-2">
|
||||
<woot-button
|
||||
:is-loading="isLoading"
|
||||
:is-disabled="$v.$invalid"
|
||||
|
||||
+4
-6
@@ -1,14 +1,12 @@
|
||||
<template>
|
||||
<tr>
|
||||
<td>
|
||||
<td class="w-40 max-w-[10rem] truncate" :title="app.title">
|
||||
{{ app.title }}
|
||||
</td>
|
||||
<td class="dashboard-app-label-url">
|
||||
<span class="overflow-hidden whitespace-nowrap text-ellipsis">
|
||||
{{ app.content[0].url }}
|
||||
</span>
|
||||
<td class="max-w-xs truncate" :title="app.content[0].url">
|
||||
{{ app.content[0].url }}
|
||||
</td>
|
||||
<td class="button-wrapper">
|
||||
<td class="flex justify-end gap-1">
|
||||
<woot-button
|
||||
v-tooltip.top="
|
||||
$t('INTEGRATION_SETTINGS.DASHBOARD_APPS.LIST.EDIT_TOOLTIP')
|
||||
|
||||
+2
-2
@@ -9,7 +9,7 @@
|
||||
{{ $t('INTEGRATION_SETTINGS.DASHBOARD_APPS.HEADER_BTN_TXT') }}
|
||||
</woot-button>
|
||||
<div class="flex flex-row gap-4">
|
||||
<div class="w-[60%]">
|
||||
<div class="w-full lg:w-3/5">
|
||||
<p
|
||||
v-if="!uiFlags.isFetching && !records.length"
|
||||
class="flex h-full items-center flex-col justify-center"
|
||||
@@ -44,7 +44,7 @@
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="w-[34%]">
|
||||
<div class="w-1/3 hidden lg:block">
|
||||
<span
|
||||
v-dompurify-html="
|
||||
useInstallationName(
|
||||
|
||||
@@ -8,10 +8,10 @@
|
||||
class="p-2 h-16 w-16 mr-4"
|
||||
/>
|
||||
<div>
|
||||
<h3 class="text-xl text-slate-800 dark:text-slate-100">
|
||||
<h3 class="text-xl font-medium mb-1 text-slate-800 dark:text-slate-100">
|
||||
{{ integrationName }}
|
||||
</h3>
|
||||
<p>
|
||||
<p class="text-slate-700 dark:text-slate-200">
|
||||
{{
|
||||
useInstallationName(
|
||||
integrationDescription,
|
||||
@@ -49,7 +49,7 @@
|
||||
</div>
|
||||
</router-link>
|
||||
<div v-if="!integrationEnabled">
|
||||
<a :href="integrationAction" class="button success nice">
|
||||
<a :href="integrationAction" class="button success nice rounded">
|
||||
{{ $t('INTEGRATION_SETTINGS.CONNECT.BUTTON_TEXT') }}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="flex-1 overflow-auto p-4">
|
||||
<div class="flex-1 p-4 overflow-auto">
|
||||
<woot-button
|
||||
color-scheme="success"
|
||||
class-names="button--fixed-top"
|
||||
@@ -10,10 +10,10 @@
|
||||
</woot-button>
|
||||
|
||||
<div class="flex flex-row gap-4">
|
||||
<div class="w-[60%]">
|
||||
<div class="w-full lg:w-3/5">
|
||||
<p
|
||||
v-if="!uiFlags.fetchingList && !records.length"
|
||||
class="flex h-full items-center flex-col justify-center"
|
||||
class="flex flex-col items-center justify-center h-full"
|
||||
>
|
||||
{{ $t('INTEGRATION_SETTINGS.WEBHOOK.LIST.404') }}
|
||||
</p>
|
||||
@@ -32,6 +32,7 @@
|
||||
'INTEGRATION_SETTINGS.WEBHOOK.LIST.TABLE_HEADER'
|
||||
)"
|
||||
:key="thHeader"
|
||||
class="last:text-right"
|
||||
>
|
||||
{{ thHeader }}
|
||||
</th>
|
||||
@@ -49,7 +50,7 @@
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="w-[34%]">
|
||||
<div class="hidden w-1/3 lg:block">
|
||||
<span
|
||||
v-dompurify-html="
|
||||
useInstallationName(
|
||||
|
||||
+18
-12
@@ -17,18 +17,24 @@
|
||||
<label :class="{ error: $v.url.$error }" class="mb-2">
|
||||
{{ $t('INTEGRATION_SETTINGS.WEBHOOK.FORM.SUBSCRIPTIONS.LABEL') }}
|
||||
</label>
|
||||
<div v-for="event in supportedWebhookEvents" :key="event">
|
||||
<input
|
||||
:id="event"
|
||||
v-model="subscriptions"
|
||||
type="checkbox"
|
||||
:value="event"
|
||||
name="subscriptions"
|
||||
class="checkbox"
|
||||
/>
|
||||
<span class="text-sm">
|
||||
{{ `${getEventLabel(event)} (${event})` }}
|
||||
</span>
|
||||
<div class="flex flex-col gap-2.5 mb-4">
|
||||
<div
|
||||
v-for="event in supportedWebhookEvents"
|
||||
:key="event"
|
||||
class="flex items-center"
|
||||
>
|
||||
<input
|
||||
:id="event"
|
||||
v-model="subscriptions"
|
||||
type="checkbox"
|
||||
:value="event"
|
||||
name="subscriptions"
|
||||
class="checkbox"
|
||||
/>
|
||||
<label :for="event" class="text-sm">
|
||||
{{ `${getEventLabel(event)} (${event})` }}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
+5
-5
@@ -1,17 +1,17 @@
|
||||
<template>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="text-slate-700 dark:text-slate-100 font-medium break-words">
|
||||
<tr class="space-x-2">
|
||||
<td class="max-w-2xl">
|
||||
<div class="font-medium break-words text-slate-700 dark:text-slate-100">
|
||||
{{ webhook.url }}
|
||||
</div>
|
||||
<span class="text-slate-500 dark:text-slate-400 text-xs">
|
||||
<span class="text-xs text-slate-500 dark:text-slate-400">
|
||||
<span class="font-medium">
|
||||
{{ $t('INTEGRATION_SETTINGS.WEBHOOK.SUBSCRIBED_EVENTS') }}:
|
||||
</span>
|
||||
<show-more :text="subscribedEvents" :limit="60" />
|
||||
</span>
|
||||
</td>
|
||||
<td class="max-w-[6.25rem] min-w-[auto] flex gap-3">
|
||||
<td class="min-w-[7rem] flex gap-1 justify-end flex-shrink-0">
|
||||
<woot-button
|
||||
v-tooltip.top="$t('INTEGRATION_SETTINGS.WEBHOOK.EDIT.BUTTON_TEXT')"
|
||||
variant="smooth"
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
<woot-color-picker v-model="color" />
|
||||
</label>
|
||||
</div>
|
||||
<div class="w-full">
|
||||
<div class="w-full flex items-center gap-2">
|
||||
<input v-model="showOnSidebar" type="checkbox" :value="true" />
|
||||
<label for="conversation_creation">
|
||||
{{ $t('LABEL_MGMT.FORM.SHOW_ON_SIDEBAR.LABEL') }}
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<woot-color-picker v-model="color" />
|
||||
</label>
|
||||
</div>
|
||||
<div class="w-full">
|
||||
<div class="w-full flex items-center gap-2">
|
||||
<input v-model="showOnSidebar" type="checkbox" :value="true" />
|
||||
<label for="conversation_creation">
|
||||
{{ $t('LABEL_MGMT.FORM.SHOW_ON_SIDEBAR.LABEL') }}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="flex-1 overflow-auto p-4">
|
||||
<div class="flex-1 overflow-auto">
|
||||
<woot-button
|
||||
color-scheme="success"
|
||||
class-names="button--fixed-top"
|
||||
@@ -8,8 +8,8 @@
|
||||
>
|
||||
{{ $t('LABEL_MGMT.HEADER_BTN_TXT') }}
|
||||
</woot-button>
|
||||
<div class="flex flex-row gap-4">
|
||||
<div class="w-[60%]">
|
||||
<div class="flex flex-row gap-4 p-8">
|
||||
<div class="w-full xl:w-3/5">
|
||||
<p
|
||||
v-if="!uiFlags.isFetching && !records.length"
|
||||
class="flex h-full items-center flex-col justify-center"
|
||||
@@ -73,7 +73,7 @@
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="w-[34%]">
|
||||
<div class="w-1/3 hidden xl:block">
|
||||
<span v-dompurify-html="$t('LABEL_MGMT.SIDEBAR_TXT')" />
|
||||
</div>
|
||||
</div>
|
||||
@@ -197,6 +197,7 @@ export default {
|
||||
.label-color--display {
|
||||
@apply rounded h-4 w-4 mr-1 rtl:mr-0 rtl:ml-1 border border-solid border-slate-50 dark:border-slate-700;
|
||||
}
|
||||
|
||||
.label-title {
|
||||
span {
|
||||
@apply w-60 inline-block;
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
<template>
|
||||
<div class="flex-1 overflow-auto p-4">
|
||||
<div class="flex-1 overflow-auto">
|
||||
<router-link
|
||||
:to="addAccountScoping('settings/macros/new')"
|
||||
class="button success button--fixed-top flex gap-1"
|
||||
class="button success button--fixed-top button success button--fixed-top px-3.5 py-1 rounded-[5px] flex gap-2"
|
||||
>
|
||||
<fluent-icon icon="add-circle" />
|
||||
<span class="button__content">
|
||||
{{ $t('MACROS.HEADER_BTN_TXT') }}
|
||||
</span>
|
||||
</router-link>
|
||||
<div class="flex flex-row gap-4">
|
||||
<div class="w-[60%]">
|
||||
<div class="flex flex-row gap-4 p-8">
|
||||
<div class="w-full lg:w-3/5">
|
||||
<div v-if="!uiFlags.isFetching && !records.length" class="p-3">
|
||||
<p class="flex h-full items-center flex-col justify-center">
|
||||
{{ $t('MACROS.LIST.404') }}
|
||||
@@ -39,7 +39,7 @@
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="w-[34%]">
|
||||
<div class="hidden lg:block w-1/3">
|
||||
<span v-dompurify-html="$t('MACROS.SIDEBAR_TXT')" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -71,10 +71,11 @@
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-auto">
|
||||
<div class="mt-auto w-full">
|
||||
<woot-button
|
||||
size="expanded"
|
||||
color-scheme="success"
|
||||
class="w-full"
|
||||
@click="$emit('submit')"
|
||||
>
|
||||
{{ $t('MACROS.HEADER_BTN_TXT_SAVE') }}
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
<template>
|
||||
<form @submit.prevent="changePassword()">
|
||||
<div class="profile--settings--row text-black-900 dark:text-slate-300 row">
|
||||
<div class="columns small-3">
|
||||
<h4 class="block-title text-black-900 dark:text-slate-200">
|
||||
<div
|
||||
class="profile--settings--row text-black-900 dark:text-slate-300 flex items-center"
|
||||
>
|
||||
<div class="w-1/4">
|
||||
<h4 class="text-lg text-black-900 dark:text-slate-200">
|
||||
{{ $t('PROFILE_SETTINGS.FORM.PASSWORD_SECTION.TITLE') }}
|
||||
</h4>
|
||||
<p>{{ $t('PROFILE_SETTINGS.FORM.PASSWORD_SECTION.NOTE') }}</p>
|
||||
</div>
|
||||
<div class="columns small-9 medium-5">
|
||||
<div class="w-[45%] p-4">
|
||||
<woot-input
|
||||
v-model="currentPassword"
|
||||
type="password"
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
<div
|
||||
class="flex flex-row border-b border-slate-50 dark:border-slate-700 items-center flex p-4"
|
||||
>
|
||||
<div class="w-[25%] py-4 pr-6 ml-0">
|
||||
<h4 class="block-title text-black-900 dark:text-slate-200">
|
||||
<div class="w-1/4 py-4 pr-6 ml-0">
|
||||
<h4 class="text-lg text-black-900 dark:text-slate-200">
|
||||
{{ $t('PROFILE_SETTINGS.FORM.PROFILE_SECTION.TITLE') }}
|
||||
</h4>
|
||||
<p>{{ $t('PROFILE_SETTINGS.FORM.PROFILE_SECTION.NOTE') }}</p>
|
||||
@@ -75,19 +75,19 @@
|
||||
<div
|
||||
class="border-b border-slate-50 dark:border-slate-700 items-center flex p-4 text-black-900 dark:text-slate-300 row"
|
||||
>
|
||||
<div class="w-[25%] py-4 pr-6 ml-0">
|
||||
<h4 class="block-title text-black-900 dark:text-slate-200">
|
||||
<div class="w-1/4 py-4 pr-6 ml-0">
|
||||
<h4 class="text-lg text-black-900 dark:text-slate-200">
|
||||
{{ $t('PROFILE_SETTINGS.FORM.SEND_MESSAGE.TITLE') }}
|
||||
</h4>
|
||||
<p>
|
||||
{{ $t('PROFILE_SETTINGS.FORM.SEND_MESSAGE.NOTE') }}
|
||||
</p>
|
||||
</div>
|
||||
<div class="p-4 w-[45%] flex flex-row">
|
||||
<div class="p-4 w-[45%] flex gap-4 flex-row">
|
||||
<button
|
||||
v-for="keyOption in keyOptions"
|
||||
:key="keyOption.key"
|
||||
class="cursor-pointer mr-4"
|
||||
class="cursor-pointer p-0"
|
||||
@click="toggleEditorMessageKey(keyOption.key)"
|
||||
>
|
||||
<preview-card
|
||||
@@ -104,8 +104,8 @@
|
||||
<div
|
||||
class="border-b border-slate-50 dark:border-slate-700 items-center flex p-4 text-black-900 dark:text-slate-300 row"
|
||||
>
|
||||
<div class="w-[25%] py-4 pr-6 ml-0">
|
||||
<h4 class="block-title text-black-900 dark:text-slate-200">
|
||||
<div class="w-1/4 py-4 pr-6 ml-0">
|
||||
<h4 class="text-lg text-black-900 dark:text-slate-200">
|
||||
{{ $t('PROFILE_SETTINGS.FORM.ACCESS_TOKEN.TITLE') }}
|
||||
</h4>
|
||||
<p>
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
<template>
|
||||
<div class="profile--settings--row text-black-900 dark:text-slate-300 row">
|
||||
<div class="w-[25%] py-4 pr-6 ml-0">
|
||||
<h4 class="block-title text-black-900 dark:text-slate-200">
|
||||
<div
|
||||
class="profile--settings--row text-black-900 dark:text-slate-300 flex items-center"
|
||||
>
|
||||
<div class="w-1/4 py-4 pr-6 ml-0">
|
||||
<h4 class="text-lg text-black-900 dark:text-slate-200">
|
||||
{{ $t('PROFILE_SETTINGS.FORM.MESSAGE_SIGNATURE_SECTION.TITLE') }}
|
||||
</h4>
|
||||
<p>{{ $t('PROFILE_SETTINGS.FORM.MESSAGE_SIGNATURE_SECTION.NOTE') }}</p>
|
||||
|
||||
+38
-38
@@ -1,24 +1,26 @@
|
||||
<template>
|
||||
<div id="profile-settings-notifications">
|
||||
<div class="profile--settings--row text-black-900 dark:text-slate-300 row">
|
||||
<div class="columns small-3">
|
||||
<h4 class="block-title text-black-900 dark:text-slate-200">
|
||||
<div
|
||||
class="profile--settings--row text-black-900 dark:text-slate-300 flex items-center"
|
||||
>
|
||||
<div class="w-1/4">
|
||||
<h4 class="text-lg text-black-900 dark:text-slate-200">
|
||||
{{ $t('PROFILE_SETTINGS.FORM.AUDIO_NOTIFICATIONS_SECTION.TITLE') }}
|
||||
</h4>
|
||||
<p>
|
||||
{{ $t('PROFILE_SETTINGS.FORM.AUDIO_NOTIFICATIONS_SECTION.NOTE') }}
|
||||
</p>
|
||||
</div>
|
||||
<div class="columns small-9">
|
||||
<div class="notification-items--wrapper">
|
||||
<span class="text-block-title notification-label">
|
||||
<div class="w-[45%] p-4">
|
||||
<div class="mb-4">
|
||||
<span class="text-sm notification-label">
|
||||
{{
|
||||
$t(
|
||||
'PROFILE_SETTINGS.FORM.AUDIO_NOTIFICATIONS_SECTION.ALERT_TYPE.TITLE'
|
||||
)
|
||||
}}
|
||||
</span>
|
||||
<div>
|
||||
<div class="flex items-center gap-2 mb-1">
|
||||
<input
|
||||
id="audio_enable_alert_none"
|
||||
v-model="enableAudioAlerts"
|
||||
@@ -35,7 +37,7 @@
|
||||
}}
|
||||
</label>
|
||||
</div>
|
||||
<div>
|
||||
<div class="flex items-center gap-2 mb-1">
|
||||
<input
|
||||
id="audio_enable_alert_mine"
|
||||
v-model="enableAudioAlerts"
|
||||
@@ -52,7 +54,7 @@
|
||||
}}
|
||||
</label>
|
||||
</div>
|
||||
<div>
|
||||
<div class="flex items-center gap-2 mb-1">
|
||||
<input
|
||||
id="audio_enable_alert_all"
|
||||
v-model="enableAudioAlerts"
|
||||
@@ -70,8 +72,8 @@
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="notification-items--wrapper">
|
||||
<span class="text-block-title notification-label">
|
||||
<div class="mb-4">
|
||||
<span class="text-sm notification-label">
|
||||
{{
|
||||
$t(
|
||||
'PROFILE_SETTINGS.FORM.AUDIO_NOTIFICATIONS_SECTION.DEFAULT_TONE.TITLE'
|
||||
@@ -81,7 +83,7 @@
|
||||
<div>
|
||||
<select
|
||||
v-model="notificationTone"
|
||||
class="tone-selector"
|
||||
class="tone-selector mb-0"
|
||||
@change="handleAudioToneChange"
|
||||
>
|
||||
<option
|
||||
@@ -94,15 +96,15 @@
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="notification-items--wrapper">
|
||||
<span class="text-block-title notification-label">
|
||||
<div class="mb-1">
|
||||
<span class="text-sm notification-label">
|
||||
{{
|
||||
$t(
|
||||
'PROFILE_SETTINGS.FORM.AUDIO_NOTIFICATIONS_SECTION.CONDITIONS.TITLE'
|
||||
)
|
||||
}}
|
||||
</span>
|
||||
<div>
|
||||
<div class="flex items-center gap-2 mb-1">
|
||||
<input
|
||||
id="audio_alert_when_tab_is_inactive"
|
||||
v-model="playAudioWhenTabIsInactive"
|
||||
@@ -119,7 +121,7 @@
|
||||
}}
|
||||
</label>
|
||||
</div>
|
||||
<div>
|
||||
<div class="flex items-center gap-2 mb-1">
|
||||
<input
|
||||
id="audio_alert_until_all_conversations_are_read"
|
||||
v-model="alertIfUnreadConversationExist"
|
||||
@@ -139,17 +141,19 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile--settings--row text-black-900 dark:text-slate-300 row">
|
||||
<div class="columns small-3">
|
||||
<h4 class="block-title text-black-900 dark:text-slate-200">
|
||||
<div
|
||||
class="profile--settings--row text-black-900 dark:text-slate-300 flex items-center"
|
||||
>
|
||||
<div class="w-1/4">
|
||||
<h4 class="text-lg text-black-900 dark:text-slate-200">
|
||||
{{ $t('PROFILE_SETTINGS.FORM.EMAIL_NOTIFICATIONS_SECTION.TITLE') }}
|
||||
</h4>
|
||||
<p>
|
||||
{{ $t('PROFILE_SETTINGS.FORM.EMAIL_NOTIFICATIONS_SECTION.NOTE') }}
|
||||
</p>
|
||||
</div>
|
||||
<div class="columns small-9">
|
||||
<div>
|
||||
<div class="w-[45%] p-4">
|
||||
<div class="flex items-center gap-2 mb-1">
|
||||
<input
|
||||
v-model="selectedEmailFlags"
|
||||
class="notification--checkbox"
|
||||
@@ -166,7 +170,7 @@
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="flex items-center gap-2 mb-1">
|
||||
<input
|
||||
v-model="selectedEmailFlags"
|
||||
class="notification--checkbox"
|
||||
@@ -183,7 +187,7 @@
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="flex items-center gap-2 mb-1">
|
||||
<input
|
||||
v-model="selectedEmailFlags"
|
||||
class="notification--checkbox"
|
||||
@@ -200,7 +204,7 @@
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="flex items-center gap-2 mb-1">
|
||||
<input
|
||||
v-model="selectedEmailFlags"
|
||||
class="notification--checkbox"
|
||||
@@ -216,7 +220,7 @@
|
||||
}}
|
||||
</label>
|
||||
</div>
|
||||
<div>
|
||||
<div class="flex items-center gap-2 mb-1">
|
||||
<input
|
||||
v-model="selectedEmailFlags"
|
||||
class="notification--checkbox"
|
||||
@@ -236,15 +240,15 @@
|
||||
</div>
|
||||
<div
|
||||
v-if="vapidPublicKey && hasPushAPISupport"
|
||||
class="profile--settings--row text-black-900 dark:text-slate-300 row push-row"
|
||||
class="profile--settings--row text-black-900 dark:text-slate-300 flex items-center push-row"
|
||||
>
|
||||
<div class="columns small-3">
|
||||
<h4 class="block-title text-black-900 dark:text-slate-200">
|
||||
<div class="w-1/4">
|
||||
<h4 class="text-lg text-black-900 dark:text-slate-200">
|
||||
{{ $t('PROFILE_SETTINGS.FORM.PUSH_NOTIFICATIONS_SECTION.TITLE') }}
|
||||
</h4>
|
||||
<p>{{ $t('PROFILE_SETTINGS.FORM.PUSH_NOTIFICATIONS_SECTION.NOTE') }}</p>
|
||||
</div>
|
||||
<div class="columns small-9">
|
||||
<div class="w-[45%] p-4">
|
||||
<p v-if="hasEnabledPushPermissions">
|
||||
{{
|
||||
$t(
|
||||
@@ -264,7 +268,7 @@
|
||||
@click="onRequestPermissions"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<div class="flex items-center gap-2 mb-1">
|
||||
<input
|
||||
v-model="selectedPushFlags"
|
||||
class="notification--checkbox"
|
||||
@@ -281,7 +285,7 @@
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="flex items-center gap-2 mb-1">
|
||||
<input
|
||||
v-model="selectedPushFlags"
|
||||
class="notification--checkbox"
|
||||
@@ -298,7 +302,7 @@
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="flex items-center gap-2 mb-1">
|
||||
<input
|
||||
v-model="selectedPushFlags"
|
||||
class="notification--checkbox"
|
||||
@@ -315,7 +319,7 @@
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="flex items-center gap-2 mb-1">
|
||||
<input
|
||||
v-model="selectedPushFlags"
|
||||
class="notification--checkbox"
|
||||
@@ -332,7 +336,7 @@
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="flex items-center gap-2 mb-1">
|
||||
<input
|
||||
v-model="selectedPushFlags"
|
||||
class="notification--checkbox"
|
||||
@@ -525,10 +529,6 @@ export default {
|
||||
margin-bottom: var(--space-one);
|
||||
}
|
||||
|
||||
.notification-items--wrapper {
|
||||
margin-bottom: var(--space-smaller);
|
||||
}
|
||||
|
||||
.notification-label {
|
||||
display: flex;
|
||||
font-weight: var(--font-weight-bold);
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
<template>
|
||||
<div class="flex-1 overflow-auto p-4">
|
||||
<div class="row">
|
||||
<div class="column small-12 medium-8 conversation-metric">
|
||||
<div class="flex flex-col md:flex-row items-center">
|
||||
<div
|
||||
class="flex-1 w-full max-w-full md:w-[65%] md:max-w-[65%] conversation-metric"
|
||||
>
|
||||
<metric-card
|
||||
:header="$t('OVERVIEW_REPORTS.ACCOUNT_CONVERSATIONS.HEADER')"
|
||||
:is-loading="uiFlags.isFetchingAccountConversationMetric"
|
||||
@@ -12,7 +14,7 @@
|
||||
<div
|
||||
v-for="(metric, name, index) in conversationMetrics"
|
||||
:key="index"
|
||||
class="metric-content column"
|
||||
class="metric-content flex-1 min-w-0"
|
||||
>
|
||||
<h3 class="heading">
|
||||
{{ name }}
|
||||
@@ -21,12 +23,12 @@
|
||||
</div>
|
||||
</metric-card>
|
||||
</div>
|
||||
<div class="column small-12 medium-4">
|
||||
<div class="flex-1 w-full max-w-full md:w-[35%] md:max-w-[35%]">
|
||||
<metric-card :header="$t('OVERVIEW_REPORTS.AGENT_STATUS.HEADER')">
|
||||
<div
|
||||
v-for="(metric, name, index) in agentStatusMetrics"
|
||||
:key="index"
|
||||
class="metric-content column"
|
||||
class="metric-content flex-1 min-w-0"
|
||||
>
|
||||
<h3 class="heading">
|
||||
{{ name }}
|
||||
@@ -36,7 +38,7 @@
|
||||
</metric-card>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="max-w-full flex flex-wrap flex-row ml-auto mr-auto">
|
||||
<metric-card :header="$t('OVERVIEW_REPORTS.CONVERSATION_HEATMAP.HEADER')">
|
||||
<template #control>
|
||||
<woot-button
|
||||
@@ -55,7 +57,7 @@
|
||||
/>
|
||||
</metric-card>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="max-w-full flex flex-wrap flex-row ml-auto mr-auto">
|
||||
<metric-card :header="$t('OVERVIEW_REPORTS.AGENT_CONVERSATIONS.HEADER')">
|
||||
<agent-table
|
||||
:agents="agents"
|
||||
|
||||
@@ -37,15 +37,6 @@ import format from 'date-fns/format';
|
||||
import { formatTime } from '@chatwoot/utils';
|
||||
import reportMixin from 'dashboard/mixins/reportMixin';
|
||||
import ChartStats from './components/ChartElements/ChartStats.vue';
|
||||
const REPORTS_KEYS = {
|
||||
CONVERSATIONS: 'conversations_count',
|
||||
INCOMING_MESSAGES: 'incoming_messages_count',
|
||||
OUTGOING_MESSAGES: 'outgoing_messages_count',
|
||||
FIRST_RESPONSE_TIME: 'avg_first_response_time',
|
||||
RESOLUTION_TIME: 'avg_resolution_time',
|
||||
RESOLUTION_COUNT: 'resolutions_count',
|
||||
REPLY_TIME: 'reply_time',
|
||||
};
|
||||
|
||||
export default {
|
||||
components: { ChartStats },
|
||||
@@ -55,18 +46,22 @@ export default {
|
||||
type: Object,
|
||||
default: () => ({}),
|
||||
},
|
||||
reportKeys: {
|
||||
type: Object,
|
||||
default: () => ({
|
||||
CONVERSATIONS: 'conversations_count',
|
||||
INCOMING_MESSAGES: 'incoming_messages_count',
|
||||
OUTGOING_MESSAGES: 'outgoing_messages_count',
|
||||
FIRST_RESPONSE_TIME: 'avg_first_response_time',
|
||||
RESOLUTION_TIME: 'avg_resolution_time',
|
||||
RESOLUTION_COUNT: 'resolutions_count',
|
||||
REPLY_TIME: 'reply_time',
|
||||
}),
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
metrics() {
|
||||
const reportKeys = [
|
||||
'CONVERSATIONS',
|
||||
'FIRST_RESPONSE_TIME',
|
||||
'REPLY_TIME',
|
||||
'RESOLUTION_TIME',
|
||||
'RESOLUTION_COUNT',
|
||||
'INCOMING_MESSAGES',
|
||||
'OUTGOING_MESSAGES',
|
||||
];
|
||||
const reportKeys = Object.keys(this.reportKeys);
|
||||
const infoText = {
|
||||
FIRST_RESPONSE_TIME: this.$t(
|
||||
`REPORT.METRICS.FIRST_RESPONSE_TIME.INFO_TEXT`
|
||||
@@ -75,11 +70,11 @@ export default {
|
||||
};
|
||||
return reportKeys.map(key => ({
|
||||
NAME: this.$t(`REPORT.METRICS.${key}.NAME`),
|
||||
KEY: REPORTS_KEYS[key],
|
||||
KEY: this.reportKeys[key],
|
||||
DESC: this.$t(`REPORT.METRICS.${key}.DESC`),
|
||||
INFO_TEXT: infoText[key],
|
||||
TOOLTIP_TEXT: `REPORT.METRICS.${key}.TOOLTIP_TEXT`,
|
||||
trend: this.calculateTrend(REPORTS_KEYS[key]),
|
||||
trend: this.calculateTrend(this.reportKeys[key]),
|
||||
}));
|
||||
},
|
||||
},
|
||||
|
||||
-77
@@ -1,77 +0,0 @@
|
||||
<template>
|
||||
<div
|
||||
class="md:w-[16%] sm:w-[50%] sm:max-w-[50%] md:max-w-[16%] csat--metric-card"
|
||||
:class="{
|
||||
disabled: disabled,
|
||||
}"
|
||||
>
|
||||
<h3 class="heading">
|
||||
<span>{{ label }}</span>
|
||||
<fluent-icon
|
||||
v-tooltip="infoText"
|
||||
size="14"
|
||||
icon="info"
|
||||
class="csat--icon"
|
||||
/>
|
||||
</h3>
|
||||
<h4 class="metric">
|
||||
{{ value }}
|
||||
</h4>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
label: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
value: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
infoText: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.csat--metric-card {
|
||||
margin: 0;
|
||||
padding: var(--space-normal);
|
||||
|
||||
&.disabled {
|
||||
// grayscale everything
|
||||
filter: grayscale(100%);
|
||||
opacity: 0.3;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.heading {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
font-size: var(--font-size-small);
|
||||
font-weight: var(--font-weight-bold);
|
||||
margin: 0;
|
||||
@apply text-slate-800 dark:text-slate-100;
|
||||
}
|
||||
|
||||
.metric {
|
||||
font-size: var(--font-size-bigger);
|
||||
font-weight: var(--font-weight-feather);
|
||||
margin-bottom: 0;
|
||||
margin-top: var(--space-smaller);
|
||||
@apply text-slate-700 dark:text-slate-100;
|
||||
}
|
||||
}
|
||||
|
||||
.csat--icon {
|
||||
@apply text-slate-500 dark:text-slate-200 my-0 mx-0.5;
|
||||
}
|
||||
</style>
|
||||
+9
-5
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div
|
||||
class="flex flex-wrap mx-0 bg-white dark:bg-slate-800 rounded-[4px] p-4 mb-5 border border-solid border-slate-75 dark:border-slate-700"
|
||||
class="flex-col lg:flex-row flex flex-wrap mx-0 bg-white dark:bg-slate-800 rounded-[4px] p-4 mb-5 border border-solid border-slate-75 dark:border-slate-700"
|
||||
>
|
||||
<csat-metric-card
|
||||
:label="$t('CSAT_REPORTS.METRIC.TOTAL_RESPONSES.LABEL')"
|
||||
@@ -18,16 +18,20 @@
|
||||
:info-text="$t('CSAT_REPORTS.METRIC.RESPONSE_RATE.TOOLTIP')"
|
||||
:value="formatToPercent(responseRate)"
|
||||
/>
|
||||
|
||||
<div
|
||||
v-if="metrics.totalResponseCount && !ratingFilterEnabled"
|
||||
class="w-[50%] max-w-[50%] flex-[50%] report-card rtl:[direction:initial]"
|
||||
ref="csatHorizontalBarChart"
|
||||
class="w-full md:w-1/2 md:max-w-[50%] flex-1 rtl:[direction:initial] p-4"
|
||||
>
|
||||
<h3 class="heading text-slate-800 dark:text-slate-100">
|
||||
<h3
|
||||
class="flex items-center text-xs md:text-sm font-medium m-0 text-slate-800 dark:text-slate-100"
|
||||
>
|
||||
<div class="flex justify-end flex-row-reverse">
|
||||
<div
|
||||
v-for="(rating, key, index) in ratingPercentage"
|
||||
:key="rating + key + index"
|
||||
class="pl-4"
|
||||
class="ltr:pr-4 rtl:pl-4"
|
||||
>
|
||||
<span class="my-0 mx-0.5">{{ ratingToEmoji(key) }}</span>
|
||||
<span>{{ formatToPercent(rating) }}</span>
|
||||
@@ -42,7 +46,7 @@
|
||||
</template>
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import CsatMetricCard from './CsatMetricCard.vue';
|
||||
import CsatMetricCard from './ReportMetricCard.vue';
|
||||
import { CSAT_RATINGS } from 'shared/constants/messages';
|
||||
|
||||
export default {
|
||||
|
||||
+6
-6
@@ -12,26 +12,26 @@
|
||||
@input="handleInput"
|
||||
>
|
||||
<template slot="singleLabel" slot-scope="props">
|
||||
<div class="reports-option__wrap">
|
||||
<div class="flex items-center gap-2">
|
||||
<div
|
||||
:style="{ backgroundColor: props.option.color }"
|
||||
class="reports-option__rounded--item"
|
||||
class="rounded-full h-5 w-5"
|
||||
/>
|
||||
<span class="reports-option__desc">
|
||||
<span class="reports-option__title">
|
||||
<span class="my-0 text-slate-800 dark:text-slate-75">
|
||||
{{ props.option.title }}
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
<template slot="option" slot-scope="props">
|
||||
<div class="reports-option__wrap">
|
||||
<div class="flex items-center gap-2">
|
||||
<div
|
||||
:style="{ backgroundColor: props.option.color }"
|
||||
class="reports-option__rounded--item reports-option__item reports-option__label--swatch"
|
||||
class="rounded-full h-5 w-5 flex-shrink-0 border border-solid border-slate-100 dark:border-slate-800"
|
||||
/>
|
||||
<span class="reports-option__desc">
|
||||
<span class="reports-option__title">
|
||||
<span class="my-0 text-slate-800 dark:text-slate-75">
|
||||
{{ props.option.title }}
|
||||
</span>
|
||||
</span>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user