feat: Use Fluent SVG icons on the dashboard (#3482)
This commit is contained in:
parent
98be3b33c1
commit
c792cfc0be
151 changed files with 613 additions and 617 deletions
|
@ -6,6 +6,10 @@
|
||||||
margin-right: var(--space-smaller);
|
margin-right: var(--space-smaller);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.margin-left-minus-slab {
|
||||||
|
margin-left: var(--space-minus-slab);
|
||||||
|
}
|
||||||
|
|
||||||
.fs-small {
|
.fs-small {
|
||||||
font-size: var(--font-size-small);
|
font-size: var(--font-size-small);
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,11 +85,6 @@
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
width: 27rem;
|
width: 27rem;
|
||||||
|
|
||||||
.small-icon {
|
|
||||||
font-size: $font-size-mini;
|
|
||||||
vertical-align: top;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.conversation--meta {
|
.conversation--meta {
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
font-size: $font-size-big;
|
font-size: $font-size-big;
|
||||||
line-height: $space-normal;
|
line-height: $space-normal;
|
||||||
padding: $space-normal $space-two;
|
padding: $space-normal;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: $space-micro;
|
right: $space-micro;
|
||||||
top: $space-micro;
|
top: $space-micro;
|
||||||
|
|
|
@ -31,6 +31,8 @@
|
||||||
|
|
||||||
.wrap,
|
.wrap,
|
||||||
.child-icon {
|
.child-icon {
|
||||||
|
color: $color-gray;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
color: $color-woot;
|
color: $color-woot;
|
||||||
}
|
}
|
||||||
|
@ -62,7 +64,7 @@
|
||||||
.bottom-nav {
|
.bottom-nav {
|
||||||
@include flex;
|
@include flex;
|
||||||
@include space-between-column;
|
@include space-between-column;
|
||||||
@include padding($space-one $space-normal $space-one $space-one);
|
@include padding($space-one);
|
||||||
@include border-normal-top;
|
@include border-normal-top;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
@ -111,16 +113,6 @@
|
||||||
line-height: $global-lineheight;
|
line-height: $global-lineheight;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hamburger--menu {
|
|
||||||
cursor: pointer;
|
|
||||||
display: none;
|
|
||||||
margin-right: $space-normal;
|
|
||||||
|
|
||||||
@media screen and (max-width: 1200px) {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.header--icon {
|
.header--icon {
|
||||||
display: block;
|
display: block;
|
||||||
margin-right: $space-normal;
|
margin-right: $space-normal;
|
||||||
|
|
|
@ -10,8 +10,8 @@
|
||||||
<div class="button-icon--wrap">
|
<div class="button-icon--wrap">
|
||||||
<slot name="button" />
|
<slot name="button" />
|
||||||
<div class="chevron-icon__wrap">
|
<div class="chevron-icon__wrap">
|
||||||
<i v-if="isOpen" class="ion-minus chevron-icon"></i>
|
<fluent-icon v-if="isOpen" size="24" icon="subtract" type="solid" />
|
||||||
<i v-else class="ion-plus chevron-icon"></i>
|
<fluent-icon v-else size="24" icon="add" type="solid" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</button>
|
</button>
|
||||||
|
|
|
@ -27,7 +27,7 @@ l<template>
|
||||||
class="btn-filter"
|
class="btn-filter"
|
||||||
@click="onToggleAdvanceFiltersModal"
|
@click="onToggleAdvanceFiltersModal"
|
||||||
>
|
>
|
||||||
<i class="icon ion-ios-settings-strong" />
|
<fluent-icon icon="filter" />
|
||||||
</woot-button>
|
</woot-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
variant="link"
|
variant="link"
|
||||||
size="medium"
|
size="medium"
|
||||||
color-scheme="secondary"
|
color-scheme="secondary"
|
||||||
icon="ion-trash-a"
|
icon="delete"
|
||||||
class-names="delete-button"
|
class-names="delete-button"
|
||||||
@click="onDelete"
|
@click="onDelete"
|
||||||
/>
|
/>
|
||||||
|
@ -44,7 +44,7 @@
|
||||||
@keyup.enter="onUpdate"
|
@keyup.enter="onUpdate"
|
||||||
/>
|
/>
|
||||||
<div class="input-group-button">
|
<div class="input-group-button">
|
||||||
<woot-button size="small" icon="ion-checkmark" @click="onUpdate" />
|
<woot-button size="small" icon="checkmark" @click="onUpdate" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<span v-if="shouldShowErrorMessage" class="error-message">
|
<span v-if="shouldShowErrorMessage" class="error-message">
|
||||||
|
@ -75,7 +75,7 @@
|
||||||
variant="link"
|
variant="link"
|
||||||
size="small"
|
size="small"
|
||||||
color-scheme="secondary"
|
color-scheme="secondary"
|
||||||
icon="ion-clipboard"
|
icon="clipboard"
|
||||||
class-names="edit-button"
|
class-names="edit-button"
|
||||||
@click="onCopy"
|
@click="onCopy"
|
||||||
/>
|
/>
|
||||||
|
@ -85,7 +85,7 @@
|
||||||
variant="link"
|
variant="link"
|
||||||
size="small"
|
size="small"
|
||||||
color-scheme="secondary"
|
color-scheme="secondary"
|
||||||
icon="ion-compose"
|
icon="edit"
|
||||||
class-names="edit-button"
|
class-names="edit-button"
|
||||||
@click="onEdit"
|
@click="onEdit"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -7,7 +7,9 @@
|
||||||
@click="onBackDropClick"
|
@click="onBackDropClick"
|
||||||
>
|
>
|
||||||
<div :class="modalContainerClassName" @click.stop>
|
<div :class="modalContainerClassName" @click.stop>
|
||||||
<i class="ion-android-close modal--close" @click="close"></i>
|
<button class="modal--close" @click="close">
|
||||||
|
<fluent-icon icon="dismiss" />
|
||||||
|
</button>
|
||||||
<slot />
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
{{ $t('NETWORK.BUTTON.REFRESH') }}
|
{{ $t('NETWORK.BUTTON.REFRESH') }}
|
||||||
</button>
|
</button>
|
||||||
<button class="ui-close-button" @click="closeNotification">
|
<button class="ui-close-button" @click="closeNotification">
|
||||||
<i class="ui-close-icon icon ion-ios-close-outline" />
|
<fluent-icon icon="dismiss-circle" class="ui-close-icon " />
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<i class="ion-android-menu hamburger--menu" @click="onMenuItemClick" />
|
<button @click="onMenuItemClick">
|
||||||
|
<fluent-icon class="hamburger--menu" icon="list" />
|
||||||
|
</button>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
@ -13,8 +15,14 @@ export default {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style scoped lang="scss">
|
||||||
.ion-android-menu {
|
.hamburger--menu {
|
||||||
font-size: var(--font-size-big);
|
cursor: pointer;
|
||||||
|
display: none;
|
||||||
|
margin-right: var(--space-normal);
|
||||||
|
|
||||||
|
@media screen and (max-width: 1200px) {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
<template>
|
<template>
|
||||||
<button :type="type" class="button nice" :class="variant" @click="onClick">
|
<button :type="type" class="button nice" :class="variant" @click="onClick">
|
||||||
<i
|
<fluent-icon
|
||||||
v-if="!isLoading && icon"
|
v-if="!isLoading && icon"
|
||||||
class="icon"
|
class="icon"
|
||||||
:class="buttonIconClass + ' ' + icon"
|
:class="buttonIconClass"
|
||||||
|
:icon="icon"
|
||||||
/>
|
/>
|
||||||
<spinner v-if="isLoading" />
|
<spinner v-if="isLoading" />
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
:class="computedClass"
|
:class="computedClass"
|
||||||
@click="onClick"
|
@click="onClick"
|
||||||
>
|
>
|
||||||
<i v-if="!!iconClass" :class="iconClass" class="icon" />
|
<fluent-icon v-if="!!iconClass" :icon="iconClass" class="icon" />
|
||||||
<span>{{ buttonText }}</span>
|
<span>{{ buttonText }}</span>
|
||||||
<spinner v-if="loading" />
|
<spinner v-if="loading" />
|
||||||
</button>
|
</button>
|
||||||
|
|
|
@ -5,8 +5,9 @@
|
||||||
v-if="isOpen"
|
v-if="isOpen"
|
||||||
class-names="resolve"
|
class-names="resolve"
|
||||||
color-scheme="success"
|
color-scheme="success"
|
||||||
icon="ion-checkmark"
|
icon="checkmark"
|
||||||
emoji="✅"
|
emoji="✅"
|
||||||
|
icon-size="16"
|
||||||
:is-loading="isLoading"
|
:is-loading="isLoading"
|
||||||
@click="onCmdResolveConversation"
|
@click="onCmdResolveConversation"
|
||||||
>
|
>
|
||||||
|
@ -16,8 +17,9 @@
|
||||||
v-else-if="isResolved"
|
v-else-if="isResolved"
|
||||||
class-names="resolve"
|
class-names="resolve"
|
||||||
color-scheme="warning"
|
color-scheme="warning"
|
||||||
icon="ion-refresh"
|
icon="arrow-redo"
|
||||||
emoji="👀"
|
emoji="👀"
|
||||||
|
icon-size="16"
|
||||||
:is-loading="isLoading"
|
:is-loading="isLoading"
|
||||||
@click="onCmdOpenConversation"
|
@click="onCmdOpenConversation"
|
||||||
>
|
>
|
||||||
|
@ -27,7 +29,8 @@
|
||||||
v-else-if="showOpenButton"
|
v-else-if="showOpenButton"
|
||||||
class-names="resolve"
|
class-names="resolve"
|
||||||
color-scheme="primary"
|
color-scheme="primary"
|
||||||
icon="ion-person"
|
icon="person"
|
||||||
|
icon-size="16"
|
||||||
:is-loading="isLoading"
|
:is-loading="isLoading"
|
||||||
@click="onCmdOpenConversation"
|
@click="onCmdOpenConversation"
|
||||||
>
|
>
|
||||||
|
@ -38,7 +41,8 @@
|
||||||
ref="arrowDownButton"
|
ref="arrowDownButton"
|
||||||
:color-scheme="buttonClass"
|
:color-scheme="buttonClass"
|
||||||
:disabled="isLoading"
|
:disabled="isLoading"
|
||||||
icon="ion-arrow-down-b"
|
icon="chevron-down"
|
||||||
|
icon-size="16"
|
||||||
emoji="🔽"
|
emoji="🔽"
|
||||||
@click="openDropdown"
|
@click="openDropdown"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<div class="bottom-nav app-context-menu" @click="toggleOptions">
|
<div class="bottom-nav app-context-menu" @click="toggleOptions">
|
||||||
<agent-details @show-options="toggleOptions" />
|
<agent-details @show-options="toggleOptions" />
|
||||||
<notification-bell />
|
<notification-bell />
|
||||||
<span class="current-user--options icon ion-android-more-vertical" />
|
<fluent-icon class="current-user--options" icon="more-vertical" />
|
||||||
<options-menu
|
<options-menu
|
||||||
:show="showOptionsMenu"
|
:show="showOptionsMenu"
|
||||||
@toggle-accounts="toggleAccountModal"
|
@toggle-accounts="toggleAccountModal"
|
||||||
|
@ -107,14 +107,14 @@ import router from '../../routes';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
AgentDetails,
|
|
||||||
SidebarItem,
|
|
||||||
AvailabilityStatus,
|
|
||||||
NotificationBell,
|
|
||||||
OptionsMenu,
|
|
||||||
AccountSelector,
|
AccountSelector,
|
||||||
AddAccountModal,
|
AddAccountModal,
|
||||||
AddLabelModal,
|
AddLabelModal,
|
||||||
|
AgentDetails,
|
||||||
|
AvailabilityStatus,
|
||||||
|
NotificationBell,
|
||||||
|
OptionsMenu,
|
||||||
|
SidebarItem,
|
||||||
WootKeyShortcutModal,
|
WootKeyShortcutModal,
|
||||||
},
|
},
|
||||||
mixins: [adminMixin, alertMixin, eventListenerMixins],
|
mixins: [adminMixin, alertMixin, eventListenerMixins],
|
||||||
|
@ -173,7 +173,7 @@ export default {
|
||||||
},
|
},
|
||||||
inboxSection() {
|
inboxSection() {
|
||||||
return {
|
return {
|
||||||
icon: 'ion-folder',
|
icon: 'folder',
|
||||||
label: 'INBOXES',
|
label: 'INBOXES',
|
||||||
hasSubMenu: true,
|
hasSubMenu: true,
|
||||||
newLink: true,
|
newLink: true,
|
||||||
|
@ -193,7 +193,7 @@ export default {
|
||||||
},
|
},
|
||||||
labelSection() {
|
labelSection() {
|
||||||
return {
|
return {
|
||||||
icon: 'ion-pound',
|
icon: 'number-symbol',
|
||||||
label: 'LABELS',
|
label: 'LABELS',
|
||||||
hasSubMenu: true,
|
hasSubMenu: true,
|
||||||
newLink: true,
|
newLink: true,
|
||||||
|
@ -216,7 +216,7 @@ export default {
|
||||||
},
|
},
|
||||||
contactLabelSection() {
|
contactLabelSection() {
|
||||||
return {
|
return {
|
||||||
icon: 'ion-pound',
|
icon: 'number-symbol',
|
||||||
label: 'TAGGED_WITH',
|
label: 'TAGGED_WITH',
|
||||||
hasSubMenu: true,
|
hasSubMenu: true,
|
||||||
key: 'label',
|
key: 'label',
|
||||||
|
@ -239,7 +239,7 @@ export default {
|
||||||
},
|
},
|
||||||
teamSection() {
|
teamSection() {
|
||||||
return {
|
return {
|
||||||
icon: 'ion-ios-people',
|
icon: 'people-team',
|
||||||
label: 'TEAMS',
|
label: 'TEAMS',
|
||||||
hasSubMenu: true,
|
hasSubMenu: true,
|
||||||
newLink: true,
|
newLink: true,
|
||||||
|
@ -354,11 +354,11 @@ export default {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
padding: $space-small $space-large;
|
padding: $space-small $space-large;
|
||||||
|
|
||||||
.ion-ios-checkmark {
|
.selected--account {
|
||||||
font-size: $font-size-big;
|
margin-top: -$space-smaller;
|
||||||
|
|
||||||
& + .account--details {
|
& + .account--details {
|
||||||
padding-left: $space-normal;
|
padding-left: $space-normal - $space-micro;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,14 +13,20 @@
|
||||||
:title="menuItem.toolTip"
|
:title="menuItem.toolTip"
|
||||||
>
|
>
|
||||||
<div class="wrap">
|
<div class="wrap">
|
||||||
<i :class="menuItem.icon" />
|
<fluent-icon
|
||||||
|
size="18"
|
||||||
|
:icon="menuItem.icon"
|
||||||
|
class="margin-right-small"
|
||||||
|
/>
|
||||||
{{ $t(`SIDEBAR.${menuItem.label}`) }}
|
{{ $t(`SIDEBAR.${menuItem.label}`) }}
|
||||||
</div>
|
</div>
|
||||||
<span
|
<button
|
||||||
v-if="showItem(menuItem)"
|
v-if="showItem(menuItem)"
|
||||||
class="child-icon ion-android-add-circle"
|
class="child-icon"
|
||||||
@click.prevent="newLinkClick(menuItem)"
|
@click.prevent="newLinkClick(menuItem)"
|
||||||
/>
|
>
|
||||||
|
<fluent-icon icon="add-circle" size="16" />
|
||||||
|
</button>
|
||||||
</a>
|
</a>
|
||||||
<ul v-if="menuItem.hasSubMenu" class="nested vertical menu">
|
<ul v-if="menuItem.hasSubMenu" class="nested vertical menu">
|
||||||
<router-link
|
<router-link
|
||||||
|
@ -32,10 +38,11 @@
|
||||||
>
|
>
|
||||||
<a href="#" :class="computedChildClass(child)">
|
<a href="#" :class="computedChildClass(child)">
|
||||||
<div class="wrap">
|
<div class="wrap">
|
||||||
<i
|
<fluent-icon
|
||||||
v-if="menuItem.key === 'inbox'"
|
v-if="menuItem.key === 'inbox'"
|
||||||
class="inbox-icon"
|
class="inbox-icon"
|
||||||
:class="computedInboxClass(child)"
|
size="14"
|
||||||
|
:icon="computedInboxClass(child)"
|
||||||
/>
|
/>
|
||||||
<span
|
<span
|
||||||
v-if="child.color"
|
v-if="child.color"
|
||||||
|
@ -143,12 +150,4 @@ export default {
|
||||||
min-width: $space-normal;
|
min-width: $space-normal;
|
||||||
width: $space-normal;
|
width: $space-normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
.inbox-icon {
|
|
||||||
position: relative;
|
|
||||||
top: -1px;
|
|
||||||
&.ion-ios-email {
|
|
||||||
font-size: var(--font-size-medium);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -14,7 +14,13 @@
|
||||||
class="account-selector"
|
class="account-selector"
|
||||||
>
|
>
|
||||||
<a :href="`/app/accounts/${account.id}/dashboard`">
|
<a :href="`/app/accounts/${account.id}/dashboard`">
|
||||||
<i v-if="account.id === accountId" class="ion ion-ios-checkmark" />
|
<fluent-icon
|
||||||
|
v-if="account.id === accountId"
|
||||||
|
class="selected--account"
|
||||||
|
icon="checkmark-circle"
|
||||||
|
type="solid"
|
||||||
|
size="24"
|
||||||
|
/>
|
||||||
<label :for="account.name" class="account--details">
|
<label :for="account.name" class="account--details">
|
||||||
<div class="account--name">{{ account.name }}</div>
|
<div class="account--name">{{ account.name }}</div>
|
||||||
<div class="account--role">{{ account.role }}</div>
|
<div class="account--role">{{ account.role }}</div>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
<div v-if="!hasAccounts" class="alert-wrap">
|
<div v-if="!hasAccounts" class="alert-wrap">
|
||||||
<div class="callout alert">
|
<div class="callout alert">
|
||||||
<div class="icon-wrap">
|
<div class="icon-wrap">
|
||||||
<i class="ion-alert-circled"></i>
|
<fluent-icon icon="warning" />
|
||||||
</div>
|
</div>
|
||||||
{{ $t('CREATE_ACCOUNT.NO_ACCOUNT_WARNING') }}
|
{{ $t('CREATE_ACCOUNT.NO_ACCOUNT_WARNING') }}
|
||||||
</div>
|
</div>
|
||||||
|
@ -102,18 +102,19 @@ export default {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.alert-wrap {
|
.alert-wrap {
|
||||||
margin: var(--space-zero) var(--space-large);
|
font-size: var(--font-size-small);
|
||||||
margin-top: var(--space-medium);
|
margin: var(--space-medium) var(--space-large) var(--space-zero);
|
||||||
|
|
||||||
.callout {
|
.callout {
|
||||||
|
align-items: center;
|
||||||
|
border-radius: var(--border-radius-normal);
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-wrap {
|
.icon-wrap {
|
||||||
font-size: var(--font-size-big);
|
|
||||||
margin-left: var(--space-smaller);
|
margin-left: var(--space-smaller);
|
||||||
margin-right: var(--space-slab);
|
margin-right: var(--space-slab);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
<template>
|
<template>
|
||||||
<span class="notifications icon ion-ios-bell" @click.stop="showNotification">
|
<span class="notifications" @click.stop="showNotification">
|
||||||
|
<fluent-icon icon="alert" />
|
||||||
<span v-if="unreadCount" class="unread-badge">{{ unreadCount }}</span>
|
<span v-if="unreadCount" class="unread-badge">{{ unreadCount }}</span>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters({
|
...mapGetters({
|
||||||
|
|
|
@ -7,10 +7,12 @@ import i18n from 'dashboard/i18n';
|
||||||
|
|
||||||
import WootModal from 'dashboard/components/Modal';
|
import WootModal from 'dashboard/components/Modal';
|
||||||
import WootModalHeader from 'dashboard/components/ModalHeader';
|
import WootModalHeader from 'dashboard/components/ModalHeader';
|
||||||
|
import FluentIcon from 'shared/components/FluentIcon/DashboardIcon';
|
||||||
|
|
||||||
const localVue = createLocalVue();
|
const localVue = createLocalVue();
|
||||||
localVue.component('woot-modal', WootModal);
|
localVue.component('woot-modal', WootModal);
|
||||||
localVue.component('woot-modal-header', WootModalHeader);
|
localVue.component('woot-modal-header', WootModalHeader);
|
||||||
|
localVue.component('fluent-icon', FluentIcon);
|
||||||
|
|
||||||
localVue.use(Vuex);
|
localVue.use(Vuex);
|
||||||
localVue.use(VueI18n);
|
localVue.use(VueI18n);
|
||||||
|
@ -84,7 +86,7 @@ describe('accountSelctor', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('first account item is checked', () => {
|
it('first account item is checked', () => {
|
||||||
const accountFirstItem = accountSelector.find('.account-selector .ion');
|
const accountFirstItem = accountSelector.find('.account-selector svg');
|
||||||
expect(accountFirstItem.exists()).toBe(true);
|
expect(accountFirstItem.exists()).toBe(true);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
exports[`SidemenuIcon matches snapshot 1`] = `
|
exports[`SidemenuIcon matches snapshot 1`] = `
|
||||||
<i
|
<button>
|
||||||
class="ion-android-menu hamburger--menu"
|
<fluent-icon
|
||||||
|
class="hamburger--menu"
|
||||||
|
icon="list"
|
||||||
/>
|
/>
|
||||||
|
</button>
|
||||||
`;
|
`;
|
||||||
|
|
|
@ -1,13 +1,23 @@
|
||||||
<template>
|
<template>
|
||||||
<div :class="labelClass" :style="labelStyle" :title="description">
|
<div :class="labelClass" :style="labelStyle" :title="description">
|
||||||
<i v-if="icon" class="label--icon" :class="icon" @click="onClick" />
|
<button v-if="icon" class="label-action--button" @click="onClick">
|
||||||
|
<fluent-icon :icon="icon" size="12" class="label--icon" />
|
||||||
|
</button>
|
||||||
<span v-if="!href">{{ title }}</span>
|
<span v-if="!href">{{ title }}</span>
|
||||||
<a v-else :href="href" :style="anchorStyle">{{ title }}</a>
|
<a v-else :href="href" :style="anchorStyle">{{ title }}</a>
|
||||||
<i v-if="showClose" class="close--icon ion-close" @click="onClick" />
|
<button
|
||||||
|
v-if="showClose"
|
||||||
|
class="label-action--button"
|
||||||
|
:style="{ color: textColor }"
|
||||||
|
@click="onClick"
|
||||||
|
>
|
||||||
|
<fluent-icon icon="dismiss" size="12" class="close--icon" />
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { getContrastingTextColor } from '@chatwoot/utils';
|
import { getContrastingTextColor } from '@chatwoot/utils';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
title: {
|
title: {
|
||||||
|
@ -79,6 +89,8 @@ export default {
|
||||||
@import '~dashboard/assets/scss/variables';
|
@import '~dashboard/assets/scss/variables';
|
||||||
|
|
||||||
.label {
|
.label {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
font-weight: var(--font-weight-medium);
|
font-weight: var(--font-weight-medium);
|
||||||
margin-right: var(--space-smaller);
|
margin-right: var(--space-smaller);
|
||||||
margin-bottom: var(--space-smaller);
|
margin-bottom: var(--space-smaller);
|
||||||
|
@ -89,11 +101,12 @@ export default {
|
||||||
|
|
||||||
.label--icon {
|
.label--icon {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
margin-right: var(--space-smaller);
|
||||||
}
|
}
|
||||||
.label--icon,
|
|
||||||
.close--icon {
|
.close--icon {
|
||||||
font-size: var(--font-size-micro);
|
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
margin-left: var(--space-smaller);
|
||||||
}
|
}
|
||||||
|
|
||||||
&.small .label--icon,
|
&.small .label--icon,
|
||||||
|
@ -150,4 +163,8 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.label-action--button {
|
||||||
|
margin-bottom: var(--space-minus-micro);
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
<h3>
|
<h3>
|
||||||
{{ item.title }}
|
{{ item.title }}
|
||||||
<span v-if="isOver(item)" class="completed">
|
<span v-if="isOver(item)" class="completed">
|
||||||
<i class="ion-checkmark"></i>
|
<fluent-icon icon="checkmark" />
|
||||||
</span>
|
</span>
|
||||||
</h3>
|
</h3>
|
||||||
<span class="step">
|
<span class="step">
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
class="icon"
|
class="icon"
|
||||||
:emoji="emoji"
|
:emoji="emoji"
|
||||||
:icon="icon"
|
:icon="icon"
|
||||||
|
:icon-size="iconSize"
|
||||||
/>
|
/>
|
||||||
<span v-if="$slots.default" class="button__content"><slot></slot></span>
|
<span v-if="$slots.default" class="button__content"><slot></slot></span>
|
||||||
</button>
|
</button>
|
||||||
|
@ -35,6 +36,10 @@ export default {
|
||||||
type: String,
|
type: String,
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
|
iconSize: {
|
||||||
|
type: [Number, String],
|
||||||
|
default: 20,
|
||||||
|
},
|
||||||
emoji: {
|
emoji: {
|
||||||
type: String,
|
type: String,
|
||||||
default: '',
|
default: '',
|
||||||
|
|
|
@ -24,12 +24,11 @@
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="remove-file-wrap">
|
<div class="remove-file-wrap">
|
||||||
<button
|
<woot-button
|
||||||
class="remove--attachment"
|
class="remove--attachment clear secondary"
|
||||||
|
icon="dismiss"
|
||||||
@click="() => onRemoveAttachment(index)"
|
@click="() => onRemoveAttachment(index)"
|
||||||
>
|
/>
|
||||||
<i class="ion-android-close"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
<span class="back-button ion-ios-arrow-left" @click.capture="goBack">
|
<button class="back-button" @click.capture="goBack">
|
||||||
|
<fluent-icon icon="chevron-left" />
|
||||||
{{ buttonLabel || $t('GENERAL_SETTINGS.BACK') }}
|
{{ buttonLabel || $t('GENERAL_SETTINGS.BACK') }}
|
||||||
</span>
|
</button>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import router from '../../routes/index';
|
import router from '../../routes/index';
|
||||||
|
@ -28,3 +29,4 @@ export default {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
<style scoped></style>
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
<template>
|
|
||||||
<div class="inbox">
|
|
||||||
<i :class="icon" />
|
|
||||||
<span>{{ inbox.name }}</span>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
<script>
|
|
||||||
import { INBOX_TYPES } from 'shared/mixins/inboxMixin';
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
inbox: {
|
|
||||||
type: Object,
|
|
||||||
default: () => {},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
icon() {
|
|
||||||
if (this.inbox.channel_type === INBOX_TYPES.WEB) {
|
|
||||||
return 'icon ion-earth';
|
|
||||||
}
|
|
||||||
return 'icon ion-android-textsms';
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
.inbox {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
.icon {
|
|
||||||
margin-right: var(--space-micro);
|
|
||||||
min-width: var(--space-normal);
|
|
||||||
position: relative;
|
|
||||||
top: -1px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -1,23 +0,0 @@
|
||||||
<template>
|
|
||||||
<div class="inbox-item">
|
|
||||||
<img src="~dashboard/assets/images/no_page_image.png" alt="No Page Image" />
|
|
||||||
<div class="item--details columns">
|
|
||||||
<h4 class="item--name">
|
|
||||||
{{ inbox.label }}
|
|
||||||
</h4>
|
|
||||||
<p class="item--sub">
|
|
||||||
Facebook
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<!-- <span class="ion-chevron-right arrow"></span> -->
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
<script>
|
|
||||||
/* eslint no-console: 0 */
|
|
||||||
// import WootSwitch from '../ui/Switch';
|
|
||||||
|
|
||||||
export default {
|
|
||||||
props: ['inbox'],
|
|
||||||
created() {},
|
|
||||||
};
|
|
||||||
</script>
|
|
|
@ -1,8 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
<span class="inbox--name">
|
<div class="inbox--name">
|
||||||
<i :class="computedInboxClass" />
|
<fluent-icon class="inbox--icon" :icon="computedInboxClass" size="12" />
|
||||||
{{ inbox.name }}
|
{{ inbox.name }}
|
||||||
</span>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { getInboxClassByType } from 'dashboard/helper/inbox';
|
import { getInboxClassByType } from 'dashboard/helper/inbox';
|
||||||
|
@ -25,6 +25,7 @@ export default {
|
||||||
</script>
|
</script>
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.inbox--name {
|
.inbox--name {
|
||||||
|
display: inline-flex;
|
||||||
padding: var(--space-micro) 0;
|
padding: var(--space-micro) 0;
|
||||||
line-height: var(--space-slab);
|
line-height: var(--space-slab);
|
||||||
font-weight: var(--font-weight-medium);
|
font-weight: var(--font-weight-medium);
|
||||||
|
@ -32,4 +33,8 @@ export default {
|
||||||
color: var(--s-500);
|
color: var(--s-500);
|
||||||
font-size: var(--font-size-mini);
|
font-size: var(--font-size-mini);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.inbox--icon {
|
||||||
|
margin-right: var(--space-micro);
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
<template>
|
|
||||||
<div class="search">
|
|
||||||
<i class="icon ion-ios-search-strong" />
|
|
||||||
<input class="input" type="email" :placeholder="$t('CHAT_LIST.SEARCH.INPUT')">
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
|
|
||||||
};
|
|
||||||
</script>
|
|
|
@ -20,8 +20,12 @@
|
||||||
:is-disabled="hasFirstPage"
|
:is-disabled="hasFirstPage"
|
||||||
@click="onFirstPage"
|
@click="onFirstPage"
|
||||||
>
|
>
|
||||||
<i class="ion-chevron-left" />
|
<fluent-icon icon="chevron-left" size="18" />
|
||||||
<i class="ion-chevron-left" />
|
<fluent-icon
|
||||||
|
icon="chevron-left"
|
||||||
|
size="18"
|
||||||
|
class="margin-left-minus-slab"
|
||||||
|
/>
|
||||||
</woot-button>
|
</woot-button>
|
||||||
<woot-button
|
<woot-button
|
||||||
size="small"
|
size="small"
|
||||||
|
@ -30,7 +34,7 @@
|
||||||
:is-disabled="hasPrevPage"
|
:is-disabled="hasPrevPage"
|
||||||
@click="onPrevPage"
|
@click="onPrevPage"
|
||||||
>
|
>
|
||||||
<i class="ion-chevron-left" />
|
<fluent-icon icon="chevron-left" size="18" />
|
||||||
</woot-button>
|
</woot-button>
|
||||||
<woot-button
|
<woot-button
|
||||||
size="small"
|
size="small"
|
||||||
|
@ -47,7 +51,7 @@
|
||||||
:is-disabled="hasNextPage"
|
:is-disabled="hasNextPage"
|
||||||
@click="onNextPage"
|
@click="onNextPage"
|
||||||
>
|
>
|
||||||
<i class="ion-chevron-right" />
|
<fluent-icon icon="chevron-right" size="18" />
|
||||||
</woot-button>
|
</woot-button>
|
||||||
<woot-button
|
<woot-button
|
||||||
size="small"
|
size="small"
|
||||||
|
@ -57,8 +61,12 @@
|
||||||
:is-disabled="hasLastPage"
|
:is-disabled="hasLastPage"
|
||||||
@click="onLastPage"
|
@click="onLastPage"
|
||||||
>
|
>
|
||||||
<i class="ion-chevron-right" />
|
<fluent-icon icon="chevron-right" size="18" />
|
||||||
<i class="ion-chevron-right" />
|
<fluent-icon
|
||||||
|
icon="chevron-right"
|
||||||
|
size="18"
|
||||||
|
class="margin-left-minus-slab"
|
||||||
|
/>
|
||||||
</woot-button>
|
</woot-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -3,11 +3,12 @@
|
||||||
<div class="left-wrap">
|
<div class="left-wrap">
|
||||||
<woot-button
|
<woot-button
|
||||||
:title="$t('CONVERSATION.REPLYBOX.TIP_EMOJI_ICON')"
|
:title="$t('CONVERSATION.REPLYBOX.TIP_EMOJI_ICON')"
|
||||||
icon="ion-happy-outline"
|
icon="emoji"
|
||||||
emoji="😊"
|
emoji="😊"
|
||||||
color-scheme="secondary"
|
color-scheme="secondary"
|
||||||
variant="smooth"
|
variant="smooth"
|
||||||
size="small"
|
size="small"
|
||||||
|
:icon-size="14"
|
||||||
@click="toggleEmojiPicker"
|
@click="toggleEmojiPicker"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
@ -24,8 +25,9 @@
|
||||||
v-if="showAttachButton"
|
v-if="showAttachButton"
|
||||||
class-names="button--upload"
|
class-names="button--upload"
|
||||||
:title="$t('CONVERSATION.REPLYBOX.TIP_ATTACH_ICON')"
|
:title="$t('CONVERSATION.REPLYBOX.TIP_ATTACH_ICON')"
|
||||||
icon="ion-android-attach"
|
icon="attach"
|
||||||
emoji="📎"
|
emoji="📎"
|
||||||
|
:icon-size="14"
|
||||||
color-scheme="secondary"
|
color-scheme="secondary"
|
||||||
variant="smooth"
|
variant="smooth"
|
||||||
size="small"
|
size="small"
|
||||||
|
@ -33,8 +35,9 @@
|
||||||
</file-upload>
|
</file-upload>
|
||||||
<woot-button
|
<woot-button
|
||||||
v-if="enableRichEditor && !isOnPrivateNote"
|
v-if="enableRichEditor && !isOnPrivateNote"
|
||||||
icon="ion-quote"
|
icon="quote"
|
||||||
emoji="🖊️"
|
emoji="🖊️"
|
||||||
|
:icon-size="16"
|
||||||
color-scheme="secondary"
|
color-scheme="secondary"
|
||||||
variant="smooth"
|
variant="smooth"
|
||||||
size="small"
|
size="small"
|
||||||
|
@ -46,7 +49,7 @@
|
||||||
v-show="$refs.upload && $refs.upload.dropActive"
|
v-show="$refs.upload && $refs.upload.dropActive"
|
||||||
class="modal-mask"
|
class="modal-mask"
|
||||||
>
|
>
|
||||||
<i class="ion-ios-cloud-upload-outline icon"></i>
|
<fluent-icon icon="cloud-backup" />
|
||||||
<h4 class="page-sub-title">
|
<h4 class="page-sub-title">
|
||||||
{{ $t('CONVERSATION.REPLYBOX.DRAG_DROP') }}
|
{{ $t('CONVERSATION.REPLYBOX.DRAG_DROP') }}
|
||||||
</h4>
|
</h4>
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
v-if="popoutReplyBox"
|
v-if="popoutReplyBox"
|
||||||
variant="clear"
|
variant="clear"
|
||||||
size="large"
|
size="large"
|
||||||
icon="ion-android-close"
|
icon="dismiss"
|
||||||
color-scheme="secondary"
|
color-scheme="secondary"
|
||||||
class-names="popout-button"
|
class-names="popout-button"
|
||||||
@click="$emit('click')"
|
@click="$emit('click')"
|
||||||
|
@ -39,7 +39,7 @@
|
||||||
v-else
|
v-else
|
||||||
variant="clear"
|
variant="clear"
|
||||||
size="large"
|
size="large"
|
||||||
icon="ion-arrow-resize"
|
icon="resize-large"
|
||||||
color-scheme="secondary"
|
color-scheme="secondary"
|
||||||
class-names="popout-button"
|
class-names="popout-button"
|
||||||
@click="$emit('click')"
|
@click="$emit('click')"
|
||||||
|
|
|
@ -21,7 +21,8 @@
|
||||||
/>
|
/>
|
||||||
<div class="filter-actions">
|
<div class="filter-actions">
|
||||||
<woot-button
|
<woot-button
|
||||||
icon="ion-plus"
|
icon="add"
|
||||||
|
icon-size="16"
|
||||||
color-scheme="success"
|
color-scheme="success"
|
||||||
variant="smooth"
|
variant="smooth"
|
||||||
size="small"
|
size="small"
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
v-if="showAssignee && assignee.name"
|
v-if="showAssignee && assignee.name"
|
||||||
class="label assignee-label text-truncate"
|
class="label assignee-label text-truncate"
|
||||||
>
|
>
|
||||||
<i class="ion-person" />
|
<fluent-icon icon="person" size="12" />
|
||||||
{{ assignee.name }}
|
{{ assignee.name }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -32,25 +32,41 @@
|
||||||
{{ currentContact.name }}
|
{{ currentContact.name }}
|
||||||
</h4>
|
</h4>
|
||||||
<p v-if="lastMessageInChat" class="conversation--message">
|
<p v-if="lastMessageInChat" class="conversation--message">
|
||||||
<i v-if="isMessagePrivate" class="ion-locked last-message-icon" />
|
<fluent-icon
|
||||||
<i v-else-if="messageByAgent" class="ion-ios-undo last-message-icon" />
|
v-if="isMessagePrivate"
|
||||||
<i
|
size="16"
|
||||||
|
class="message--attachment-icon last-message-icon"
|
||||||
|
icon="lock-closed"
|
||||||
|
/>
|
||||||
|
<fluent-icon
|
||||||
|
v-else-if="messageByAgent"
|
||||||
|
size="16"
|
||||||
|
class="message--attachment-icon last-message-icon"
|
||||||
|
icon="arrow-reply"
|
||||||
|
/>
|
||||||
|
<fluent-icon
|
||||||
v-else-if="isMessageAnActivity"
|
v-else-if="isMessageAnActivity"
|
||||||
class="ion-information-circled last-message-icon"
|
size="16"
|
||||||
|
class="message--attachment-icon last-message-icon"
|
||||||
|
icon="info"
|
||||||
/>
|
/>
|
||||||
<span v-if="lastMessageInChat.content">
|
<span v-if="lastMessageInChat.content">
|
||||||
{{ parsedLastMessage }}
|
{{ parsedLastMessage }}
|
||||||
</span>
|
</span>
|
||||||
<span v-else-if="lastMessageInChat.attachments">
|
<span v-else-if="lastMessageInChat.attachments">
|
||||||
<i :class="`small-icon ${this.$t(`${attachmentIconKey}.ICON`)}`"></i>
|
<fluent-icon
|
||||||
{{ this.$t(`${attachmentIconKey}.CONTENT`) }}
|
size="16"
|
||||||
|
class="message--attachment-icon"
|
||||||
|
:icon="attachmentIcon"
|
||||||
|
/>
|
||||||
|
{{ this.$t(`${attachmentMessageContent}`) }}
|
||||||
</span>
|
</span>
|
||||||
<span v-else>
|
<span v-else>
|
||||||
{{ $t('CHAT_LIST.NO_CONTENT') }}
|
{{ $t('CHAT_LIST.NO_CONTENT') }}
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
<p v-else class="conversation--message">
|
<p v-else class="conversation--message">
|
||||||
<i class="ion-android-alert"></i>
|
<fluent-icon size="16" class="message--attachment-icon" icon="info" />
|
||||||
<span>
|
<span>
|
||||||
{{ this.$t(`CHAT_LIST.NO_MESSAGES`) }}
|
{{ this.$t(`CHAT_LIST.NO_MESSAGES`) }}
|
||||||
</span>
|
</span>
|
||||||
|
@ -76,6 +92,15 @@ import { frontendURL, conversationUrl } from '../../../helper/URLHelper';
|
||||||
import InboxName from '../InboxName';
|
import InboxName from '../InboxName';
|
||||||
import inboxMixin from 'shared/mixins/inboxMixin';
|
import inboxMixin from 'shared/mixins/inboxMixin';
|
||||||
|
|
||||||
|
const ATTACHMENT_ICONS = {
|
||||||
|
image: 'image',
|
||||||
|
audio: 'headphones-sound-wave',
|
||||||
|
video: 'video',
|
||||||
|
file: 'document',
|
||||||
|
location: 'location',
|
||||||
|
fallback: 'link',
|
||||||
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
InboxName,
|
InboxName,
|
||||||
|
@ -133,10 +158,18 @@ export default {
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
attachmentIconKey() {
|
lastMessageFileType() {
|
||||||
const lastMessage = this.lastMessageInChat;
|
const lastMessage = this.lastMessageInChat;
|
||||||
const [{ file_type: fileType } = {}] = lastMessage.attachments;
|
const [{ file_type: fileType } = {}] = lastMessage.attachments;
|
||||||
return `CHAT_LIST.ATTACHMENTS.${fileType}`;
|
return fileType;
|
||||||
|
},
|
||||||
|
|
||||||
|
attachmentIcon() {
|
||||||
|
return ATTACHMENT_ICONS[this.lastMessageFileType];
|
||||||
|
},
|
||||||
|
|
||||||
|
attachmentMessageContent() {
|
||||||
|
return `CHAT_LIST.ATTACHMENTS.${this.lastMessageFileType}.CONTENT`;
|
||||||
},
|
},
|
||||||
|
|
||||||
isActiveChat() {
|
isActiveChat() {
|
||||||
|
@ -243,14 +276,10 @@ export default {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
width: 60%;
|
width: 60%;
|
||||||
}
|
}
|
||||||
.ion-earth {
|
|
||||||
font-size: var(--font-size-mini);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.last-message-icon {
|
.last-message-icon {
|
||||||
color: var(--s-600);
|
color: var(--s-600);
|
||||||
font-size: var(--font-size-mini);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.conversation--metadata {
|
.conversation--metadata {
|
||||||
|
@ -259,16 +288,22 @@ export default {
|
||||||
padding-right: var(--space-normal);
|
padding-right: var(--space-normal);
|
||||||
|
|
||||||
.label {
|
.label {
|
||||||
padding: var(--space-micro) 0 var(--space-micro) 0;
|
|
||||||
line-height: var(--space-slab);
|
|
||||||
font-weight: var(--font-weight-medium);
|
|
||||||
background: none;
|
background: none;
|
||||||
color: var(--s-500);
|
color: var(--s-500);
|
||||||
font-size: var(--font-size-mini);
|
font-size: var(--font-size-mini);
|
||||||
|
font-weight: var(--font-weight-medium);
|
||||||
|
line-height: var(--space-slab);
|
||||||
|
padding: var(--space-micro) 0 var(--space-micro) 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.assignee-label {
|
.assignee-label {
|
||||||
|
display: inline-flex;
|
||||||
max-width: 50%;
|
max-width: 50%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.message--attachment-icon {
|
||||||
|
margin-top: var(--space-minus-micro);
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -11,10 +11,12 @@
|
||||||
<div class="user--profile__meta">
|
<div class="user--profile__meta">
|
||||||
<h3 class="user--name text-truncate">
|
<h3 class="user--name text-truncate">
|
||||||
<span class="margin-right-smaller">{{ currentContact.name }}</span>
|
<span class="margin-right-smaller">{{ currentContact.name }}</span>
|
||||||
<i
|
<fluent-icon
|
||||||
v-if="!isHMACVerified"
|
v-if="!isHMACVerified"
|
||||||
v-tooltip="$t('CONVERSATION.UNVERIFIED_SESSION')"
|
v-tooltip="$t('CONVERSATION.UNVERIFIED_SESSION')"
|
||||||
class="ion-android-alert text-y-800 fs-default"
|
class="text-y-800"
|
||||||
|
size="14"
|
||||||
|
icon="warning"
|
||||||
/>
|
/>
|
||||||
</h3>
|
</h3>
|
||||||
<div class="conversation--header--actions">
|
<div class="conversation--header--actions">
|
||||||
|
|
|
@ -234,8 +234,8 @@ export default {
|
||||||
return {
|
return {
|
||||||
email: this.contentAttributes.email,
|
email: this.contentAttributes.email,
|
||||||
cc: this.contentAttributes.cc_emails,
|
cc: this.contentAttributes.cc_emails,
|
||||||
bcc: this.contentAttributes.bcc_emails
|
bcc: this.contentAttributes.bcc_emails,
|
||||||
}
|
};
|
||||||
},
|
},
|
||||||
hasAttachments() {
|
hasAttachments() {
|
||||||
return !!(this.data.attachments && this.data.attachments.length > 0);
|
return !!(this.data.attachments && this.data.attachments.length > 0);
|
||||||
|
@ -354,7 +354,7 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
&.is-private .file.message-text__wrap {
|
&.is-private .file.message-text__wrap {
|
||||||
.ion-document-text {
|
.file--icon {
|
||||||
color: var(--w-400);
|
color: var(--w-400);
|
||||||
}
|
}
|
||||||
.text-block-title {
|
.text-block-title {
|
||||||
|
|
|
@ -44,7 +44,11 @@
|
||||||
class="banner-close-button"
|
class="banner-close-button"
|
||||||
@click="removeTweetSelection"
|
@click="removeTweetSelection"
|
||||||
>
|
>
|
||||||
<i v-tooltip="$t('CONVERSATION.REMOVE_SELECTION')" class="ion-close" />
|
<fluent-icon
|
||||||
|
v-tooltip="$t('CONVERSATION.REMOVE_SELECTION')"
|
||||||
|
size="16"
|
||||||
|
icon="dismiss"
|
||||||
|
/>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<ul class="conversation-panel">
|
<ul class="conversation-panel">
|
||||||
|
|
|
@ -4,20 +4,20 @@
|
||||||
v-if="!currentChat.muted"
|
v-if="!currentChat.muted"
|
||||||
v-tooltip="$t('CONTACT_PANEL.MUTE_CONTACT')"
|
v-tooltip="$t('CONTACT_PANEL.MUTE_CONTACT')"
|
||||||
class="hollow secondary actions--button"
|
class="hollow secondary actions--button"
|
||||||
icon="ion-volume-mute"
|
icon="speaker-mute"
|
||||||
@click="mute"
|
@click="mute"
|
||||||
/>
|
/>
|
||||||
<woot-button
|
<woot-button
|
||||||
v-else
|
v-else
|
||||||
v-tooltip.left="$t('CONTACT_PANEL.UNMUTE_CONTACT')"
|
v-tooltip.left="$t('CONTACT_PANEL.UNMUTE_CONTACT')"
|
||||||
class="hollow secondary actions--button"
|
class="hollow secondary actions--button"
|
||||||
icon="ion-volume-medium"
|
icon="speaker-1"
|
||||||
@click="unmute"
|
@click="unmute"
|
||||||
/>
|
/>
|
||||||
<woot-button
|
<woot-button
|
||||||
v-tooltip="$t('CONTACT_PANEL.SEND_TRANSCRIPT')"
|
v-tooltip="$t('CONTACT_PANEL.SEND_TRANSCRIPT')"
|
||||||
class="hollow secondary actions--button"
|
class="hollow secondary actions--button"
|
||||||
icon="ion-share"
|
icon="share"
|
||||||
@click="toggleEmailActionsModal"
|
@click="toggleEmailActionsModal"
|
||||||
/>
|
/>
|
||||||
<resolve-action
|
<resolve-action
|
||||||
|
|
|
@ -2,38 +2,48 @@
|
||||||
<div class="message-text--metadata">
|
<div class="message-text--metadata">
|
||||||
<span class="time">{{ readableTime }}</span>
|
<span class="time">{{ readableTime }}</span>
|
||||||
<span v-if="showSentIndicator" class="time">
|
<span v-if="showSentIndicator" class="time">
|
||||||
<i
|
<fluent-icon
|
||||||
v-tooltip.top-start="$t('CHAT_LIST.SENT')"
|
v-tooltip.top-start="$t('CHAT_LIST.SENT')"
|
||||||
class="icon ion-checkmark"
|
icon="checkmark"
|
||||||
|
size="16"
|
||||||
/>
|
/>
|
||||||
</span>
|
</span>
|
||||||
<i
|
<fluent-icon
|
||||||
v-if="isEmail"
|
v-if="isEmail"
|
||||||
v-tooltip.top-start="$t('CHAT_LIST.RECEIVED_VIA_EMAIL')"
|
v-tooltip.top-start="$t('CHAT_LIST.RECEIVED_VIA_EMAIL')"
|
||||||
class="ion ion-android-mail"
|
icon="mail"
|
||||||
|
class="action--icon"
|
||||||
|
size="16"
|
||||||
/>
|
/>
|
||||||
<i
|
<fluent-icon
|
||||||
v-if="isPrivate"
|
v-if="isPrivate"
|
||||||
v-tooltip.top-start="$t('CONVERSATION.VISIBLE_TO_AGENTS')"
|
v-tooltip.top-start="$t('CONVERSATION.VISIBLE_TO_AGENTS')"
|
||||||
class="icon ion-android-lock"
|
icon="lock-closed"
|
||||||
|
class="action--icon"
|
||||||
|
size="16"
|
||||||
@mouseenter="isHovered = true"
|
@mouseenter="isHovered = true"
|
||||||
@mouseleave="isHovered = false"
|
@mouseleave="isHovered = false"
|
||||||
/>
|
/>
|
||||||
<i
|
<button @click="onTweetReply">
|
||||||
|
<fluent-icon
|
||||||
v-if="isATweet && (isIncoming || isOutgoing) && sourceId"
|
v-if="isATweet && (isIncoming || isOutgoing) && sourceId"
|
||||||
v-tooltip.top-start="$t('CHAT_LIST.REPLY_TO_TWEET')"
|
v-tooltip.top-start="$t('CHAT_LIST.REPLY_TO_TWEET')"
|
||||||
class="icon ion-reply cursor-pointer"
|
icon="arrow-reply"
|
||||||
@click="onTweetReply"
|
class="action--icon cursor-pointer"
|
||||||
|
size="16"
|
||||||
/>
|
/>
|
||||||
|
</button>
|
||||||
<a
|
<a
|
||||||
v-if="isATweet && (isOutgoing || isIncoming) && linkToTweet"
|
v-if="isATweet && (isOutgoing || isIncoming) && linkToTweet"
|
||||||
:href="linkToTweet"
|
:href="linkToTweet"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer nofollow"
|
rel="noopener noreferrer nofollow"
|
||||||
>
|
>
|
||||||
<i
|
<fluent-icon
|
||||||
v-tooltip.top-start="$t('CHAT_LIST.VIEW_TWEET_IN_TWITTER')"
|
v-tooltip.top-start="$t('CHAT_LIST.VIEW_TWEET_IN_TWITTER')"
|
||||||
class="icon ion-android-open cursor-pointer"
|
icon="open"
|
||||||
|
class="action--icon cursor-pointer"
|
||||||
|
size="16"
|
||||||
/>
|
/>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -129,7 +139,7 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon {
|
.action--icon {
|
||||||
color: var(--white);
|
color: var(--white);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -143,7 +153,7 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
.message-text--metadata {
|
.message-text--metadata {
|
||||||
align-items: flex-end;
|
align-items: flex-start;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
||||||
.time {
|
.time {
|
||||||
|
@ -153,10 +163,9 @@ export default {
|
||||||
line-height: 1.8;
|
line-height: 1.8;
|
||||||
}
|
}
|
||||||
|
|
||||||
i {
|
.action--icon {
|
||||||
line-height: 1.4;
|
margin-right: var(--space-small);
|
||||||
padding-right: var(--space-small);
|
margin-left: var(--space-small);
|
||||||
padding-left: var(--space-small);
|
|
||||||
color: var(--s-900);
|
color: var(--s-900);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="file message-text__wrap">
|
<div class="file message-text__wrap">
|
||||||
<div class="icon-wrap">
|
<div class="icon-wrap">
|
||||||
<i class="ion-document-text"></i>
|
<fluent-icon icon="document" class="file--icon" />
|
||||||
</div>
|
</div>
|
||||||
<div class="meta">
|
<div class="meta">
|
||||||
<h5 class="text-block-title">
|
<h5 class="text-block-title">
|
||||||
|
|
|
@ -13,11 +13,11 @@
|
||||||
@click="toggleQuotedContent"
|
@click="toggleQuotedContent"
|
||||||
>
|
>
|
||||||
<span v-if="showQuotedContent">
|
<span v-if="showQuotedContent">
|
||||||
<i class="ion-chevron-up" />
|
<fluent-icon icon="chevron-up" class="fluent-icon" size="16" />
|
||||||
{{ $t('CHAT_LIST.HIDE_QUOTED_TEXT') }}
|
{{ $t('CHAT_LIST.HIDE_QUOTED_TEXT') }}
|
||||||
</span>
|
</span>
|
||||||
<span v-else>
|
<span v-else>
|
||||||
<i class="ion-chevron-down" />
|
<fluent-icon icon="chevron-down" class="fluent-icon" size="16" />
|
||||||
{{ $t('CHAT_LIST.SHOW_QUOTED_TEXT') }}
|
{{ $t('CHAT_LIST.SHOW_QUOTED_TEXT') }}
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
|
@ -104,5 +104,9 @@ export default {
|
||||||
font-size: var(--font-size-mini);
|
font-size: var(--font-size-mini);
|
||||||
padding-bottom: var(--space-small);
|
padding-bottom: var(--space-small);
|
||||||
padding-top: var(--space-small);
|
padding-top: var(--space-small);
|
||||||
|
|
||||||
|
.fluent-icon {
|
||||||
|
margin-bottom: var(--space-minus-smaller);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -72,7 +72,8 @@
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<woot-button
|
<woot-button
|
||||||
icon="ion-close"
|
icon="dismiss"
|
||||||
|
icon-size="16"
|
||||||
variant="clear"
|
variant="clear"
|
||||||
color-scheme="secondary"
|
color-scheme="secondary"
|
||||||
@click="removeFilter"
|
@click="removeFilter"
|
||||||
|
|
|
@ -16,7 +16,9 @@
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<i class="ion-android-close modal--close" @click="$emit('close')"></i>
|
<button class="cursor-pointer" @click="$emit('close')">
|
||||||
|
<fluent-icon icon="dismiss" />
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="shortcut__wrap">
|
<div class="shortcut__wrap">
|
||||||
|
@ -111,14 +113,14 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
.header-wrap {
|
.header-wrap {
|
||||||
|
align-items: flex-start;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
margin-bottom: var(--space-slab);
|
||||||
}
|
}
|
||||||
|
|
||||||
.title-shortcut-key__wrap {
|
.title-shortcut-key__wrap {
|
||||||
display: flex;
|
display: flex;
|
||||||
margin-bottom: var(--space-small);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.page-title {
|
.page-title {
|
||||||
|
|
|
@ -3,32 +3,35 @@ import { INBOX_TYPES } from 'shared/mixins/inboxMixin';
|
||||||
export const getInboxClassByType = (type, phoneNumber) => {
|
export const getInboxClassByType = (type, phoneNumber) => {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case INBOX_TYPES.WEB:
|
case INBOX_TYPES.WEB:
|
||||||
return 'ion-earth';
|
return 'globe-desktop';
|
||||||
|
|
||||||
case INBOX_TYPES.FB:
|
case INBOX_TYPES.FB:
|
||||||
return 'ion-social-facebook';
|
return 'brand-facebook';
|
||||||
|
|
||||||
case INBOX_TYPES.TWITTER:
|
case INBOX_TYPES.TWITTER:
|
||||||
return 'ion-social-twitter';
|
return 'brand-twitter';
|
||||||
|
|
||||||
case INBOX_TYPES.TWILIO:
|
case INBOX_TYPES.TWILIO:
|
||||||
return phoneNumber.startsWith('whatsapp')
|
return phoneNumber.startsWith('whatsapp')
|
||||||
? 'ion-social-whatsapp-outline'
|
? 'brand-whatsapp'
|
||||||
: 'ion-android-textsms';
|
: 'brand-sms';
|
||||||
|
|
||||||
case INBOX_TYPES.WHATSAPP:
|
case INBOX_TYPES.WHATSAPP:
|
||||||
return 'ion-social-whatsapp-outline';
|
return 'brand-whatsapp';
|
||||||
|
|
||||||
case INBOX_TYPES.API:
|
case INBOX_TYPES.API:
|
||||||
return 'ion-cloud';
|
return 'cloud';
|
||||||
|
|
||||||
case INBOX_TYPES.EMAIL:
|
case INBOX_TYPES.EMAIL:
|
||||||
return 'ion-ios-email';
|
return 'mail';
|
||||||
|
|
||||||
case INBOX_TYPES.TELEGRAM:
|
case INBOX_TYPES.TELEGRAM:
|
||||||
return 'ion-ios-navigate';
|
return 'brand-telegram';
|
||||||
|
|
||||||
|
case INBOX_TYPES.LINE:
|
||||||
|
return 'brand-line';
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return 'ion-ios-chatbubble';
|
return 'chat';
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -3,33 +3,35 @@ import { getInboxClassByType } from '../inbox';
|
||||||
describe('#Inbox Helpers', () => {
|
describe('#Inbox Helpers', () => {
|
||||||
describe('getInboxClassByType', () => {
|
describe('getInboxClassByType', () => {
|
||||||
it('should return correct class for web widget', () => {
|
it('should return correct class for web widget', () => {
|
||||||
expect(getInboxClassByType('Channel::WebWidget')).toEqual('ion-earth');
|
expect(getInboxClassByType('Channel::WebWidget')).toEqual(
|
||||||
|
'globe-desktop'
|
||||||
|
);
|
||||||
});
|
});
|
||||||
it('should return correct class for fb page', () => {
|
it('should return correct class for fb page', () => {
|
||||||
expect(getInboxClassByType('Channel::FacebookPage')).toEqual(
|
expect(getInboxClassByType('Channel::FacebookPage')).toEqual(
|
||||||
'ion-social-facebook'
|
'brand-facebook'
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('should return correct class for twitter profile', () => {
|
it('should return correct class for twitter profile', () => {
|
||||||
expect(getInboxClassByType('Channel::TwitterProfile')).toEqual(
|
expect(getInboxClassByType('Channel::TwitterProfile')).toEqual(
|
||||||
'ion-social-twitter'
|
'brand-twitter'
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('should return correct class for twilio sms', () => {
|
it('should return correct class for twilio sms', () => {
|
||||||
expect(getInboxClassByType('Channel::TwilioSms', '')).toEqual(
|
expect(getInboxClassByType('Channel::TwilioSms', '')).toEqual(
|
||||||
'ion-android-textsms'
|
'brand-sms'
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('should return correct class for whatsapp', () => {
|
it('should return correct class for whatsapp', () => {
|
||||||
expect(getInboxClassByType('Channel::TwilioSms', 'whatsapp')).toEqual(
|
expect(getInboxClassByType('Channel::TwilioSms', 'whatsapp')).toEqual(
|
||||||
'ion-social-whatsapp-outline'
|
'brand-whatsapp'
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('should return correct class for Api', () => {
|
it('should return correct class for Api', () => {
|
||||||
expect(getInboxClassByType('Channel::Api')).toEqual('ion-cloud');
|
expect(getInboxClassByType('Channel::Api')).toEqual('cloud');
|
||||||
});
|
});
|
||||||
it('should return correct class for Email', () => {
|
it('should return correct class for Email', () => {
|
||||||
expect(getInboxClassByType('Channel::Email')).toEqual('ion-ios-email');
|
expect(getInboxClassByType('Channel::Email')).toEqual('mail');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "رسالة صورة"
|
"CONTENT": "رسالة صورة"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "رسالة صوتية"
|
"CONTENT": "رسالة صوتية"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "رسالة فيديو"
|
"CONTENT": "رسالة فيديو"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "مرفقات"
|
"CONTENT": "مرفقات"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "الموقع الجغرافي"
|
"CONTENT": "الموقع الجغرافي"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "قام بمشاركة رابط"
|
"CONTENT": "قام بمشاركة رابط"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "Missatge d'imatge"
|
"CONTENT": "Missatge d'imatge"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "Missatge d'àudio"
|
"CONTENT": "Missatge d'àudio"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "Missatge de vídeo"
|
"CONTENT": "Missatge de vídeo"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "Fitxer adjunt"
|
"CONTENT": "Fitxer adjunt"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "Ubicació"
|
"CONTENT": "Ubicació"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "ha compartit una URL"
|
"CONTENT": "ha compartit una URL"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "Zpráva obrázku"
|
"CONTENT": "Zpráva obrázku"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "Zvuková zpráva"
|
"CONTENT": "Zvuková zpráva"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "Video zpráva"
|
"CONTENT": "Video zpráva"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "Přílohu souboru"
|
"CONTENT": "Přílohu souboru"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "Poloha"
|
"CONTENT": "Poloha"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "sdílel URL"
|
"CONTENT": "sdílel URL"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "Billedbesked"
|
"CONTENT": "Billedbesked"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "Lydbesked"
|
"CONTENT": "Lydbesked"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "Video besked"
|
"CONTENT": "Video besked"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "Fil Vedhæftning"
|
"CONTENT": "Fil Vedhæftning"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "Lokation"
|
"CONTENT": "Lokation"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "har delt en URL"
|
"CONTENT": "har delt en URL"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "Bildnachricht"
|
"CONTENT": "Bildnachricht"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "Audio-Nachricht"
|
"CONTENT": "Audio-Nachricht"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "Videonachricht"
|
"CONTENT": "Videonachricht"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "Dateianhang"
|
"CONTENT": "Dateianhang"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "Ort"
|
"CONTENT": "Ort"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "hat eine URL geteilt"
|
"CONTENT": "hat eine URL geteilt"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "Μήνυμα εικόνας"
|
"CONTENT": "Μήνυμα εικόνας"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "Μήνυμα ήχου"
|
"CONTENT": "Μήνυμα ήχου"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "Μήνυμα βίντεο"
|
"CONTENT": "Μήνυμα βίντεο"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "Επισυναπτόμενο αρχείο"
|
"CONTENT": "Επισυναπτόμενο αρχείο"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "Θέση"
|
"CONTENT": "Θέση"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "έχει μοιράσει ένα σύνδεσμο"
|
"CONTENT": "έχει μοιράσει ένα σύνδεσμο"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "Picture message"
|
"CONTENT": "Picture message"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "Audio message"
|
"CONTENT": "Audio message"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "Video message"
|
"CONTENT": "Video message"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "File Attachment"
|
"CONTENT": "File Attachment"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "Location"
|
"CONTENT": "Location"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "has shared a url"
|
"CONTENT": "has shared a url"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "Mensaje de imagen"
|
"CONTENT": "Mensaje de imagen"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "Mensaje de audio"
|
"CONTENT": "Mensaje de audio"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "Mensaje de vídeo"
|
"CONTENT": "Mensaje de vídeo"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "Archivo adjunto"
|
"CONTENT": "Archivo adjunto"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "Ubicación"
|
"CONTENT": "Ubicación"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "ha compartido una url"
|
"CONTENT": "ha compartido una url"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "پیام تصویری"
|
"CONTENT": "پیام تصویری"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "پیام صوتی"
|
"CONTENT": "پیام صوتی"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "پیام ویدیویی"
|
"CONTENT": "پیام ویدیویی"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "فایل الصاقی"
|
"CONTENT": "فایل الصاقی"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "مکان"
|
"CONTENT": "مکان"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "یک آدرس URL به اشتراک گذاشته شده"
|
"CONTENT": "یک آدرس URL به اشتراک گذاشته شده"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "Kuvaviesti"
|
"CONTENT": "Kuvaviesti"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "Ääniviesti"
|
"CONTENT": "Ääniviesti"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "Videoviesti"
|
"CONTENT": "Videoviesti"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "Liite"
|
"CONTENT": "Liite"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "Sijainti"
|
"CONTENT": "Sijainti"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "on jakanut URL-osoitteen"
|
"CONTENT": "on jakanut URL-osoitteen"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "Message image"
|
"CONTENT": "Message image"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "Message audio"
|
"CONTENT": "Message audio"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "Message vidéo"
|
"CONTENT": "Message vidéo"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "Pièce jointe"
|
"CONTENT": "Pièce jointe"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "Localisation"
|
"CONTENT": "Localisation"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "a partagé une URL"
|
"CONTENT": "a partagé une URL"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "הודעת תמונה"
|
"CONTENT": "הודעת תמונה"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "הודעות קוליות"
|
"CONTENT": "הודעות קוליות"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "הודעות וידאו"
|
"CONTENT": "הודעות וידאו"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "קובץ מצורף"
|
"CONTENT": "קובץ מצורף"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "מיקום"
|
"CONTENT": "מיקום"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "שיתף קישור"
|
"CONTENT": "שיתף קישור"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "Picture message"
|
"CONTENT": "Picture message"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "Audio message"
|
"CONTENT": "Audio message"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "Video message"
|
"CONTENT": "Video message"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "File Attachment"
|
"CONTENT": "File Attachment"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "Location"
|
"CONTENT": "Location"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "has shared a url"
|
"CONTENT": "has shared a url"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "Képüzenet"
|
"CONTENT": "Képüzenet"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "Hangüzenet"
|
"CONTENT": "Hangüzenet"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "Videoüzenet"
|
"CONTENT": "Videoüzenet"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "Csatolt file"
|
"CONTENT": "Csatolt file"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "Hely"
|
"CONTENT": "Hely"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "megosztott URL-t tartalmaz"
|
"CONTENT": "megosztott URL-t tartalmaz"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "Pesan gambar"
|
"CONTENT": "Pesan gambar"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "Pesan audio"
|
"CONTENT": "Pesan audio"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "Pesan video"
|
"CONTENT": "Pesan video"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "Lampiran File"
|
"CONTENT": "Lampiran File"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "Lokasi"
|
"CONTENT": "Lokasi"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "telah membagikan url"
|
"CONTENT": "telah membagikan url"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "Messaggio immagine"
|
"CONTENT": "Messaggio immagine"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "-quantità-alto",
|
|
||||||
"CONTENT": "Messaggio audio"
|
"CONTENT": "Messaggio audio"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "videocam",
|
|
||||||
"CONTENT": "Messaggio video"
|
"CONTENT": "Messaggio video"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "e-documento",
|
|
||||||
"CONTENT": "File Allegato"
|
"CONTENT": "File Allegato"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "Posizione-ios",
|
|
||||||
"CONTENT": "Localizzazione"
|
"CONTENT": "Localizzazione"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "e-link",
|
|
||||||
"CONTENT": "ha condiviso un url"
|
"CONTENT": "ha condiviso un url"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "画像メッセージ"
|
"CONTENT": "画像メッセージ"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "音声メッセージ"
|
"CONTENT": "音声メッセージ"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "ビデオ メッセージ"
|
"CONTENT": "ビデオ メッセージ"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "添付ファイル"
|
"CONTENT": "添付ファイル"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "場所"
|
"CONTENT": "場所"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "URLを共有しています"
|
"CONTENT": "URLを共有しています"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "사진 메시지"
|
"CONTENT": "사진 메시지"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "음성 메시지"
|
"CONTENT": "음성 메시지"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "영상 메시지"
|
"CONTENT": "영상 메시지"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "파일 첨부"
|
"CONTENT": "파일 첨부"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "장소"
|
"CONTENT": "장소"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "URL을 공유함"
|
"CONTENT": "URL을 공유함"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "ചിത്ര സന്ദേശം"
|
"CONTENT": "ചിത്ര സന്ദേശം"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "ഓഡിയോ സന്ദേശം"
|
"CONTENT": "ഓഡിയോ സന്ദേശം"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "വീഡിയോ സന്ദേശം"
|
"CONTENT": "വീഡിയോ സന്ദേശം"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "ഫയൽ അറ്റാച്ചുമെന്റ്"
|
"CONTENT": "ഫയൽ അറ്റാച്ചുമെന്റ്"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "സ്ഥാനം"
|
"CONTENT": "സ്ഥാനം"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "ഒരു യു. ആർ. എൽ പങ്കിട്ടു"
|
"CONTENT": "ഒരു യു. ആർ. എൽ പങ്കിട്ടു"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "Picture message"
|
"CONTENT": "Picture message"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "Audio message"
|
"CONTENT": "Audio message"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "Video message"
|
"CONTENT": "Video message"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "File Attachment"
|
"CONTENT": "File Attachment"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "Location"
|
"CONTENT": "Location"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "has shared a url"
|
"CONTENT": "has shared a url"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "Bericht met foto"
|
"CONTENT": "Bericht met foto"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "Audiobericht"
|
"CONTENT": "Audiobericht"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "Videobericht"
|
"CONTENT": "Videobericht"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "Bestandsbijlage"
|
"CONTENT": "Bestandsbijlage"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "Locatie"
|
"CONTENT": "Locatie"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "heeft een url gedeeld"
|
"CONTENT": "heeft een url gedeeld"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "Bildemelding"
|
"CONTENT": "Bildemelding"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "Lydmelding"
|
"CONTENT": "Lydmelding"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "Video beskjed"
|
"CONTENT": "Video beskjed"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "Vedlegg"
|
"CONTENT": "Vedlegg"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "Plassering"
|
"CONTENT": "Plassering"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "har delt en URL"
|
"CONTENT": "har delt en URL"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "Wiadomość obrazkowa"
|
"CONTENT": "Wiadomość obrazkowa"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "Wiadomość audio"
|
"CONTENT": "Wiadomość audio"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "Wiadomość wideo"
|
"CONTENT": "Wiadomość wideo"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "Załącznik pliku"
|
"CONTENT": "Załącznik pliku"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "Lokalizacja"
|
"CONTENT": "Lokalizacja"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "udostępnił adres url"
|
"CONTENT": "udostępnił adres url"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "Mensagem de imagem"
|
"CONTENT": "Mensagem de imagem"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "Mensagem de áudio"
|
"CONTENT": "Mensagem de áudio"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "Mensagem de vídeo"
|
"CONTENT": "Mensagem de vídeo"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "Arquivo anexo"
|
"CONTENT": "Arquivo anexo"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "Local:"
|
"CONTENT": "Local:"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "compartilhou uma url"
|
"CONTENT": "compartilhou uma url"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "Mensagem de imagem"
|
"CONTENT": "Mensagem de imagem"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "Mensagem de áudio"
|
"CONTENT": "Mensagem de áudio"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "Mensagem de vídeo"
|
"CONTENT": "Mensagem de vídeo"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "Arquivo anexo"
|
"CONTENT": "Arquivo anexo"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "Localização"
|
"CONTENT": "Localização"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "compartilhou uma URL"
|
"CONTENT": "compartilhou uma URL"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "Изображение"
|
"CONTENT": "Изображение"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "Аудиосообщение"
|
"CONTENT": "Аудиосообщение"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "Видео"
|
"CONTENT": "Видео"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "Прикрепленный файл"
|
"CONTENT": "Прикрепленный файл"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "Местоположение"
|
"CONTENT": "Местоположение"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "поделился ссылкой"
|
"CONTENT": "поделился ссылкой"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "Picture message"
|
"CONTENT": "Picture message"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "Audio message"
|
"CONTENT": "Audio message"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "Video message"
|
"CONTENT": "Video message"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "File Attachment"
|
"CONTENT": "File Attachment"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "Location"
|
"CONTENT": "Location"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "has shared a url"
|
"CONTENT": "has shared a url"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "Bildmeddelande"
|
"CONTENT": "Bildmeddelande"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "Ljudmeddelande"
|
"CONTENT": "Ljudmeddelande"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "Videomeddelande"
|
"CONTENT": "Videomeddelande"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "Bifogad fil"
|
"CONTENT": "Bifogad fil"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "Plats"
|
"CONTENT": "Plats"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "har delat en webbadress"
|
"CONTENT": "har delat en webbadress"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "பட செய்தி"
|
"CONTENT": "பட செய்தி"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "ஆடியோ செய்தி"
|
"CONTENT": "ஆடியோ செய்தி"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "வீடியோ செய்தி"
|
"CONTENT": "வீடியோ செய்தி"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "பைல் இணைப்புகள்"
|
"CONTENT": "பைல் இணைப்புகள்"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "இருப்பிடம்"
|
"CONTENT": "இருப்பிடம்"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "ஒரு URL ஐப் பகிர்ந்துள்ளார்"
|
"CONTENT": "ஒரு URL ஐப் பகிர்ந்துள்ளார்"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "ข้อความภาพ"
|
"CONTENT": "ข้อความภาพ"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "ข้อความเสียง"
|
"CONTENT": "ข้อความเสียง"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "ข้อความวิดิโอ"
|
"CONTENT": "ข้อความวิดิโอ"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "เเนบไฟล์"
|
"CONTENT": "เเนบไฟล์"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "สถานที่"
|
"CONTENT": "สถานที่"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "ได้เเชร์ลิ้ง"
|
"CONTENT": "ได้เเชร์ลิ้ง"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "Görsel mesaj"
|
"CONTENT": "Görsel mesaj"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "Sesli mesaj"
|
"CONTENT": "Sesli mesaj"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "Video mesajı"
|
"CONTENT": "Video mesajı"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "Dosya eklentisi"
|
"CONTENT": "Dosya eklentisi"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "Yer"
|
"CONTENT": "Yer"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "bir url paylaştı"
|
"CONTENT": "bir url paylaştı"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "Повідомлення з картинкою"
|
"CONTENT": "Повідомлення з картинкою"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "Аудіо-повідомлення"
|
"CONTENT": "Аудіо-повідомлення"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "Відеоповідомлення"
|
"CONTENT": "Відеоповідомлення"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "Повідомлення з файлом"
|
"CONTENT": "Повідомлення з файлом"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "Місцезнаходження"
|
"CONTENT": "Місцезнаходження"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "поділився посиланням"
|
"CONTENT": "поділився посиланням"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "Tin nhắn hình ảnh"
|
"CONTENT": "Tin nhắn hình ảnh"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "Tin nhắn thoại"
|
"CONTENT": "Tin nhắn thoại"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "Tin nhắn video"
|
"CONTENT": "Tin nhắn video"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "Tập tin đính kèm"
|
"CONTENT": "Tập tin đính kèm"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "Địa điểm"
|
"CONTENT": "Địa điểm"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "có một đường dẫn chia sẻ"
|
"CONTENT": "có một đường dẫn chia sẻ"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -53,27 +53,21 @@
|
||||||
],
|
],
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "图片消息"
|
"CONTENT": "图片消息"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "音频消息"
|
"CONTENT": "音频消息"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "视频消息"
|
"CONTENT": "视频消息"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "附件"
|
"CONTENT": "附件"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "位置"
|
"CONTENT": "位置"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "分享了一个网址"
|
"CONTENT": "分享了一个网址"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "图片消息"
|
"CONTENT": "图片消息"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "音频消息"
|
"CONTENT": "音频消息"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "视频消息"
|
"CONTENT": "视频消息"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "附件"
|
"CONTENT": "附件"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "位置"
|
"CONTENT": "位置"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "分享了一个网址"
|
"CONTENT": "分享了一个网址"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -54,27 +54,21 @@
|
||||||
},
|
},
|
||||||
"ATTACHMENTS": {
|
"ATTACHMENTS": {
|
||||||
"image": {
|
"image": {
|
||||||
"ICON": "ion-image",
|
|
||||||
"CONTENT": "圖片訊息"
|
"CONTENT": "圖片訊息"
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"ICON": "ion-volume-high",
|
|
||||||
"CONTENT": "聲音訊息"
|
"CONTENT": "聲音訊息"
|
||||||
},
|
},
|
||||||
"video": {
|
"video": {
|
||||||
"ICON": "ion-ios-videocam",
|
|
||||||
"CONTENT": "影片訊息"
|
"CONTENT": "影片訊息"
|
||||||
},
|
},
|
||||||
"file": {
|
"file": {
|
||||||
"ICON": "ion-document",
|
|
||||||
"CONTENT": "附件"
|
"CONTENT": "附件"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"ICON": "ion-ios-location",
|
|
||||||
"CONTENT": "位置"
|
"CONTENT": "位置"
|
||||||
},
|
},
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"ICON": "ion-link",
|
|
||||||
"CONTENT": "分享了一個網址"
|
"CONTENT": "分享了一個網址"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -4,21 +4,21 @@ const campaigns = accountId => ({
|
||||||
routes: ['settings_account_campaigns', 'one_off'],
|
routes: ['settings_account_campaigns', 'one_off'],
|
||||||
menuItems: {
|
menuItems: {
|
||||||
back: {
|
back: {
|
||||||
icon: 'ion-ios-arrow-back',
|
icon: 'chevron-left',
|
||||||
label: 'HOME',
|
label: 'HOME',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toStateName: 'home',
|
toStateName: 'home',
|
||||||
toState: frontendURL(`accounts/${accountId}/dashboard`),
|
toState: frontendURL(`accounts/${accountId}/dashboard`),
|
||||||
},
|
},
|
||||||
ongoingCampaigns: {
|
ongoingCampaigns: {
|
||||||
icon: 'ion-arrow-swap',
|
icon: 'arrow-swap',
|
||||||
label: 'ONGOING',
|
label: 'ONGOING',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toState: frontendURL(`accounts/${accountId}/campaigns/ongoing`),
|
toState: frontendURL(`accounts/${accountId}/campaigns/ongoing`),
|
||||||
toStateName: 'settings_account_campaigns',
|
toStateName: 'settings_account_campaigns',
|
||||||
},
|
},
|
||||||
onOffCampaigns: {
|
onOffCampaigns: {
|
||||||
icon: 'ion-radio-waves',
|
icon: 'sound-source',
|
||||||
label: 'ONE_OFF',
|
label: 'ONE_OFF',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toState: frontendURL(`accounts/${accountId}/campaigns/one_off`),
|
toState: frontendURL(`accounts/${accountId}/campaigns/one_off`),
|
||||||
|
|
|
@ -17,7 +17,7 @@ const common = accountId => ({
|
||||||
],
|
],
|
||||||
menuItems: {
|
menuItems: {
|
||||||
assignedToMe: {
|
assignedToMe: {
|
||||||
icon: 'ion-chatbox-working',
|
icon: 'chat',
|
||||||
label: 'CONVERSATIONS',
|
label: 'CONVERSATIONS',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
key: '',
|
key: '',
|
||||||
|
@ -26,35 +26,35 @@ const common = accountId => ({
|
||||||
toStateName: 'home',
|
toStateName: 'home',
|
||||||
},
|
},
|
||||||
contacts: {
|
contacts: {
|
||||||
icon: 'ion-person',
|
icon: 'book-contacts',
|
||||||
label: 'CONTACTS',
|
label: 'CONTACTS',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toState: frontendURL(`accounts/${accountId}/contacts`),
|
toState: frontendURL(`accounts/${accountId}/contacts`),
|
||||||
toStateName: 'contacts_dashboard',
|
toStateName: 'contacts_dashboard',
|
||||||
},
|
},
|
||||||
notifications: {
|
notifications: {
|
||||||
icon: 'ion-ios-bell',
|
icon: 'alert',
|
||||||
label: 'NOTIFICATIONS',
|
label: 'NOTIFICATIONS',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toState: frontendURL(`accounts/${accountId}/notifications`),
|
toState: frontendURL(`accounts/${accountId}/notifications`),
|
||||||
toStateName: 'notifications_dashboard',
|
toStateName: 'notifications_dashboard',
|
||||||
},
|
},
|
||||||
report: {
|
report: {
|
||||||
icon: 'ion-arrow-graph-up-right',
|
icon: 'arrow-trending-lines',
|
||||||
label: 'REPORTS',
|
label: 'REPORTS',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toState: frontendURL(`accounts/${accountId}/reports`),
|
toState: frontendURL(`accounts/${accountId}/reports`),
|
||||||
toStateName: 'settings_account_reports',
|
toStateName: 'settings_account_reports',
|
||||||
},
|
},
|
||||||
campaigns: {
|
campaigns: {
|
||||||
icon: 'ion-speakerphone',
|
icon: 'megaphone',
|
||||||
label: 'CAMPAIGNS',
|
label: 'CAMPAIGNS',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toState: frontendURL(`accounts/${accountId}/campaigns`),
|
toState: frontendURL(`accounts/${accountId}/campaigns`),
|
||||||
toStateName: 'settings_account_campaigns',
|
toStateName: 'settings_account_campaigns',
|
||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
icon: 'ion-settings',
|
icon: 'settings',
|
||||||
label: 'SETTINGS',
|
label: 'SETTINGS',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toState: frontendURL(`accounts/${accountId}/settings`),
|
toState: frontendURL(`accounts/${accountId}/settings`),
|
||||||
|
|
|
@ -8,14 +8,14 @@ const contacts = accountId => ({
|
||||||
],
|
],
|
||||||
menuItems: {
|
menuItems: {
|
||||||
back: {
|
back: {
|
||||||
icon: 'ion-ios-arrow-back',
|
icon: 'chevron-left',
|
||||||
label: 'HOME',
|
label: 'HOME',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toStateName: 'home',
|
toStateName: 'home',
|
||||||
toState: frontendURL(`accounts/${accountId}/dashboard`),
|
toState: frontendURL(`accounts/${accountId}/dashboard`),
|
||||||
},
|
},
|
||||||
contacts: {
|
contacts: {
|
||||||
icon: 'ion-person',
|
icon: 'contact-card-group',
|
||||||
label: 'ALL_CONTACTS',
|
label: 'ALL_CONTACTS',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toState: frontendURL(`accounts/${accountId}/contacts`),
|
toState: frontendURL(`accounts/${accountId}/contacts`),
|
||||||
|
|
|
@ -11,49 +11,49 @@ const reports = accountId => ({
|
||||||
],
|
],
|
||||||
menuItems: {
|
menuItems: {
|
||||||
back: {
|
back: {
|
||||||
icon: 'ion-ios-arrow-back',
|
icon: 'chevron-left',
|
||||||
label: 'HOME',
|
label: 'HOME',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toStateName: 'home',
|
toStateName: 'home',
|
||||||
toState: frontendURL(`accounts/${accountId}/dashboard`),
|
toState: frontendURL(`accounts/${accountId}/dashboard`),
|
||||||
},
|
},
|
||||||
reportOverview: {
|
reportOverview: {
|
||||||
icon: 'ion-arrow-graph-up-right',
|
icon: 'arrow-trending-lines',
|
||||||
label: 'REPORTS_OVERVIEW',
|
label: 'REPORTS_OVERVIEW',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toState: frontendURL(`accounts/${accountId}/reports/overview`),
|
toState: frontendURL(`accounts/${accountId}/reports/overview`),
|
||||||
toStateName: 'settings_account_reports',
|
toStateName: 'settings_account_reports',
|
||||||
},
|
},
|
||||||
csatReports: {
|
csatReports: {
|
||||||
icon: 'ion-happy',
|
icon: 'emoji',
|
||||||
label: 'CSAT',
|
label: 'CSAT',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toState: frontendURL(`accounts/${accountId}/reports/csat`),
|
toState: frontendURL(`accounts/${accountId}/reports/csat`),
|
||||||
toStateName: 'csat_reports',
|
toStateName: 'csat_reports',
|
||||||
},
|
},
|
||||||
agentReports: {
|
agentReports: {
|
||||||
icon: 'ion-person-stalker',
|
icon: 'people',
|
||||||
label: 'REPORTS_AGENT',
|
label: 'REPORTS_AGENT',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toState: frontendURL(`accounts/${accountId}/reports/agent`),
|
toState: frontendURL(`accounts/${accountId}/reports/agent`),
|
||||||
toStateName: 'agent_reports',
|
toStateName: 'agent_reports',
|
||||||
},
|
},
|
||||||
labelReports: {
|
labelReports: {
|
||||||
icon: 'ion-pricetags',
|
icon: 'tag',
|
||||||
label: 'REPORTS_LABEL',
|
label: 'REPORTS_LABEL',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toState: frontendURL(`accounts/${accountId}/reports/label`),
|
toState: frontendURL(`accounts/${accountId}/reports/label`),
|
||||||
toStateName: 'label_reports',
|
toStateName: 'label_reports',
|
||||||
},
|
},
|
||||||
inboxReports: {
|
inboxReports: {
|
||||||
icon: 'ion-archive',
|
icon: 'mail-inbox-all',
|
||||||
label: 'REPORTS_INBOX',
|
label: 'REPORTS_INBOX',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toState: frontendURL(`accounts/${accountId}/reports/inboxes`),
|
toState: frontendURL(`accounts/${accountId}/reports/inboxes`),
|
||||||
toStateName: 'inbox_reports',
|
toStateName: 'inbox_reports',
|
||||||
},
|
},
|
||||||
teamReports: {
|
teamReports: {
|
||||||
icon: 'ion-ios-people',
|
icon: 'people-team',
|
||||||
label: 'REPORTS_TEAM',
|
label: 'REPORTS_TEAM',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toState: frontendURL(`accounts/${accountId}/reports/teams`),
|
toState: frontendURL(`accounts/${accountId}/reports/teams`),
|
||||||
|
|
|
@ -32,42 +32,42 @@ const settings = accountId => ({
|
||||||
],
|
],
|
||||||
menuItems: {
|
menuItems: {
|
||||||
back: {
|
back: {
|
||||||
icon: 'ion-ios-arrow-back',
|
icon: 'chevron-left',
|
||||||
label: 'HOME',
|
label: 'HOME',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toStateName: 'home',
|
toStateName: 'home',
|
||||||
toState: frontendURL(`accounts/${accountId}/dashboard`),
|
toState: frontendURL(`accounts/${accountId}/dashboard`),
|
||||||
},
|
},
|
||||||
agents: {
|
agents: {
|
||||||
icon: 'ion-person-stalker',
|
icon: 'people',
|
||||||
label: 'AGENTS',
|
label: 'AGENTS',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toState: frontendURL(`accounts/${accountId}/settings/agents/list`),
|
toState: frontendURL(`accounts/${accountId}/settings/agents/list`),
|
||||||
toStateName: 'agent_list',
|
toStateName: 'agent_list',
|
||||||
},
|
},
|
||||||
teams: {
|
teams: {
|
||||||
icon: 'ion-ios-people',
|
icon: 'people-team',
|
||||||
label: 'TEAMS',
|
label: 'TEAMS',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toState: frontendURL(`accounts/${accountId}/settings/teams/list`),
|
toState: frontendURL(`accounts/${accountId}/settings/teams/list`),
|
||||||
toStateName: 'settings_teams_list',
|
toStateName: 'settings_teams_list',
|
||||||
},
|
},
|
||||||
inboxes: {
|
inboxes: {
|
||||||
icon: 'ion-archive',
|
icon: 'mail-inbox-all',
|
||||||
label: 'INBOXES',
|
label: 'INBOXES',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toState: frontendURL(`accounts/${accountId}/settings/inboxes/list`),
|
toState: frontendURL(`accounts/${accountId}/settings/inboxes/list`),
|
||||||
toStateName: 'settings_inbox_list',
|
toStateName: 'settings_inbox_list',
|
||||||
},
|
},
|
||||||
labels: {
|
labels: {
|
||||||
icon: 'ion-pricetags',
|
icon: 'tag',
|
||||||
label: 'LABELS',
|
label: 'LABELS',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toState: frontendURL(`accounts/${accountId}/settings/labels/list`),
|
toState: frontendURL(`accounts/${accountId}/settings/labels/list`),
|
||||||
toStateName: 'labels_list',
|
toStateName: 'labels_list',
|
||||||
},
|
},
|
||||||
attributes: {
|
attributes: {
|
||||||
icon: 'ion-code',
|
icon: 'code',
|
||||||
label: 'CUSTOM_ATTRIBUTES',
|
label: 'CUSTOM_ATTRIBUTES',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toState: frontendURL(
|
toState: frontendURL(
|
||||||
|
@ -76,14 +76,14 @@ const settings = accountId => ({
|
||||||
toStateName: 'attributes_list',
|
toStateName: 'attributes_list',
|
||||||
},
|
},
|
||||||
automation: {
|
automation: {
|
||||||
icon: 'ion-wrench',
|
icon: 'autocorrect',
|
||||||
label: 'AUTOMATION',
|
label: 'AUTOMATION',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toState: frontendURL(`accounts/${accountId}/settings/automation/list`),
|
toState: frontendURL(`accounts/${accountId}/settings/automation/list`),
|
||||||
toStateName: 'automation_list',
|
toStateName: 'automation_list',
|
||||||
},
|
},
|
||||||
cannedResponses: {
|
cannedResponses: {
|
||||||
icon: 'ion-chatbox-working',
|
icon: 'chat-multiple',
|
||||||
label: 'CANNED_RESPONSES',
|
label: 'CANNED_RESPONSES',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toState: frontendURL(
|
toState: frontendURL(
|
||||||
|
@ -92,21 +92,21 @@ const settings = accountId => ({
|
||||||
toStateName: 'canned_list',
|
toStateName: 'canned_list',
|
||||||
},
|
},
|
||||||
settings_integrations: {
|
settings_integrations: {
|
||||||
icon: 'ion-flash',
|
icon: 'flash-on',
|
||||||
label: 'INTEGRATIONS',
|
label: 'INTEGRATIONS',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toState: frontendURL(`accounts/${accountId}/settings/integrations`),
|
toState: frontendURL(`accounts/${accountId}/settings/integrations`),
|
||||||
toStateName: 'settings_integrations',
|
toStateName: 'settings_integrations',
|
||||||
},
|
},
|
||||||
settings_applications: {
|
settings_applications: {
|
||||||
icon: 'ion-asterisk',
|
icon: 'star-emphasis',
|
||||||
label: 'APPLICATIONS',
|
label: 'APPLICATIONS',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toState: frontendURL(`accounts/${accountId}/settings/applications`),
|
toState: frontendURL(`accounts/${accountId}/settings/applications`),
|
||||||
toStateName: 'settings_applications',
|
toStateName: 'settings_applications',
|
||||||
},
|
},
|
||||||
general_settings_index: {
|
general_settings_index: {
|
||||||
icon: 'ion-gear-a',
|
icon: 'settings',
|
||||||
label: 'ACCOUNT_SETTINGS',
|
label: 'ACCOUNT_SETTINGS',
|
||||||
hasSubMenu: false,
|
hasSubMenu: false,
|
||||||
toState: frontendURL(`accounts/${accountId}/settings/general`),
|
toState: frontendURL(`accounts/${accountId}/settings/general`),
|
||||||
|
|
|
@ -18,7 +18,7 @@ export default [
|
||||||
attribute_model: 'conversation_attribute',
|
attribute_model: 'conversation_attribute',
|
||||||
created_at: '2021-09-16T13:06:47.329Z',
|
created_at: '2021-09-16T13:06:47.329Z',
|
||||||
default_value: null,
|
default_value: null,
|
||||||
icon: 'ion-calculator',
|
icon: 'fluent-calculator',
|
||||||
id: 10,
|
id: 10,
|
||||||
updated_at: '2021-09-22T10:42:25.873Z',
|
updated_at: '2021-09-22T10:42:25.873Z',
|
||||||
value: 2021,
|
value: 2021,
|
||||||
|
|
|
@ -70,7 +70,7 @@ describe('attributeMixin', () => {
|
||||||
attribute_model: 'conversation_attribute',
|
attribute_model: 'conversation_attribute',
|
||||||
created_at: '2021-09-16T13:06:47.329Z',
|
created_at: '2021-09-16T13:06:47.329Z',
|
||||||
default_value: null,
|
default_value: null,
|
||||||
icon: 'ion-calculator',
|
icon: 'fluent-calculator',
|
||||||
id: 10,
|
id: 10,
|
||||||
updated_at: '2021-09-22T10:42:25.873Z',
|
updated_at: '2021-09-22T10:42:25.873Z',
|
||||||
value: 2021,
|
value: 2021,
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
variant="clear link"
|
variant="clear link"
|
||||||
size="small"
|
size="small"
|
||||||
color-scheme="secondary"
|
color-scheme="secondary"
|
||||||
icon="ion-compose"
|
icon="edit"
|
||||||
class-names="edit-button"
|
class-names="edit-button"
|
||||||
@click="onEdit"
|
@click="onEdit"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -10,10 +10,11 @@
|
||||||
</h5>
|
</h5>
|
||||||
<p class="option__body">
|
<p class="option__body">
|
||||||
<span v-if="email" class="email-icon-wrap">
|
<span v-if="email" class="email-icon-wrap">
|
||||||
<i class="icon ion-email" />{{ email }}
|
<fluent-icon class="merge-contact--icon" icon="mail" size="12" />
|
||||||
|
{{ email }}
|
||||||
</span>
|
</span>
|
||||||
<span v-if="phoneNumber" class="phone-icon-wrap">
|
<span v-if="phoneNumber" class="phone-icon-wrap">
|
||||||
<i class="icon ion-ios-telephone" />
|
<fluent-icon class="merge-contact--icon" icon="call" size="12" />
|
||||||
{{ phoneNumber }}
|
{{ phoneNumber }}
|
||||||
</span>
|
</span>
|
||||||
<span v-if="!phoneNumber && !email">{{ '---' }}</span>
|
<span v-if="!phoneNumber && !email">{{ '---' }}</span>
|
||||||
|
@ -102,4 +103,9 @@ export default {
|
||||||
width: auto;
|
width: auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.merge-contact--icon {
|
||||||
|
margin-bottom: var(--space-minus-micro);
|
||||||
|
margin-right: var(--space-micro);
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="contact-fields">
|
<div class="contact-fields">
|
||||||
<h3 class="block-title title">{{ $t('CONTACTS_PAGE.FIELDS') }}</h3>
|
<h3 class="block-title title">
|
||||||
|
{{ $t('CONTACTS_PAGE.FIELDS') }}
|
||||||
|
</h3>
|
||||||
<attribute
|
<attribute
|
||||||
:label="$t('CONTACT_PANEL.EMAIL_ADDRESS')"
|
:label="$t('CONTACT_PANEL.EMAIL_ADDRESS')"
|
||||||
icon="ion-email"
|
icon="mail"
|
||||||
emoji=""
|
emoji=""
|
||||||
:value="contact.email"
|
:value="contact.email"
|
||||||
:show-edit="true"
|
:show-edit="true"
|
||||||
|
@ -11,7 +13,7 @@
|
||||||
/>
|
/>
|
||||||
<attribute
|
<attribute
|
||||||
:label="$t('CONTACT_PANEL.PHONE_NUMBER')"
|
:label="$t('CONTACT_PANEL.PHONE_NUMBER')"
|
||||||
icon="ion-ios-telephone"
|
icon="call"
|
||||||
emoji=""
|
emoji=""
|
||||||
:value="contact.phone_number"
|
:value="contact.phone_number"
|
||||||
:show-edit="true"
|
:show-edit="true"
|
||||||
|
@ -20,7 +22,7 @@
|
||||||
<attribute
|
<attribute
|
||||||
v-if="additionalAttributes.location"
|
v-if="additionalAttributes.location"
|
||||||
:label="$t('CONTACT_PANEL.LOCATION')"
|
:label="$t('CONTACT_PANEL.LOCATION')"
|
||||||
icon="ion-map"
|
icon="map"
|
||||||
emoji="🌍"
|
emoji="🌍"
|
||||||
:value="additionalAttributes.location"
|
:value="additionalAttributes.location"
|
||||||
:show-edit="true"
|
:show-edit="true"
|
||||||
|
@ -33,7 +35,7 @@
|
||||||
>
|
>
|
||||||
<attribute
|
<attribute
|
||||||
:label="attribute"
|
:label="attribute"
|
||||||
icon="ion-arrow-right-c"
|
icon="chevron-right"
|
||||||
:value="customAttributes[attribute]"
|
:value="customAttributes[attribute]"
|
||||||
:show-edit="true"
|
:show-edit="true"
|
||||||
@update="value => onCustomAttributeUpdate(attribute, value)"
|
@update="value => onCustomAttributeUpdate(attribute, value)"
|
||||||
|
@ -42,7 +44,7 @@
|
||||||
<woot-button
|
<woot-button
|
||||||
size="small"
|
size="small"
|
||||||
variant="link"
|
variant="link"
|
||||||
icon="ion-plus"
|
icon="add"
|
||||||
@click="handleCustomCreate"
|
@click="handleCustomCreate"
|
||||||
>
|
>
|
||||||
{{ $t('CUSTOM_ATTRIBUTES.ADD.TITLE') }}
|
{{ $t('CUSTOM_ATTRIBUTES.ADD.TITLE') }}
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
<woot-button
|
<woot-button
|
||||||
variant="hollow"
|
variant="hollow"
|
||||||
size="small expanded"
|
size="small expanded"
|
||||||
icon="ion-compose"
|
icon="edit"
|
||||||
@click="onEditClick"
|
@click="onEditClick"
|
||||||
>
|
>
|
||||||
{{ $t('EDIT_CONTACT.BUTTON_LABEL') }}
|
{{ $t('EDIT_CONTACT.BUTTON_LABEL') }}
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
|
|
||||||
<div class="child-contact-wrap">
|
<div class="child-contact-wrap">
|
||||||
<div class="child-arrow">
|
<div class="child-arrow">
|
||||||
<i class="ion-ios-arrow-up up" />
|
<fluent-icon icon="arrow-up" class="up" size="17" />
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="child-contact multiselect-wrap--medium"
|
class="child-contact multiselect-wrap--medium"
|
||||||
|
@ -213,8 +213,8 @@ export default {
|
||||||
|
|
||||||
.up {
|
.up {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: -11px;
|
top: var(--space-minus-smaller);
|
||||||
left: var(--space-normal);
|
left: var(--space-slab);
|
||||||
}
|
}
|
||||||
|
|
||||||
.footer {
|
.footer {
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="context-menu">
|
<div class="context-menu">
|
||||||
<woot-button
|
<woot-button
|
||||||
icon="ion-more"
|
icon="more-vertical"
|
||||||
size="large"
|
|
||||||
class="button--delete-message"
|
class="button--delete-message"
|
||||||
color-scheme="secondary"
|
color-scheme="secondary"
|
||||||
variant="link"
|
variant="link"
|
||||||
|
@ -19,7 +18,8 @@
|
||||||
<woot-button
|
<woot-button
|
||||||
variant="clear"
|
variant="clear"
|
||||||
size="small"
|
size="small"
|
||||||
icon="ion-ios-copy-outline"
|
icon="clipboard"
|
||||||
|
icon-size="16"
|
||||||
@click="handleCopy"
|
@click="handleCopy"
|
||||||
>
|
>
|
||||||
{{ $t('CONVERSATION.CONTEXT_MENU.COPY') }}
|
{{ $t('CONVERSATION.CONTEXT_MENU.COPY') }}
|
||||||
|
@ -30,7 +30,8 @@
|
||||||
variant="clear"
|
variant="clear"
|
||||||
color-scheme="alert"
|
color-scheme="alert"
|
||||||
size="small"
|
size="small"
|
||||||
icon="ion-trash-a"
|
icon="delete"
|
||||||
|
icon-size="16"
|
||||||
@click="handleDelete"
|
@click="handleDelete"
|
||||||
>
|
>
|
||||||
{{ $t('CONVERSATION.CONTEXT_MENU.DELETE') }}
|
{{ $t('CONVERSATION.CONTEXT_MENU.DELETE') }}
|
||||||
|
|
|
@ -19,7 +19,8 @@
|
||||||
v-tooltip="$t('NOTES.CONTENT_HEADER.DELETE')"
|
v-tooltip="$t('NOTES.CONTENT_HEADER.DELETE')"
|
||||||
variant="smooth"
|
variant="smooth"
|
||||||
size="tiny"
|
size="tiny"
|
||||||
icon="ion-trash-b"
|
icon="delete"
|
||||||
|
icon-size="16"
|
||||||
color-scheme="secondary"
|
color-scheme="secondary"
|
||||||
@click="onDelete"
|
@click="onDelete"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
:class="{ 'border-left': showAvatar }"
|
:class="{ 'border-left': showAvatar }"
|
||||||
>
|
>
|
||||||
<span v-if="showAvatar" class="close-button" @click="onClose">
|
<span v-if="showAvatar" class="close-button" @click="onClose">
|
||||||
<i class="ion-android-close close-icon" />
|
<fluent-icon icon="dismiss" class="close-icon" />
|
||||||
</span>
|
</span>
|
||||||
<contact-info
|
<contact-info
|
||||||
:show-avatar="showAvatar"
|
:show-avatar="showAvatar"
|
||||||
|
|
|
@ -34,6 +34,7 @@ import Spinner from 'shared/components/Spinner.vue';
|
||||||
import Thumbnail from 'dashboard/components/widgets/Thumbnail.vue';
|
import Thumbnail from 'dashboard/components/widgets/Thumbnail.vue';
|
||||||
import EmptyState from 'dashboard/components/widgets/EmptyState.vue';
|
import EmptyState from 'dashboard/components/widgets/EmptyState.vue';
|
||||||
import timeMixin from 'dashboard/mixins/time';
|
import timeMixin from 'dashboard/mixins/time';
|
||||||
|
import FluentIcon from 'shared/components/FluentIcon/DashboardIcon';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
@ -228,7 +229,7 @@ export default {
|
||||||
rel="noopener noreferrer nofollow"
|
rel="noopener noreferrer nofollow"
|
||||||
href={`https://${profile}.com/${profiles[profile]}`}
|
href={`https://${profile}.com/${profiles[profile]}`}
|
||||||
>
|
>
|
||||||
<i class={`ion-social-${profile}`} />
|
<FluentIcon icon={`brand-${profile}`} />
|
||||||
</a>
|
</a>
|
||||||
)
|
)
|
||||||
)}
|
)}
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="right-aligned-wrap">
|
<div class="right-aligned-wrap">
|
||||||
<div class="search-wrap">
|
<div class="search-wrap">
|
||||||
<i class="ion-ios-search-strong search-icon" />
|
<fluent-icon icon="search" class="search-icon" />
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
:placeholder="$t('CONTACTS_PAGE.SEARCH_INPUT_PLACEHOLDER')"
|
:placeholder="$t('CONTACTS_PAGE.SEARCH_INPUT_PLACEHOLDER')"
|
||||||
|
@ -28,7 +28,7 @@
|
||||||
|
|
||||||
<woot-button
|
<woot-button
|
||||||
color-scheme="success"
|
color-scheme="success"
|
||||||
icon="ion-android-add-circle"
|
icon="add-circle"
|
||||||
class="margin-right-small"
|
class="margin-right-small"
|
||||||
data-testid="create-new-contact"
|
data-testid="create-new-contact"
|
||||||
@click="onToggleCreate"
|
@click="onToggleCreate"
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
|
|
||||||
<woot-button
|
<woot-button
|
||||||
color-scheme="info"
|
color-scheme="info"
|
||||||
icon="ion-android-upload"
|
icon="cloud-backup"
|
||||||
@click="onToggleImport"
|
@click="onToggleImport"
|
||||||
>
|
>
|
||||||
{{ $t('IMPORT_CONTACTS.BUTTON_LABEL') }}
|
{{ $t('IMPORT_CONTACTS.BUTTON_LABEL') }}
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
<woot-button
|
<woot-button
|
||||||
variant="smooth"
|
variant="smooth"
|
||||||
size="small"
|
size="small"
|
||||||
icon="ion-compose"
|
icon="edit"
|
||||||
color-scheme="secondary"
|
color-scheme="secondary"
|
||||||
class="action-button"
|
class="action-button"
|
||||||
@click="onEdit"
|
@click="onEdit"
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="medium-3 bg-white contact--panel">
|
<div class="medium-3 bg-white contact--panel">
|
||||||
<span class="close-button" @click="onPanelToggle">
|
<woot-button
|
||||||
<i class="ion-chevron-right" />
|
icon="chevron-right"
|
||||||
</span>
|
class="close-button clear secondary"
|
||||||
|
@click="onPanelToggle"
|
||||||
|
/>
|
||||||
<contact-info :contact="contact" :channel-type="channelType" />
|
<contact-info :contact="contact" :channel-type="channelType" />
|
||||||
<draggable
|
<draggable
|
||||||
:list="conversationSidebarItems"
|
:list="conversationSidebarItems"
|
||||||
|
@ -254,7 +256,7 @@ export default {
|
||||||
.close-button {
|
.close-button {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: $space-two;
|
right: $space-two;
|
||||||
top: $space-slab + $space-two;
|
top: $space-slab;
|
||||||
font-size: $font-size-default;
|
font-size: $font-size-default;
|
||||||
color: $color-heading;
|
color: $color-heading;
|
||||||
z-index: 9989;
|
z-index: 9989;
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue