Compare commits
11 commits
Author | SHA1 | Date | |
---|---|---|---|
|
98c289dc3e | ||
|
3e91765472 | ||
|
1bf23055df | ||
|
2af337be10 | ||
|
dbb6c0a074 | ||
|
8c88344170 | ||
|
6a78254701 | ||
|
26ada8b342 | ||
|
3c6bd2c8fd | ||
|
2c2c47d7fd | ||
|
34f7405689 |
75 changed files with 361 additions and 293 deletions
|
@ -59,12 +59,8 @@
|
||||||
|
|
||||||
.hamburger--menu {
|
.hamburger--menu {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
display: none;
|
|
||||||
margin-right: $space-normal;
|
|
||||||
|
|
||||||
@media screen and (max-width: 1200px) {
|
|
||||||
display: block;
|
display: block;
|
||||||
}
|
margin-right: $space-normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
.header--icon {
|
.header--icon {
|
||||||
|
|
|
@ -1,7 +1,12 @@
|
||||||
<template>
|
<template>
|
||||||
<button @click="onMenuItemClick">
|
<woot-button
|
||||||
<fluent-icon class="hamburger--menu" icon="list" />
|
size="small"
|
||||||
</button>
|
variant="clear"
|
||||||
|
color-scheme="secondary"
|
||||||
|
icon="list"
|
||||||
|
class="toggle-sidebar"
|
||||||
|
@click="onMenuItemClick"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
@ -16,13 +21,8 @@ export default {
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.hamburger--menu {
|
.toggle-sidebar {
|
||||||
cursor: pointer;
|
margin-right: var(--space-small);
|
||||||
display: none;
|
margin-left: var(--space-minus-small);
|
||||||
margin-right: var(--space-normal);
|
|
||||||
|
|
||||||
@media screen and (max-width: 1200px) {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -261,14 +261,7 @@ export default {
|
||||||
width: 20rem;
|
width: 20rem;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
overflow-y: hidden;
|
overflow-y: hidden;
|
||||||
|
|
||||||
@include breakpoint(xlarge down) {
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
@include breakpoint(xlarge up) {
|
|
||||||
position: unset;
|
position: unset;
|
||||||
}
|
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
overflow-y: hidden;
|
overflow-y: hidden;
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
exports[`SidemenuIcon matches snapshot 1`] = `
|
exports[`SidemenuIcon matches snapshot 1`] = `
|
||||||
<button>
|
<woot-button
|
||||||
<fluent-icon
|
class="toggle-sidebar"
|
||||||
class="hamburger--menu"
|
color-scheme="secondary"
|
||||||
icon="list"
|
icon="list"
|
||||||
|
size="small"
|
||||||
|
variant="clear"
|
||||||
/>
|
/>
|
||||||
</button>
|
|
||||||
`;
|
`;
|
||||||
|
|
|
@ -10,11 +10,11 @@ import 'videojs-record/dist/css/videojs.record.css';
|
||||||
|
|
||||||
import videojs from 'video.js';
|
import videojs from 'video.js';
|
||||||
|
|
||||||
import inboxMixin from '../../../../shared/mixins/inboxMixin';
|
|
||||||
import alertMixin from '../../../../shared/mixins/alertMixin';
|
import alertMixin from '../../../../shared/mixins/alertMixin';
|
||||||
|
|
||||||
import Recorder from 'opus-recorder';
|
import Recorder from 'opus-recorder';
|
||||||
import encoderWorker from 'opus-recorder/dist/encoderWorker.min';
|
import encoderWorker from 'opus-recorder/dist/encoderWorker.min';
|
||||||
|
import waveWorker from 'opus-recorder/dist/waveWorker.min';
|
||||||
|
|
||||||
import WaveSurfer from 'wavesurfer.js';
|
import WaveSurfer from 'wavesurfer.js';
|
||||||
import MicrophonePlugin from 'wavesurfer.js/dist/plugin/wavesurfer.microphone.js';
|
import MicrophonePlugin from 'wavesurfer.js/dist/plugin/wavesurfer.microphone.js';
|
||||||
|
@ -29,14 +29,19 @@ WaveSurfer.microphone = MicrophonePlugin;
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'WootAudioRecorder',
|
name: 'WootAudioRecorder',
|
||||||
mixins: [inboxMixin, alertMixin],
|
mixins: [alertMixin],
|
||||||
|
props: {
|
||||||
|
audioRecordFormat: {
|
||||||
|
type: String,
|
||||||
|
default: AUDIO_FORMATS.WEBM,
|
||||||
|
},
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
player: false,
|
player: false,
|
||||||
recordingDateStarted: new Date(0),
|
recordingDateStarted: new Date(0),
|
||||||
initialTimeDuration: '00:00',
|
initialTimeDuration: '00:00',
|
||||||
recorderOptions: {
|
recorderOptions: {
|
||||||
debug: true,
|
|
||||||
controls: true,
|
controls: true,
|
||||||
bigPlayButton: false,
|
bigPlayButton: false,
|
||||||
fluid: false,
|
fluid: false,
|
||||||
|
@ -71,6 +76,9 @@ export default {
|
||||||
record: {
|
record: {
|
||||||
audio: true,
|
audio: true,
|
||||||
video: false,
|
video: false,
|
||||||
|
maxLength: 900,
|
||||||
|
timeSlice: 1000,
|
||||||
|
maxFileSize: 15 * 1024 * 1024,
|
||||||
...(this.audioRecordFormat === AUDIO_FORMATS.WEBM && {
|
...(this.audioRecordFormat === AUDIO_FORMATS.WEBM && {
|
||||||
monitorGain: 0,
|
monitorGain: 0,
|
||||||
recordingGain: 1,
|
recordingGain: 1,
|
||||||
|
@ -80,11 +88,10 @@ export default {
|
||||||
streamPages: true,
|
streamPages: true,
|
||||||
maxFramesPerPage: 1,
|
maxFramesPerPage: 1,
|
||||||
encoderFrameSize: 1,
|
encoderFrameSize: 1,
|
||||||
encoderPath: 'opus-recorder/dist/waveWorker.min.js',
|
encoderPath: waveWorker,
|
||||||
}),
|
}),
|
||||||
...(this.audioRecordFormat === AUDIO_FORMATS.OGG && {
|
...(this.audioRecordFormat === AUDIO_FORMATS.OGG && {
|
||||||
displayMilliseconds: false,
|
displayMilliseconds: false,
|
||||||
maxLength: 300,
|
|
||||||
audioEngine: 'opus-recorder',
|
audioEngine: 'opus-recorder',
|
||||||
audioWorkerURL: encoderWorker,
|
audioWorkerURL: encoderWorker,
|
||||||
audioChannels: 1,
|
audioChannels: 1,
|
||||||
|
@ -100,12 +107,6 @@ export default {
|
||||||
isRecording() {
|
isRecording() {
|
||||||
return this.player && this.player.record().isRecording();
|
return this.player && this.player.record().isRecording();
|
||||||
},
|
},
|
||||||
audioRecordFormat() {
|
|
||||||
if (this.isAWebWidgetInbox) {
|
|
||||||
return AUDIO_FORMATS.WEBM;
|
|
||||||
}
|
|
||||||
return AUDIO_FORMATS.OGG;
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
window.Recorder = Recorder;
|
window.Recorder = Recorder;
|
||||||
|
|
|
@ -21,7 +21,11 @@
|
||||||
/>
|
/>
|
||||||
</h3>
|
</h3>
|
||||||
<div class="conversation--header--actions">
|
<div class="conversation--header--actions">
|
||||||
<inbox-name :inbox="inbox" class="margin-right-small" />
|
<inbox-name
|
||||||
|
v-if="hasMultipleInboxes"
|
||||||
|
:inbox="inbox"
|
||||||
|
class="margin-right-small"
|
||||||
|
/>
|
||||||
<span
|
<span
|
||||||
v-if="isSnoozed"
|
v-if="isSnoozed"
|
||||||
class="snoozed--display-text margin-right-small"
|
class="snoozed--display-text margin-right-small"
|
||||||
|
@ -145,6 +149,9 @@ export default {
|
||||||
const { inbox_id: inboxId } = this.chat;
|
const { inbox_id: inboxId } = this.chat;
|
||||||
return this.$store.getters['inboxes/getInbox'](inboxId);
|
return this.$store.getters['inboxes/getInbox'](inboxId);
|
||||||
},
|
},
|
||||||
|
hasMultipleInboxes() {
|
||||||
|
return this.$store.getters['inboxes/getInboxes'].length > 1;
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
v-if="data.content"
|
v-if="data.content"
|
||||||
:message="message"
|
:message="message"
|
||||||
:is-email="isEmailContentType"
|
:is-email="isEmailContentType"
|
||||||
:readable-time="readableTime"
|
|
||||||
:display-quoted-button="displayQuotedButton"
|
:display-quoted-button="displayQuotedButton"
|
||||||
/>
|
/>
|
||||||
<span
|
<span
|
||||||
|
@ -29,7 +28,6 @@
|
||||||
<bubble-image
|
<bubble-image
|
||||||
v-if="attachment.file_type === 'image' && !hasImageError"
|
v-if="attachment.file_type === 'image' && !hasImageError"
|
||||||
:url="attachment.data_url"
|
:url="attachment.data_url"
|
||||||
:readable-time="readableTime"
|
|
||||||
@error="onImageLoadError"
|
@error="onImageLoadError"
|
||||||
/>
|
/>
|
||||||
<audio v-else-if="attachment.file_type === 'audio'" controls>
|
<audio v-else-if="attachment.file_type === 'audio'" controls>
|
||||||
|
@ -38,7 +36,6 @@
|
||||||
<bubble-video
|
<bubble-video
|
||||||
v-else-if="attachment.file_type === 'video'"
|
v-else-if="attachment.file_type === 'video'"
|
||||||
:url="attachment.data_url"
|
:url="attachment.data_url"
|
||||||
:readable-time="readableTime"
|
|
||||||
/>
|
/>
|
||||||
<bubble-location
|
<bubble-location
|
||||||
v-else-if="attachment.file_type === 'location'"
|
v-else-if="attachment.file_type === 'location'"
|
||||||
|
@ -46,11 +43,7 @@
|
||||||
:longitude="attachment.coordinates_long"
|
:longitude="attachment.coordinates_long"
|
||||||
:name="attachment.fallback_title"
|
:name="attachment.fallback_title"
|
||||||
/>
|
/>
|
||||||
<bubble-file
|
<bubble-file v-else :url="attachment.data_url" />
|
||||||
v-else
|
|
||||||
:url="attachment.data_url"
|
|
||||||
:readable-time="readableTime"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<bubble-actions
|
<bubble-actions
|
||||||
|
@ -65,10 +58,9 @@
|
||||||
:is-private="data.private"
|
:is-private="data.private"
|
||||||
:message-type="data.message_type"
|
:message-type="data.message_type"
|
||||||
:message-status="status"
|
:message-status="status"
|
||||||
:readable-time="readableTime"
|
|
||||||
:source-id="data.source_id"
|
:source-id="data.source_id"
|
||||||
:inbox-id="data.inbox_id"
|
:inbox-id="data.inbox_id"
|
||||||
:message-read="showReadTicks"
|
:created-at="createdAt"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<spinner v-if="isPending" size="tiny" />
|
<spinner v-if="isPending" size="tiny" />
|
||||||
|
@ -119,8 +111,6 @@
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import messageFormatterMixin from 'shared/mixins/messageFormatterMixin';
|
import messageFormatterMixin from 'shared/mixins/messageFormatterMixin';
|
||||||
import timeMixin from '../../../mixins/time';
|
|
||||||
|
|
||||||
import BubbleMailHead from './bubble/MailHead';
|
import BubbleMailHead from './bubble/MailHead';
|
||||||
import BubbleText from './bubble/Text';
|
import BubbleText from './bubble/Text';
|
||||||
import BubbleImage from './bubble/Image';
|
import BubbleImage from './bubble/Image';
|
||||||
|
@ -149,7 +139,7 @@ export default {
|
||||||
ContextMenu,
|
ContextMenu,
|
||||||
Spinner,
|
Spinner,
|
||||||
},
|
},
|
||||||
mixins: [alertMixin, timeMixin, messageFormatterMixin, contentTypeMixin],
|
mixins: [alertMixin, messageFormatterMixin, contentTypeMixin],
|
||||||
props: {
|
props: {
|
||||||
data: {
|
data: {
|
||||||
type: Object,
|
type: Object,
|
||||||
|
@ -167,10 +157,6 @@ export default {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
hasUserReadMessage: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false,
|
|
||||||
},
|
|
||||||
isWebWidgetInbox: {
|
isWebWidgetInbox: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false,
|
default: false,
|
||||||
|
@ -273,11 +259,8 @@ export default {
|
||||||
'has-tweet-menu': this.isATweet,
|
'has-tweet-menu': this.isATweet,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
readableTime() {
|
createdAt() {
|
||||||
return this.messageStamp(
|
return this.contentAttributes.external_created_at || this.data.created_at;
|
||||||
this.contentAttributes.external_created_at || this.data.created_at,
|
|
||||||
'LLL d, h:mm a'
|
|
||||||
);
|
|
||||||
},
|
},
|
||||||
isBubble() {
|
isBubble() {
|
||||||
return [0, 1, 3].includes(this.data.message_type);
|
return [0, 1, 3].includes(this.data.message_type);
|
||||||
|
@ -288,14 +271,6 @@ export default {
|
||||||
isOutgoing() {
|
isOutgoing() {
|
||||||
return this.data.message_type === MESSAGE_TYPE.OUTGOING;
|
return this.data.message_type === MESSAGE_TYPE.OUTGOING;
|
||||||
},
|
},
|
||||||
showReadTicks() {
|
|
||||||
return (
|
|
||||||
(this.isOutgoing || this.isTemplate) &&
|
|
||||||
this.hasUserReadMessage &&
|
|
||||||
this.isWebWidgetInbox &&
|
|
||||||
!this.data.private
|
|
||||||
);
|
|
||||||
},
|
|
||||||
isTemplate() {
|
isTemplate() {
|
||||||
return this.data.message_type === MESSAGE_TYPE.TEMPLATE;
|
return this.data.message_type === MESSAGE_TYPE.TEMPLATE;
|
||||||
},
|
},
|
||||||
|
|
|
@ -40,9 +40,6 @@
|
||||||
:is-a-tweet="isATweet"
|
:is-a-tweet="isATweet"
|
||||||
:is-a-whatsapp-channel="isAWhatsAppChannel"
|
:is-a-whatsapp-channel="isAWhatsAppChannel"
|
||||||
:has-instagram-story="hasInstagramStory"
|
:has-instagram-story="hasInstagramStory"
|
||||||
:has-user-read-message="
|
|
||||||
hasUserReadMessage(message.created_at, getLastSeenAt)
|
|
||||||
"
|
|
||||||
:is-web-widget-inbox="isAWebWidgetInbox"
|
:is-web-widget-inbox="isAWebWidgetInbox"
|
||||||
/>
|
/>
|
||||||
<li v-show="unreadMessageCount != 0" class="unread--toast">
|
<li v-show="unreadMessageCount != 0" class="unread--toast">
|
||||||
|
@ -63,9 +60,6 @@
|
||||||
:is-a-tweet="isATweet"
|
:is-a-tweet="isATweet"
|
||||||
:is-a-whatsapp-channel="isAWhatsAppChannel"
|
:is-a-whatsapp-channel="isAWhatsAppChannel"
|
||||||
:has-instagram-story="hasInstagramStory"
|
:has-instagram-story="hasInstagramStory"
|
||||||
:has-user-read-message="
|
|
||||||
hasUserReadMessage(message.created_at, getLastSeenAt)
|
|
||||||
"
|
|
||||||
:is-web-widget-inbox="isAWebWidgetInbox"
|
:is-web-widget-inbox="isAWebWidgetInbox"
|
||||||
/>
|
/>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
<woot-audio-recorder
|
<woot-audio-recorder
|
||||||
v-if="showAudioRecorderEditor"
|
v-if="showAudioRecorderEditor"
|
||||||
ref="audioRecorderInput"
|
ref="audioRecorderInput"
|
||||||
|
:audio-record-format="audioRecordFormat"
|
||||||
@state-recorder-progress-changed="onStateProgressRecorderChanged"
|
@state-recorder-progress-changed="onStateProgressRecorderChanged"
|
||||||
@state-recorder-changed="onStateRecorderChanged"
|
@state-recorder-changed="onStateRecorderChanged"
|
||||||
@finish-record="onFinishRecorder"
|
@finish-record="onFinishRecorder"
|
||||||
|
@ -147,6 +148,7 @@ import { checkFileSizeLimit } from 'shared/helpers/FileHelper';
|
||||||
import {
|
import {
|
||||||
MAXIMUM_FILE_UPLOAD_SIZE,
|
MAXIMUM_FILE_UPLOAD_SIZE,
|
||||||
MAXIMUM_FILE_UPLOAD_SIZE_TWILIO_SMS_CHANNEL,
|
MAXIMUM_FILE_UPLOAD_SIZE_TWILIO_SMS_CHANNEL,
|
||||||
|
AUDIO_FORMATS,
|
||||||
} from 'shared/constants/messages';
|
} from 'shared/constants/messages';
|
||||||
import { BUS_EVENTS } from 'shared/constants/busEvents';
|
import { BUS_EVENTS } from 'shared/constants/busEvents';
|
||||||
|
|
||||||
|
@ -462,6 +464,12 @@ export default {
|
||||||
editorStateId() {
|
editorStateId() {
|
||||||
return `draft-${this.conversationIdByRoute}-${this.replyType}`;
|
return `draft-${this.conversationIdByRoute}-${this.replyType}`;
|
||||||
},
|
},
|
||||||
|
audioRecordFormat() {
|
||||||
|
if (this.isAWebWidgetInbox) {
|
||||||
|
return AUDIO_FORMATS.WEBM;
|
||||||
|
}
|
||||||
|
return AUDIO_FORMATS.OGG;
|
||||||
|
},
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
currentChat(conversation) {
|
currentChat(conversation) {
|
||||||
|
|
|
@ -1,8 +1,14 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="message-text--metadata">
|
<div class="message-text--metadata">
|
||||||
<span class="time" :class="{ delivered: messageRead }">{{
|
<span
|
||||||
readableTime
|
class="time"
|
||||||
}}</span>
|
:class="{
|
||||||
|
'has-status-icon':
|
||||||
|
showSentIndicator || showDeliveredIndicator || showReadIndicator,
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
{{ readableTime }}
|
||||||
|
</span>
|
||||||
<span v-if="showReadIndicator" class="read-indicator-wrap">
|
<span v-if="showReadIndicator" class="read-indicator-wrap">
|
||||||
<fluent-icon
|
<fluent-icon
|
||||||
v-tooltip.top-start="$t('CHAT_LIST.MESSAGE_READ')"
|
v-tooltip.top-start="$t('CHAT_LIST.MESSAGE_READ')"
|
||||||
|
@ -11,7 +17,7 @@
|
||||||
size="14"
|
size="14"
|
||||||
/>
|
/>
|
||||||
</span>
|
</span>
|
||||||
<span v-if="showDeliveredIndicator" class="read-indicator-wrap">
|
<span v-else-if="showDeliveredIndicator" class="read-indicator-wrap">
|
||||||
<fluent-icon
|
<fluent-icon
|
||||||
v-tooltip.top-start="$t('CHAT_LIST.DELIVERED')"
|
v-tooltip.top-start="$t('CHAT_LIST.DELIVERED')"
|
||||||
icon="checkmark-double"
|
icon="checkmark-double"
|
||||||
|
@ -19,7 +25,7 @@
|
||||||
size="14"
|
size="14"
|
||||||
/>
|
/>
|
||||||
</span>
|
</span>
|
||||||
<span v-if="showSentIndicator" class="read-indicator-wrap">
|
<span v-else-if="showSentIndicator" class="read-indicator-wrap">
|
||||||
<fluent-icon
|
<fluent-icon
|
||||||
v-tooltip.top-start="$t('CHAT_LIST.SENT')"
|
v-tooltip.top-start="$t('CHAT_LIST.SENT')"
|
||||||
icon="checkmark"
|
icon="checkmark"
|
||||||
|
@ -74,17 +80,19 @@
|
||||||
import { MESSAGE_TYPE, MESSAGE_STATUS } from 'shared/constants/messages';
|
import { MESSAGE_TYPE, MESSAGE_STATUS } from 'shared/constants/messages';
|
||||||
import { BUS_EVENTS } from 'shared/constants/busEvents';
|
import { BUS_EVENTS } from 'shared/constants/busEvents';
|
||||||
import inboxMixin from 'shared/mixins/inboxMixin';
|
import inboxMixin from 'shared/mixins/inboxMixin';
|
||||||
|
import { mapGetters } from 'vuex';
|
||||||
|
import timeMixin from '../../../../mixins/time';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
mixins: [inboxMixin],
|
mixins: [inboxMixin, timeMixin],
|
||||||
props: {
|
props: {
|
||||||
sender: {
|
sender: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: () => ({}),
|
default: () => ({}),
|
||||||
},
|
},
|
||||||
readableTime: {
|
createdAt: {
|
||||||
type: String,
|
type: Number,
|
||||||
default: '',
|
default: 0,
|
||||||
},
|
},
|
||||||
storySender: {
|
storySender: {
|
||||||
type: String,
|
type: String,
|
||||||
|
@ -130,12 +138,9 @@ export default {
|
||||||
type: [String, Number],
|
type: [String, Number],
|
||||||
default: 0,
|
default: 0,
|
||||||
},
|
},
|
||||||
messageRead: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
...mapGetters({ currentChat: 'getSelectedChat' }),
|
||||||
inbox() {
|
inbox() {
|
||||||
return this.$store.getters['inboxes/getInbox'](this.inboxId);
|
return this.$store.getters['inboxes/getInbox'](this.inboxId);
|
||||||
},
|
},
|
||||||
|
@ -145,6 +150,9 @@ export default {
|
||||||
isOutgoing() {
|
isOutgoing() {
|
||||||
return MESSAGE_TYPE.OUTGOING === this.messageType;
|
return MESSAGE_TYPE.OUTGOING === this.messageType;
|
||||||
},
|
},
|
||||||
|
isTemplate() {
|
||||||
|
return MESSAGE_TYPE.TEMPLATE === this.messageType;
|
||||||
|
},
|
||||||
isDelivered() {
|
isDelivered() {
|
||||||
return MESSAGE_STATUS.DELIVERED === this.messageStatus;
|
return MESSAGE_STATUS.DELIVERED === this.messageStatus;
|
||||||
},
|
},
|
||||||
|
@ -154,6 +162,9 @@ export default {
|
||||||
isSent() {
|
isSent() {
|
||||||
return MESSAGE_STATUS.SENT === this.messageStatus;
|
return MESSAGE_STATUS.SENT === this.messageStatus;
|
||||||
},
|
},
|
||||||
|
readableTime() {
|
||||||
|
return this.messageStamp(this.createdAt, 'LLL d, h:mm a');
|
||||||
|
},
|
||||||
screenName() {
|
screenName() {
|
||||||
const { additional_attributes: additionalAttributes = {} } =
|
const { additional_attributes: additionalAttributes = {} } =
|
||||||
this.sender || {};
|
this.sender || {};
|
||||||
|
@ -174,28 +185,52 @@ export default {
|
||||||
const { storySender, storyId } = this;
|
const { storySender, storyId } = this;
|
||||||
return `https://www.instagram.com/stories/${storySender}/${storyId}`;
|
return `https://www.instagram.com/stories/${storySender}/${storyId}`;
|
||||||
},
|
},
|
||||||
|
showStatusIndicators() {
|
||||||
|
if ((this.isOutgoing || this.isTemplate) && !this.private) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
showSentIndicator() {
|
showSentIndicator() {
|
||||||
return (
|
if (!this.showStatusIndicators) {
|
||||||
this.isOutgoing &&
|
return false;
|
||||||
this.sourceId &&
|
}
|
||||||
(this.isAnEmailChannel || (this.isAWhatsAppChannel && this.isSent))
|
|
||||||
);
|
if (this.isAnEmailChannel) {
|
||||||
|
return !!this.sourceId;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.isAWhatsAppChannel) {
|
||||||
|
return this.sourceId && this.isSent;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
},
|
},
|
||||||
showDeliveredIndicator() {
|
showDeliveredIndicator() {
|
||||||
return (
|
if (!this.showStatusIndicators) {
|
||||||
this.isOutgoing &&
|
return false;
|
||||||
this.sourceId &&
|
}
|
||||||
this.isAWhatsAppChannel &&
|
|
||||||
this.isDelivered
|
if (this.isAWhatsAppChannel) {
|
||||||
);
|
return this.sourceId && this.isDelivered;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
},
|
},
|
||||||
showReadIndicator() {
|
showReadIndicator() {
|
||||||
return (
|
if (!this.showStatusIndicators) {
|
||||||
this.isOutgoing &&
|
return false;
|
||||||
this.sourceId &&
|
}
|
||||||
this.isAWhatsAppChannel &&
|
|
||||||
this.isRead
|
if (this.isAWebWidgetInbox) {
|
||||||
);
|
const { contact_last_seen_at: contactLastSeenAt } = this.currentChat;
|
||||||
|
return contactLastSeenAt >= this.createdAt;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.isAWhatsAppChannel) {
|
||||||
|
return this.sourceId && this.isRead;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -218,12 +253,13 @@ export default {
|
||||||
|
|
||||||
.action--icon {
|
.action--icon {
|
||||||
color: var(--white);
|
color: var(--white);
|
||||||
|
|
||||||
&.read-tick {
|
&.read-tick {
|
||||||
color: var(--v-100);
|
color: var(--v-100);
|
||||||
}
|
}
|
||||||
|
|
||||||
&.read-indicator {
|
&.read-indicator {
|
||||||
color: var(--g-300);
|
color: var(--g-200);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -288,8 +324,9 @@ export default {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: var(--space-small);
|
right: var(--space-small);
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
&.delivered {
|
|
||||||
right: var(--space-medium);
|
&.has-status-icon {
|
||||||
|
right: var(--space-large);
|
||||||
line-height: 2;
|
line-height: 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,10 +35,6 @@ export default {
|
||||||
type: String,
|
type: String,
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
readableTime: {
|
|
||||||
type: String,
|
|
||||||
default: '',
|
|
||||||
},
|
|
||||||
isEmail: {
|
isEmail: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true,
|
default: true,
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "اختر حساباً من القائمة التالية",
|
"SELECTOR_SUBTITLE": "اختر حساباً من القائمة التالية",
|
||||||
"PROFILE_SETTINGS": "إعدادات الملف الشخصي",
|
"PROFILE_SETTINGS": "إعدادات الملف الشخصي",
|
||||||
"KEYBOARD_SHORTCUTS": "اختصارات لوحة المفاتيح",
|
"KEYBOARD_SHORTCUTS": "اختصارات لوحة المفاتيح",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "تسجيل الخروج"
|
"LOGOUT": "تسجيل الخروج"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Select an account from the following list",
|
"SELECTOR_SUBTITLE": "Select an account from the following list",
|
||||||
"PROFILE_SETTINGS": "Profile Settings",
|
"PROFILE_SETTINGS": "Profile Settings",
|
||||||
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Logout"
|
"LOGOUT": "Logout"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Selecciona un compte de la llista següent",
|
"SELECTOR_SUBTITLE": "Selecciona un compte de la llista següent",
|
||||||
"PROFILE_SETTINGS": "Configuració del Perfil",
|
"PROFILE_SETTINGS": "Configuració del Perfil",
|
||||||
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Sortir"
|
"LOGOUT": "Sortir"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Vyberte účet z následujícího seznamu",
|
"SELECTOR_SUBTITLE": "Vyberte účet z následujícího seznamu",
|
||||||
"PROFILE_SETTINGS": "Nastavení profilu",
|
"PROFILE_SETTINGS": "Nastavení profilu",
|
||||||
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Odhlásit se"
|
"LOGOUT": "Odhlásit se"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Vælg en konto fra følgende liste",
|
"SELECTOR_SUBTITLE": "Vælg en konto fra følgende liste",
|
||||||
"PROFILE_SETTINGS": "Profilindstillinger",
|
"PROFILE_SETTINGS": "Profilindstillinger",
|
||||||
"KEYBOARD_SHORTCUTS": "Tastaturgenveje",
|
"KEYBOARD_SHORTCUTS": "Tastaturgenveje",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Log Ud"
|
"LOGOUT": "Log Ud"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Wählen Sie ein Benutzerkonto aus der folgenden Liste",
|
"SELECTOR_SUBTITLE": "Wählen Sie ein Benutzerkonto aus der folgenden Liste",
|
||||||
"PROFILE_SETTINGS": "Profileinstellungen",
|
"PROFILE_SETTINGS": "Profileinstellungen",
|
||||||
"KEYBOARD_SHORTCUTS": "Tastenkombinationen",
|
"KEYBOARD_SHORTCUTS": "Tastenkombinationen",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Ausloggen"
|
"LOGOUT": "Ausloggen"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Επιλέξτε ένα λογαριασμό από την Λίστα",
|
"SELECTOR_SUBTITLE": "Επιλέξτε ένα λογαριασμό από την Λίστα",
|
||||||
"PROFILE_SETTINGS": "Ρυθμίσεις Προφίλ",
|
"PROFILE_SETTINGS": "Ρυθμίσεις Προφίλ",
|
||||||
"KEYBOARD_SHORTCUTS": "Συντομεύσεις Πληκτρολογίου",
|
"KEYBOARD_SHORTCUTS": "Συντομεύσεις Πληκτρολογίου",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Κονσόλα",
|
||||||
"LOGOUT": "Έξοδος (Logout)"
|
"LOGOUT": "Έξοδος (Logout)"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Seleccione una cuenta de la siguiente lista",
|
"SELECTOR_SUBTITLE": "Seleccione una cuenta de la siguiente lista",
|
||||||
"PROFILE_SETTINGS": "Ajustes del perfil",
|
"PROFILE_SETTINGS": "Ajustes del perfil",
|
||||||
"KEYBOARD_SHORTCUTS": "Atajos de teclado",
|
"KEYBOARD_SHORTCUTS": "Atajos de teclado",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Cerrar sesión"
|
"LOGOUT": "Cerrar sesión"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "از لیست یکی از حسابها را انتخاب کنید",
|
"SELECTOR_SUBTITLE": "از لیست یکی از حسابها را انتخاب کنید",
|
||||||
"PROFILE_SETTINGS": "تنظیمات پروفایل",
|
"PROFILE_SETTINGS": "تنظیمات پروفایل",
|
||||||
"KEYBOARD_SHORTCUTS": "میانبرهای صفحهکلید",
|
"KEYBOARD_SHORTCUTS": "میانبرهای صفحهکلید",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "کنسول سوپر مدیر",
|
||||||
"LOGOUT": "خروج از حسابکاربری"
|
"LOGOUT": "خروج از حسابکاربری"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Valitse tili tästä luettelosta",
|
"SELECTOR_SUBTITLE": "Valitse tili tästä luettelosta",
|
||||||
"PROFILE_SETTINGS": "Profiilin asetukset",
|
"PROFILE_SETTINGS": "Profiilin asetukset",
|
||||||
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Kirjaudu ulos"
|
"LOGOUT": "Kirjaudu ulos"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -1,28 +1,28 @@
|
||||||
{
|
{
|
||||||
"FILTER": {
|
"FILTER": {
|
||||||
"TITLE": "Filtrer les conversations",
|
"TITLE": "Filtrer les conversations",
|
||||||
"SUBTITLE": "Add filters below and hit 'Apply filters' to filter conversations.",
|
"SUBTITLE": "Ajoutez des filtres ci-dessous et appuyez sur 'Appliquer des filtres' pour filtrer les conversations.",
|
||||||
"ADD_NEW_FILTER": "Ajouter un filtre",
|
"ADD_NEW_FILTER": "Ajouter un filtre",
|
||||||
"FILTER_DELETE_ERROR": "Vous devriez avoir au moins un filtre afin d'enregistrer",
|
"FILTER_DELETE_ERROR": "Vous devriez avoir au moins un filtre afin d'enregistrer",
|
||||||
"SUBMIT_BUTTON_LABEL": "Appliquer les filtres",
|
"SUBMIT_BUTTON_LABEL": "Appliquer les filtres",
|
||||||
"CANCEL_BUTTON_LABEL": "Annuler",
|
"CANCEL_BUTTON_LABEL": "Annuler",
|
||||||
"CLEAR_BUTTON_LABEL": "Clear Filters",
|
"CLEAR_BUTTON_LABEL": "Effacer les filtres",
|
||||||
"EMPTY_VALUE_ERROR": "Value is required",
|
"EMPTY_VALUE_ERROR": "Value is required",
|
||||||
"TOOLTIP_LABEL": "Filter conversations",
|
"TOOLTIP_LABEL": "Filtrer les conversations",
|
||||||
"QUERY_DROPDOWN_LABELS": {
|
"QUERY_DROPDOWN_LABELS": {
|
||||||
"AND": "ET",
|
"AND": "ET",
|
||||||
"OR": "OU"
|
"OR": "OU"
|
||||||
},
|
},
|
||||||
"OPERATOR_LABELS": {
|
"OPERATOR_LABELS": {
|
||||||
"equal_to": "Equal to",
|
"equal_to": "Égal à",
|
||||||
"not_equal_to": "Not equal to",
|
"not_equal_to": "Pas égal à",
|
||||||
"contains": "Contains",
|
"contains": "Contient",
|
||||||
"does_not_contain": "Does not contain",
|
"does_not_contain": "Ne contient pas",
|
||||||
"is_present": "Is present",
|
"is_present": "Est présent",
|
||||||
"is_not_present": "Is not present",
|
"is_not_present": "N'est pas présent",
|
||||||
"is_greater_than": "Is greater than",
|
"is_greater_than": "Est plus grand que",
|
||||||
"is_less_than": "Is lesser than",
|
"is_less_than": "Est inférieur à",
|
||||||
"days_before": "Is x days before"
|
"days_before": "Est x jours avant"
|
||||||
},
|
},
|
||||||
"ATTRIBUTE_LABELS": {
|
"ATTRIBUTE_LABELS": {
|
||||||
"TRUE": "Vrai",
|
"TRUE": "Vrai",
|
||||||
|
@ -32,19 +32,19 @@
|
||||||
"STATUS": "État",
|
"STATUS": "État",
|
||||||
"ASSIGNEE_NAME": "Assignee Name",
|
"ASSIGNEE_NAME": "Assignee Name",
|
||||||
"INBOX_NAME": "Nom de la boîte de réception",
|
"INBOX_NAME": "Nom de la boîte de réception",
|
||||||
"TEAM_NAME": "Team Name",
|
"TEAM_NAME": "Nom de l'équipe",
|
||||||
"CONVERSATION_IDENTIFIER": "Conversation Identifier",
|
"CONVERSATION_IDENTIFIER": "Conversation Identifier",
|
||||||
"CAMPAIGN_NAME": "Campaign Name",
|
"CAMPAIGN_NAME": "Campaign Name",
|
||||||
"LABELS": "Étiquettes",
|
"LABELS": "Étiquettes",
|
||||||
"BROWSER_LANGUAGE": "Browser Language",
|
"BROWSER_LANGUAGE": "Langue du navigateur",
|
||||||
"COUNTRY_NAME": "Country Name",
|
"COUNTRY_NAME": "Nom du pays",
|
||||||
"REFERER_LINK": "Referer link",
|
"REFERER_LINK": "Referer link",
|
||||||
"CUSTOM_ATTRIBUTE_LIST": "List",
|
"CUSTOM_ATTRIBUTE_LIST": "Liste",
|
||||||
"CUSTOM_ATTRIBUTE_TEXT": "Text",
|
"CUSTOM_ATTRIBUTE_TEXT": "Texte",
|
||||||
"CUSTOM_ATTRIBUTE_NUMBER": "Number",
|
"CUSTOM_ATTRIBUTE_NUMBER": "Nombre",
|
||||||
"CUSTOM_ATTRIBUTE_LINK": "Link",
|
"CUSTOM_ATTRIBUTE_LINK": "Lien",
|
||||||
"CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
|
"CUSTOM_ATTRIBUTE_CHECKBOX": "Case à cocher",
|
||||||
"CREATED_AT": "Created At",
|
"CREATED_AT": "Créé le",
|
||||||
"LAST_ACTIVITY": "Dernière activité"
|
"LAST_ACTIVITY": "Dernière activité"
|
||||||
},
|
},
|
||||||
"GROUPS": {
|
"GROUPS": {
|
||||||
|
@ -70,7 +70,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"DELETE": {
|
"DELETE": {
|
||||||
"DELETE_BUTTON": "Delete filter",
|
"DELETE_BUTTON": "Supprimer le filtre",
|
||||||
"MODAL": {
|
"MODAL": {
|
||||||
"CONFIRM": {
|
"CONFIRM": {
|
||||||
"TITLE": "Confirmer la suppression",
|
"TITLE": "Confirmer la suppression",
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
},
|
},
|
||||||
"TAB_HEADING": "Conversations",
|
"TAB_HEADING": "Conversations",
|
||||||
"MENTION_HEADING": "Mentions",
|
"MENTION_HEADING": "Mentions",
|
||||||
"UNATTENDED_HEADING": "Unattended",
|
"UNATTENDED_HEADING": "Sans suivi",
|
||||||
"SEARCH": {
|
"SEARCH": {
|
||||||
"INPUT": "Rechercher des personnes, des conversations, des réponses standardisées ..."
|
"INPUT": "Rechercher des personnes, des conversations, des réponses standardisées ..."
|
||||||
},
|
},
|
||||||
|
@ -57,12 +57,12 @@
|
||||||
"REPLY_TO_TWEET": "Répondre à ce tweet",
|
"REPLY_TO_TWEET": "Répondre à ce tweet",
|
||||||
"LINK_TO_STORY": "Aller à l'histoire instagram",
|
"LINK_TO_STORY": "Aller à l'histoire instagram",
|
||||||
"SENT": "Envoyé avec succès",
|
"SENT": "Envoyé avec succès",
|
||||||
"READ": "Read successfully",
|
"READ": "Lu",
|
||||||
"DELIVERED": "Delivered successfully",
|
"DELIVERED": "Reçu",
|
||||||
"NO_MESSAGES": "Pas de messages",
|
"NO_MESSAGES": "Pas de messages",
|
||||||
"NO_CONTENT": "Aucun contenu disponible",
|
"NO_CONTENT": "Aucun contenu disponible",
|
||||||
"HIDE_QUOTED_TEXT": "Masquer le texte cité",
|
"HIDE_QUOTED_TEXT": "Masquer le texte cité",
|
||||||
"SHOW_QUOTED_TEXT": "Afficher le texte cité",
|
"SHOW_QUOTED_TEXT": "Afficher le texte cité",
|
||||||
"MESSAGE_READ": "Read"
|
"MESSAGE_READ": "Lu"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
"COPY_SUCCESSFUL": "Copié dans le presse-papiers avec succès",
|
"COPY_SUCCESSFUL": "Copié dans le presse-papiers avec succès",
|
||||||
"COMPANY": "Société",
|
"COMPANY": "Société",
|
||||||
"LOCATION": "Localisation",
|
"LOCATION": "Localisation",
|
||||||
"BROWSER_LANGUAGE": "Browser Language",
|
"BROWSER_LANGUAGE": "Langue du navigateur",
|
||||||
"CONVERSATION_TITLE": "Détails de la conversation",
|
"CONVERSATION_TITLE": "Détails de la conversation",
|
||||||
"VIEW_PROFILE": "Voir le profil",
|
"VIEW_PROFILE": "Voir le profil",
|
||||||
"BROWSER": "Navigateur",
|
"BROWSER": "Navigateur",
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
"FILTER_DELETE_ERROR": "Vous devriez avoir au moins un filtre afin d'enregistrer",
|
"FILTER_DELETE_ERROR": "Vous devriez avoir au moins un filtre afin d'enregistrer",
|
||||||
"SUBMIT_BUTTON_LABEL": "Envoyer",
|
"SUBMIT_BUTTON_LABEL": "Envoyer",
|
||||||
"CANCEL_BUTTON_LABEL": "Annuler",
|
"CANCEL_BUTTON_LABEL": "Annuler",
|
||||||
"CLEAR_BUTTON_LABEL": "Clear Filters",
|
"CLEAR_BUTTON_LABEL": "Effacer les filtres",
|
||||||
"EMPTY_VALUE_ERROR": "Value is required",
|
"EMPTY_VALUE_ERROR": "Value is required",
|
||||||
"TOOLTIP_LABEL": "Filter contacts",
|
"TOOLTIP_LABEL": "Filter contacts",
|
||||||
"QUERY_DROPDOWN_LABELS": {
|
"QUERY_DROPDOWN_LABELS": {
|
||||||
|
@ -15,15 +15,15 @@
|
||||||
"OR": "OU"
|
"OR": "OU"
|
||||||
},
|
},
|
||||||
"OPERATOR_LABELS": {
|
"OPERATOR_LABELS": {
|
||||||
"equal_to": "Equal to",
|
"equal_to": "Égal à",
|
||||||
"not_equal_to": "Not equal to",
|
"not_equal_to": "Pas égal à",
|
||||||
"contains": "Contains",
|
"contains": "Contient",
|
||||||
"does_not_contain": "Does not contain",
|
"does_not_contain": "Ne contient pas",
|
||||||
"is_present": "Is present",
|
"is_present": "Est présent",
|
||||||
"is_not_present": "Is not present",
|
"is_not_present": "N'est pas présent",
|
||||||
"is_greater_than": "Is greater than",
|
"is_greater_than": "Est plus grand que",
|
||||||
"is_lesser_than": "Is lesser than",
|
"is_lesser_than": "Is lesser than",
|
||||||
"days_before": "Is x days before"
|
"days_before": "Est x jours avant"
|
||||||
},
|
},
|
||||||
"ATTRIBUTES": {
|
"ATTRIBUTES": {
|
||||||
"NAME": "Nom",
|
"NAME": "Nom",
|
||||||
|
@ -32,12 +32,12 @@
|
||||||
"IDENTIFIER": "Identifier",
|
"IDENTIFIER": "Identifier",
|
||||||
"CITY": "Ville",
|
"CITY": "Ville",
|
||||||
"COUNTRY": "Pays",
|
"COUNTRY": "Pays",
|
||||||
"CUSTOM_ATTRIBUTE_LIST": "List",
|
"CUSTOM_ATTRIBUTE_LIST": "Liste",
|
||||||
"CUSTOM_ATTRIBUTE_TEXT": "Text",
|
"CUSTOM_ATTRIBUTE_TEXT": "Texte",
|
||||||
"CUSTOM_ATTRIBUTE_NUMBER": "Number",
|
"CUSTOM_ATTRIBUTE_NUMBER": "Nombre",
|
||||||
"CUSTOM_ATTRIBUTE_LINK": "Link",
|
"CUSTOM_ATTRIBUTE_LINK": "Lien",
|
||||||
"CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
|
"CUSTOM_ATTRIBUTE_CHECKBOX": "Case à cocher",
|
||||||
"CREATED_AT": "Created At",
|
"CREATED_AT": "Créé le",
|
||||||
"LAST_ACTIVITY": "Dernière activité",
|
"LAST_ACTIVITY": "Dernière activité",
|
||||||
"REFERER_LINK": "Referrer link"
|
"REFERER_LINK": "Referrer link"
|
||||||
},
|
},
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Sélectionnez un compte dans la liste suivante",
|
"SELECTOR_SUBTITLE": "Sélectionnez un compte dans la liste suivante",
|
||||||
"PROFILE_SETTINGS": "Paramètres de profil",
|
"PROFILE_SETTINGS": "Paramètres de profil",
|
||||||
"KEYBOARD_SHORTCUTS": "Raccourcis clavier",
|
"KEYBOARD_SHORTCUTS": "Raccourcis clavier",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Se déconnecter"
|
"LOGOUT": "Se déconnecter"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
"REGISTER": {
|
"REGISTER": {
|
||||||
"TRY_WOOT": "Créer un compte",
|
"TRY_WOOT": "Créer un compte",
|
||||||
"TITLE": "Inscription",
|
"TITLE": "Inscription",
|
||||||
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
|
"TESTIMONIAL_HEADER": "Il suffit d'une étape pour avancer",
|
||||||
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
|
"TESTIMONIAL_CONTENT": "Vous n'êtes plus qu'à un pas d'engager vos clients, de les fidéliser et d'en trouver de nouveaux.",
|
||||||
"TERMS_ACCEPT": "En vous inscrivant, vous acceptez nos <a href=\"https://www.chatwoot.com/terms\">CGU</a> et notre <a href=\"https://www.chatwoot.com/privacy-policy\">politique de confidentialité</a>",
|
"TERMS_ACCEPT": "En vous inscrivant, vous acceptez nos <a href=\"https://www.chatwoot.com/terms\">CGU</a> et notre <a href=\"https://www.chatwoot.com/privacy-policy\">politique de confidentialité</a>",
|
||||||
"COMPANY_NAME": {
|
"COMPANY_NAME": {
|
||||||
"LABEL": "Company name",
|
"LABEL": "Nom de la société",
|
||||||
"PLACEHOLDER": "Enter your company name. eg: Wayne Enterprises",
|
"PLACEHOLDER": "Entrez le nom de votre entreprise. Ex : Wayne Enterprises",
|
||||||
"ERROR": "Company name is too short"
|
"ERROR": "Le nom de la société est trop court"
|
||||||
},
|
},
|
||||||
"FULL_NAME": {
|
"FULL_NAME": {
|
||||||
"LABEL": "Nom complet",
|
"LABEL": "Nom complet",
|
||||||
|
@ -18,13 +18,13 @@
|
||||||
"EMAIL": {
|
"EMAIL": {
|
||||||
"LABEL": "E-mail professionnel",
|
"LABEL": "E-mail professionnel",
|
||||||
"PLACEHOLDER": "Entrez votre adresse e-mail professionnelle. Ex. : bruce@wayne.enterprises",
|
"PLACEHOLDER": "Entrez votre adresse e-mail professionnelle. Ex. : bruce@wayne.enterprises",
|
||||||
"ERROR": "Please enter a valid work email address"
|
"ERROR": "Veuillez entrer une adresse e-mail professionnelle valide"
|
||||||
},
|
},
|
||||||
"PASSWORD": {
|
"PASSWORD": {
|
||||||
"LABEL": "Mot de passe",
|
"LABEL": "Mot de passe",
|
||||||
"PLACEHOLDER": "Mot de passe",
|
"PLACEHOLDER": "Mot de passe",
|
||||||
"ERROR": "Le mot de passe est trop court",
|
"ERROR": "Le mot de passe est trop court",
|
||||||
"IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character"
|
"IS_INVALID_PASSWORD": "Le mot de passe doit contenir au moins 1 lettre majuscule, 1 lettre minuscule, 1 chiffre et 1 caractère spécial"
|
||||||
},
|
},
|
||||||
"CONFIRM_PASSWORD": {
|
"CONFIRM_PASSWORD": {
|
||||||
"LABEL": "Confirmer le mot de passe",
|
"LABEL": "Confirmer le mot de passe",
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Select an account from the following list",
|
"SELECTOR_SUBTITLE": "Select an account from the following list",
|
||||||
"PROFILE_SETTINGS": "Profile Settings",
|
"PROFILE_SETTINGS": "Profile Settings",
|
||||||
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "התנתק"
|
"LOGOUT": "התנתק"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Select an account from the following list",
|
"SELECTOR_SUBTITLE": "Select an account from the following list",
|
||||||
"PROFILE_SETTINGS": "Profile Settings",
|
"PROFILE_SETTINGS": "Profile Settings",
|
||||||
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Logout"
|
"LOGOUT": "Logout"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Fiók kiválasztása az alábbi listából",
|
"SELECTOR_SUBTITLE": "Fiók kiválasztása az alábbi listából",
|
||||||
"PROFILE_SETTINGS": "Profilbeállítások",
|
"PROFILE_SETTINGS": "Profilbeállítások",
|
||||||
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Kilépés"
|
"LOGOUT": "Kilépés"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Pilih akun dari daftar berikut",
|
"SELECTOR_SUBTITLE": "Pilih akun dari daftar berikut",
|
||||||
"PROFILE_SETTINGS": "Pengaturan Profil",
|
"PROFILE_SETTINGS": "Pengaturan Profil",
|
||||||
"KEYBOARD_SHORTCUTS": "Shortcut Keyboard",
|
"KEYBOARD_SHORTCUTS": "Shortcut Keyboard",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Keluar"
|
"LOGOUT": "Keluar"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Veldu reikning úr eftirfarandi lista",
|
"SELECTOR_SUBTITLE": "Veldu reikning úr eftirfarandi lista",
|
||||||
"PROFILE_SETTINGS": "Profile Settings",
|
"PROFILE_SETTINGS": "Profile Settings",
|
||||||
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Logout"
|
"LOGOUT": "Logout"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Seleziona un account dal seguente elenco",
|
"SELECTOR_SUBTITLE": "Seleziona un account dal seguente elenco",
|
||||||
"PROFILE_SETTINGS": "Impostazioni profilo",
|
"PROFILE_SETTINGS": "Impostazioni profilo",
|
||||||
"KEYBOARD_SHORTCUTS": "Scorciatoie da tastiera",
|
"KEYBOARD_SHORTCUTS": "Scorciatoie da tastiera",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Disconnettiti"
|
"LOGOUT": "Disconnettiti"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "次のリストからアカウントを選択してください",
|
"SELECTOR_SUBTITLE": "次のリストからアカウントを選択してください",
|
||||||
"PROFILE_SETTINGS": "プロフィール設定",
|
"PROFILE_SETTINGS": "プロフィール設定",
|
||||||
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "ログアウト"
|
"LOGOUT": "ログアウト"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Select an account from the following list",
|
"SELECTOR_SUBTITLE": "Select an account from the following list",
|
||||||
"PROFILE_SETTINGS": "Profile Settings",
|
"PROFILE_SETTINGS": "Profile Settings",
|
||||||
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Logout"
|
"LOGOUT": "Logout"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "다음 목록에서 계정 선택",
|
"SELECTOR_SUBTITLE": "다음 목록에서 계정 선택",
|
||||||
"PROFILE_SETTINGS": "프로필 설정",
|
"PROFILE_SETTINGS": "프로필 설정",
|
||||||
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "로그아웃"
|
"LOGOUT": "로그아웃"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Select an account from the following list",
|
"SELECTOR_SUBTITLE": "Select an account from the following list",
|
||||||
"PROFILE_SETTINGS": "Profile Settings",
|
"PROFILE_SETTINGS": "Profile Settings",
|
||||||
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Logout"
|
"LOGOUT": "Logout"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -42,8 +42,8 @@
|
||||||
"RATING_TITLE": "Vērtējums",
|
"RATING_TITLE": "Vērtējums",
|
||||||
"FEEDBACK_TITLE": "Atsauksmes",
|
"FEEDBACK_TITLE": "Atsauksmes",
|
||||||
"CARD": {
|
"CARD": {
|
||||||
"SHOW_LABELS": "Show labels",
|
"SHOW_LABELS": "Rādīt etiķetes",
|
||||||
"HIDE_LABELS": "Hide labels"
|
"HIDE_LABELS": "Slēpt etiķetes"
|
||||||
},
|
},
|
||||||
"HEADER": {
|
"HEADER": {
|
||||||
"RESOLVE_ACTION": "Atrisināt",
|
"RESOLVE_ACTION": "Atrisināt",
|
||||||
|
|
|
@ -104,8 +104,8 @@
|
||||||
"Aizņemts",
|
"Aizņemts",
|
||||||
"Bezsaistē"
|
"Bezsaistē"
|
||||||
],
|
],
|
||||||
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
|
"SET_AVAILABILITY_SUCCESS": "Pieejamība ir veiksmīgi iestatīta",
|
||||||
"SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
|
"SET_AVAILABILITY_ERROR": "Nevarēja iestatīt pieejamību. Lūdzu, mēģiniet vēlreiz"
|
||||||
},
|
},
|
||||||
"EMAIL": {
|
"EMAIL": {
|
||||||
"LABEL": "Jūsu e-pasta adrese",
|
"LABEL": "Jūsu e-pasta adrese",
|
||||||
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Izvēlieties kontu no šī saraksta",
|
"SELECTOR_SUBTITLE": "Izvēlieties kontu no šī saraksta",
|
||||||
"PROFILE_SETTINGS": "Profila Iestatījumi",
|
"PROFILE_SETTINGS": "Profila Iestatījumi",
|
||||||
"KEYBOARD_SHORTCUTS": "Tastatūras Īsinājumtaustiņi",
|
"KEYBOARD_SHORTCUTS": "Tastatūras Īsinājumtaustiņi",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Superadministratora Konsole",
|
||||||
"LOGOUT": "Izrakstīties"
|
"LOGOUT": "Izrakstīties"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
@ -229,8 +230,8 @@
|
||||||
"CATEGORY_EMPTY_MESSAGE": "Kategorijas nav atrastas"
|
"CATEGORY_EMPTY_MESSAGE": "Kategorijas nav atrastas"
|
||||||
},
|
},
|
||||||
"SET_AUTO_OFFLINE": {
|
"SET_AUTO_OFFLINE": {
|
||||||
"TEXT": "Mark offline automatically",
|
"TEXT": "Automātiski atzīmēt bezsaistē",
|
||||||
"INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
|
"INFO_TEXT": "Ļaut sistēmai, kad neizmantojat lietotni vai informācijas paneli, automātiski atzīmēt Jūs bezsaistē."
|
||||||
},
|
},
|
||||||
"DOCS": "Lasīt dokumentus"
|
"DOCS": "Lasīt dokumentus"
|
||||||
},
|
},
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "ഇനിപ്പറയുന്ന ലിസ്റ്റിൽ നിന്ന് ഒരു അക്കൗണ്ട് തിരഞ്ഞെടുക്കുക",
|
"SELECTOR_SUBTITLE": "ഇനിപ്പറയുന്ന ലിസ്റ്റിൽ നിന്ന് ഒരു അക്കൗണ്ട് തിരഞ്ഞെടുക്കുക",
|
||||||
"PROFILE_SETTINGS": "പ്രൊഫൈൽ ക്രമീകരണങ്ങൾ",
|
"PROFILE_SETTINGS": "പ്രൊഫൈൽ ക്രമീകരണങ്ങൾ",
|
||||||
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "ലോഗൗട്ട്"
|
"LOGOUT": "ലോഗൗട്ട്"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Select an account from the following list",
|
"SELECTOR_SUBTITLE": "Select an account from the following list",
|
||||||
"PROFILE_SETTINGS": "Profile Settings",
|
"PROFILE_SETTINGS": "Profile Settings",
|
||||||
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Logout"
|
"LOGOUT": "Logout"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Select an account from the following list",
|
"SELECTOR_SUBTITLE": "Select an account from the following list",
|
||||||
"PROFILE_SETTINGS": "Profile Settings",
|
"PROFILE_SETTINGS": "Profile Settings",
|
||||||
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Logout"
|
"LOGOUT": "Logout"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Select an account from the following list",
|
"SELECTOR_SUBTITLE": "Select an account from the following list",
|
||||||
"PROFILE_SETTINGS": "Profiel instellingen",
|
"PROFILE_SETTINGS": "Profiel instellingen",
|
||||||
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Afmelden"
|
"LOGOUT": "Afmelden"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Velg en konto fra følgende liste",
|
"SELECTOR_SUBTITLE": "Velg en konto fra følgende liste",
|
||||||
"PROFILE_SETTINGS": "Brukerinnstillinger",
|
"PROFILE_SETTINGS": "Brukerinnstillinger",
|
||||||
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Logg ut"
|
"LOGOUT": "Logg ut"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Select an account from the following list",
|
"SELECTOR_SUBTITLE": "Select an account from the following list",
|
||||||
"PROFILE_SETTINGS": "Ustawienia profilu",
|
"PROFILE_SETTINGS": "Ustawienia profilu",
|
||||||
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Wyloguj się"
|
"LOGOUT": "Wyloguj się"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Escolha uma conta da lista a seguir",
|
"SELECTOR_SUBTITLE": "Escolha uma conta da lista a seguir",
|
||||||
"PROFILE_SETTINGS": "Configurações do perfil",
|
"PROFILE_SETTINGS": "Configurações do perfil",
|
||||||
"KEYBOARD_SHORTCUTS": "Atalhos do teclado",
|
"KEYBOARD_SHORTCUTS": "Atalhos do teclado",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Desconectar"
|
"LOGOUT": "Desconectar"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Selecione uma conta da lista a seguir",
|
"SELECTOR_SUBTITLE": "Selecione uma conta da lista a seguir",
|
||||||
"PROFILE_SETTINGS": "Configurações do Perfil",
|
"PROFILE_SETTINGS": "Configurações do Perfil",
|
||||||
"KEYBOARD_SHORTCUTS": "Atalhos do teclado",
|
"KEYBOARD_SHORTCUTS": "Atalhos do teclado",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Console de Super Admin",
|
||||||
"LOGOUT": "Sair"
|
"LOGOUT": "Sair"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Selectaţi un cont din următoarea listă",
|
"SELECTOR_SUBTITLE": "Selectaţi un cont din următoarea listă",
|
||||||
"PROFILE_SETTINGS": "Setări profil",
|
"PROFILE_SETTINGS": "Setări profil",
|
||||||
"KEYBOARD_SHORTCUTS": "Scurtături Tastatură",
|
"KEYBOARD_SHORTCUTS": "Scurtături Tastatură",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Deconectare"
|
"LOGOUT": "Deconectare"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Выберите аккаунт из списка",
|
"SELECTOR_SUBTITLE": "Выберите аккаунт из списка",
|
||||||
"PROFILE_SETTINGS": "Настройки профиля",
|
"PROFILE_SETTINGS": "Настройки профиля",
|
||||||
"KEYBOARD_SHORTCUTS": "Клавиши быстрого доступа",
|
"KEYBOARD_SHORTCUTS": "Клавиши быстрого доступа",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Консоль супер администратора",
|
||||||
"LOGOUT": "Выйти"
|
"LOGOUT": "Выйти"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Vyberte účet z nasledujúceho zoznamu",
|
"SELECTOR_SUBTITLE": "Vyberte účet z nasledujúceho zoznamu",
|
||||||
"PROFILE_SETTINGS": "Nastavenia profilu",
|
"PROFILE_SETTINGS": "Nastavenia profilu",
|
||||||
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Logout"
|
"LOGOUT": "Logout"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Izaberite nalog iz sledećeg spiska",
|
"SELECTOR_SUBTITLE": "Izaberite nalog iz sledećeg spiska",
|
||||||
"PROFILE_SETTINGS": "Podešavanja profila",
|
"PROFILE_SETTINGS": "Podešavanja profila",
|
||||||
"KEYBOARD_SHORTCUTS": "Prečice tastature",
|
"KEYBOARD_SHORTCUTS": "Prečice tastature",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Odjavi se"
|
"LOGOUT": "Odjavi se"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Välj ett konto från följande lista",
|
"SELECTOR_SUBTITLE": "Välj ett konto från följande lista",
|
||||||
"PROFILE_SETTINGS": "Profilinställningar",
|
"PROFILE_SETTINGS": "Profilinställningar",
|
||||||
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Logga ut"
|
"LOGOUT": "Logga ut"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "பின்வரும் பட்டியலிலிருந்து ஒரு கணக்கைத் தேர்ந்தெடுக்கவும்",
|
"SELECTOR_SUBTITLE": "பின்வரும் பட்டியலிலிருந்து ஒரு கணக்கைத் தேர்ந்தெடுக்கவும்",
|
||||||
"PROFILE_SETTINGS": "சுயவிவர அமைப்புகள்",
|
"PROFILE_SETTINGS": "சுயவிவர அமைப்புகள்",
|
||||||
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "வெளியேறு"
|
"LOGOUT": "வெளியேறு"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "เลือกบัญชีจากรายชื่อต่อไปนี้",
|
"SELECTOR_SUBTITLE": "เลือกบัญชีจากรายชื่อต่อไปนี้",
|
||||||
"PROFILE_SETTINGS": "ตั้งค่าข้อมูลส่วนตัว",
|
"PROFILE_SETTINGS": "ตั้งค่าข้อมูลส่วนตัว",
|
||||||
"KEYBOARD_SHORTCUTS": "คีย์ลัด",
|
"KEYBOARD_SHORTCUTS": "คีย์ลัด",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "ออกจากระบบ"
|
"LOGOUT": "ออกจากระบบ"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Aşağıdaki listeden bir hesap seçin",
|
"SELECTOR_SUBTITLE": "Aşağıdaki listeden bir hesap seçin",
|
||||||
"PROFILE_SETTINGS": "Profil ayarları",
|
"PROFILE_SETTINGS": "Profil ayarları",
|
||||||
"KEYBOARD_SHORTCUTS": "Klavye Kısayolları",
|
"KEYBOARD_SHORTCUTS": "Klavye Kısayolları",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Çıkış Yap"
|
"LOGOUT": "Çıkış Yap"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Виберіть обліковий запис із наступного списку",
|
"SELECTOR_SUBTITLE": "Виберіть обліковий запис із наступного списку",
|
||||||
"PROFILE_SETTINGS": "Налаштування облікового запису",
|
"PROFILE_SETTINGS": "Налаштування облікового запису",
|
||||||
"KEYBOARD_SHORTCUTS": "Комбінації клавіш",
|
"KEYBOARD_SHORTCUTS": "Комбінації клавіш",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Вийти"
|
"LOGOUT": "Вийти"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Select an account from the following list",
|
"SELECTOR_SUBTITLE": "Select an account from the following list",
|
||||||
"PROFILE_SETTINGS": "Profile Settings",
|
"PROFILE_SETTINGS": "Profile Settings",
|
||||||
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Logout"
|
"LOGOUT": "Logout"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Select an account from the following list",
|
"SELECTOR_SUBTITLE": "Select an account from the following list",
|
||||||
"PROFILE_SETTINGS": "Profile Settings",
|
"PROFILE_SETTINGS": "Profile Settings",
|
||||||
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Logout"
|
"LOGOUT": "Logout"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "Chọn một tài khoản từ danh sách sau",
|
"SELECTOR_SUBTITLE": "Chọn một tài khoản từ danh sách sau",
|
||||||
"PROFILE_SETTINGS": "Cài Đặt Hồ Sơ Cá Nhân",
|
"PROFILE_SETTINGS": "Cài Đặt Hồ Sơ Cá Nhân",
|
||||||
"KEYBOARD_SHORTCUTS": "Phím tắt",
|
"KEYBOARD_SHORTCUTS": "Phím tắt",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "Đăng xuất"
|
"LOGOUT": "Đăng xuất"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "从以下列表中选择一个账户",
|
"SELECTOR_SUBTITLE": "从以下列表中选择一个账户",
|
||||||
"PROFILE_SETTINGS": "个人资料设置",
|
"PROFILE_SETTINGS": "个人资料设置",
|
||||||
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "退出登录"
|
"LOGOUT": "退出登录"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -136,6 +136,7 @@
|
||||||
"SELECTOR_SUBTITLE": "從以下列表中選擇一個帳戶",
|
"SELECTOR_SUBTITLE": "從以下列表中選擇一個帳戶",
|
||||||
"PROFILE_SETTINGS": "個人資料設定",
|
"PROFILE_SETTINGS": "個人資料設定",
|
||||||
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
"KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
|
||||||
|
"SUPER_ADMIN_CONSOLE": "Super Admin Console",
|
||||||
"LOGOUT": "退出登入"
|
"LOGOUT": "退出登入"
|
||||||
},
|
},
|
||||||
"APP_GLOBAL": {
|
"APP_GLOBAL": {
|
||||||
|
|
|
@ -34,9 +34,6 @@ export default {
|
||||||
lastNonActivityMessageFromAPI
|
lastNonActivityMessageFromAPI
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
hasUserReadMessage(createdAt, contactLastSeen) {
|
|
||||||
return !(contactLastSeen - createdAt < 0);
|
|
||||||
},
|
|
||||||
readMessages(m) {
|
readMessages(m) {
|
||||||
return m.messages.filter(
|
return m.messages.filter(
|
||||||
chat => chat.created_at * 1000 <= m.agent_last_seen_at * 1000
|
chat => chat.created_at * 1000 <= m.agent_last_seen_at * 1000
|
||||||
|
|
|
@ -2,14 +2,14 @@
|
||||||
<div class="row app-wrapper">
|
<div class="row app-wrapper">
|
||||||
<sidebar
|
<sidebar
|
||||||
:route="currentRoute"
|
:route="currentRoute"
|
||||||
:sidebar-class-name="sidebarClassName"
|
:show-secondary-sidebar="isSidebarOpen"
|
||||||
@open-notification-panel="openNotificationPanel"
|
@open-notification-panel="openNotificationPanel"
|
||||||
@toggle-account-modal="toggleAccountModal"
|
@toggle-account-modal="toggleAccountModal"
|
||||||
@open-key-shortcut-modal="toggleKeyShortcutModal"
|
@open-key-shortcut-modal="toggleKeyShortcutModal"
|
||||||
@close-key-shortcut-modal="closeKeyShortcutModal"
|
@close-key-shortcut-modal="closeKeyShortcutModal"
|
||||||
@show-add-label-popup="showAddLabelPopup"
|
@show-add-label-popup="showAddLabelPopup"
|
||||||
/>
|
/>
|
||||||
<section class="app-content columns" :class="contentClassName">
|
<section class="app-content columns">
|
||||||
<router-view />
|
<router-view />
|
||||||
<command-bar />
|
<command-bar />
|
||||||
<account-selector
|
<account-selector
|
||||||
|
@ -46,6 +46,7 @@ import AddAccountModal from 'dashboard/components/layout/sidebarComponents/AddAc
|
||||||
import AccountSelector from 'dashboard/components/layout/sidebarComponents/AccountSelector';
|
import AccountSelector from 'dashboard/components/layout/sidebarComponents/AccountSelector';
|
||||||
import AddLabelModal from 'dashboard/routes/dashboard/settings/labels/AddLabel';
|
import AddLabelModal from 'dashboard/routes/dashboard/settings/labels/AddLabel';
|
||||||
import NotificationPanel from 'dashboard/routes/dashboard/notifications/components/NotificationPanel';
|
import NotificationPanel from 'dashboard/routes/dashboard/notifications/components/NotificationPanel';
|
||||||
|
import uiSettingsMixin from 'dashboard/mixins/uiSettings';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
@ -57,9 +58,9 @@ export default {
|
||||||
AddLabelModal,
|
AddLabelModal,
|
||||||
NotificationPanel,
|
NotificationPanel,
|
||||||
},
|
},
|
||||||
|
mixins: [uiSettingsMixin],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
isSidebarOpen: false,
|
|
||||||
isOnDesktop: true,
|
isOnDesktop: true,
|
||||||
showAccountModal: false,
|
showAccountModal: false,
|
||||||
showCreateAccountModal: false,
|
showCreateAccountModal: false,
|
||||||
|
@ -72,44 +73,22 @@ export default {
|
||||||
currentRoute() {
|
currentRoute() {
|
||||||
return ' ';
|
return ' ';
|
||||||
},
|
},
|
||||||
sidebarClassName() {
|
isSidebarOpen() {
|
||||||
if (this.isOnDesktop) {
|
const { show_secondary_sidebar: showSecondarySidebar } = this.uiSettings;
|
||||||
return '';
|
return showSecondarySidebar;
|
||||||
}
|
|
||||||
if (this.isSidebarOpen) {
|
|
||||||
return 'off-canvas is-open';
|
|
||||||
}
|
|
||||||
return 'off-canvas is-transition-push is-closed';
|
|
||||||
},
|
|
||||||
contentClassName() {
|
|
||||||
if (this.isOnDesktop) {
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
if (this.isSidebarOpen) {
|
|
||||||
return 'off-canvas-content is-open-left has-transition-push';
|
|
||||||
}
|
|
||||||
return 'off-canvas-content has-transition-push';
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
window.addEventListener('resize', this.handleResize);
|
|
||||||
this.handleResize();
|
|
||||||
bus.$on(BUS_EVENTS.TOGGLE_SIDEMENU, this.toggleSidebar);
|
bus.$on(BUS_EVENTS.TOGGLE_SIDEMENU, this.toggleSidebar);
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
bus.$off(BUS_EVENTS.TOGGLE_SIDEMENU, this.toggleSidebar);
|
bus.$off(BUS_EVENTS.TOGGLE_SIDEMENU, this.toggleSidebar);
|
||||||
window.removeEventListener('resize', this.handleResize);
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleResize() {
|
|
||||||
if (window.innerWidth >= 1200) {
|
|
||||||
this.isOnDesktop = true;
|
|
||||||
} else {
|
|
||||||
this.isOnDesktop = false;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
toggleSidebar() {
|
toggleSidebar() {
|
||||||
this.isSidebarOpen = !this.isSidebarOpen;
|
this.updateUISettings({
|
||||||
|
show_secondary_sidebar: !this.isSidebarOpen,
|
||||||
|
});
|
||||||
},
|
},
|
||||||
openCreateAccountModal() {
|
openCreateAccountModal() {
|
||||||
this.showAccountModal = false;
|
this.showAccountModal = false;
|
||||||
|
@ -142,8 +121,3 @@ export default {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
|
||||||
.off-canvas-content.is-open-left {
|
|
||||||
transform: translateX(20rem);
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
|
@ -66,7 +66,7 @@
|
||||||
@click="replaceTextWithCannedResponse"
|
@click="replaceTextWithCannedResponse"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="isAnEmailInbox || isAnWebWidgetInbox">
|
<div v-if="isEmailOrWebWidgetInbox">
|
||||||
<label>
|
<label>
|
||||||
{{ $t('NEW_CONVERSATION.FORM.MESSAGE.LABEL') }}
|
{{ $t('NEW_CONVERSATION.FORM.MESSAGE.LABEL') }}
|
||||||
<reply-email-head
|
<reply-email-head
|
||||||
|
@ -80,6 +80,7 @@
|
||||||
class="message-editor"
|
class="message-editor"
|
||||||
:class="{ editor_warning: $v.message.$error }"
|
:class="{ editor_warning: $v.message.$error }"
|
||||||
:placeholder="$t('NEW_CONVERSATION.FORM.MESSAGE.PLACEHOLDER')"
|
:placeholder="$t('NEW_CONVERSATION.FORM.MESSAGE.PLACEHOLDER')"
|
||||||
|
@toggle-canned-menu="toggleCannedMenu"
|
||||||
@blur="$v.message.$touch"
|
@blur="$v.message.$touch"
|
||||||
/>
|
/>
|
||||||
<span v-if="$v.message.$error" class="editor-warning__message">
|
<span v-if="$v.message.$error" class="editor-warning__message">
|
||||||
|
@ -229,13 +230,16 @@ export default {
|
||||||
this.selectedInbox.inbox.channel_type === INBOX_TYPES.WEB
|
this.selectedInbox.inbox.channel_type === INBOX_TYPES.WEB
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
isEmailOrWebWidgetInbox() {
|
||||||
|
return this.isAnEmailInbox || this.isAnWebWidgetInbox;
|
||||||
|
},
|
||||||
hasWhatsappTemplates() {
|
hasWhatsappTemplates() {
|
||||||
return !!this.selectedInbox.inbox?.message_templates;
|
return !!this.selectedInbox.inbox?.message_templates;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
message(value) {
|
message(value) {
|
||||||
this.hasSlashCommand = value[0] === '/';
|
this.hasSlashCommand = value[0] === '/' && !this.isEmailOrWebWidgetInbox;
|
||||||
const hasNextWord = value.includes(' ');
|
const hasNextWord = value.includes(' ');
|
||||||
const isShortCodeActive = this.hasSlashCommand && !hasNextWord;
|
const isShortCodeActive = this.hasSlashCommand && !hasNextWord;
|
||||||
if (isShortCodeActive) {
|
if (isShortCodeActive) {
|
||||||
|
@ -259,6 +263,9 @@ export default {
|
||||||
this.message = message;
|
this.message = message;
|
||||||
}, 50);
|
}, 50);
|
||||||
},
|
},
|
||||||
|
toggleCannedMenu(value) {
|
||||||
|
this.showCannedMenu = value;
|
||||||
|
},
|
||||||
prepareWhatsAppMessagePayload({ message: content, templateParams }) {
|
prepareWhatsAppMessagePayload({ message: content, templateParams }) {
|
||||||
const payload = {
|
const payload = {
|
||||||
inboxId: this.targetInbox.inbox.id,
|
inboxId: this.targetInbox.inbox.id,
|
||||||
|
@ -315,12 +322,10 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
.canned-response {
|
.canned-response {
|
||||||
position: relative;
|
|
||||||
top: var(--space-medium);
|
|
||||||
|
|
||||||
::v-deep .mention--box {
|
::v-deep .mention--box {
|
||||||
border-left: 1px solid var(--color-border);
|
border-left: 1px solid var(--color-border);
|
||||||
border-right: 1px solid var(--color-border);
|
border-right: 1px solid var(--color-border);
|
||||||
|
top: var(--space-jumbo) !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -355,4 +360,14 @@ export default {
|
||||||
.row.gutter-small {
|
.row.gutter-small {
|
||||||
gap: var(--space-small);
|
gap: var(--space-small);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
::v-deep .mention--box {
|
||||||
|
border-left: 1px solid var(--color-border);
|
||||||
|
border-right: 1px solid var(--color-border);
|
||||||
|
left: 0;
|
||||||
|
margin: auto;
|
||||||
|
right: 0;
|
||||||
|
top: 18rem !important;
|
||||||
|
width: 90%;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
<div v-on-clickaway="closeSearch" class="search-wrap">
|
<div v-on-clickaway="closeSearch" class="search-wrap">
|
||||||
|
<div class="search-header--wrap">
|
||||||
|
<woot-sidemenu-icon v-if="!showSearchBox" />
|
||||||
<div class="search" :class="{ 'is-active': showSearchBox }">
|
<div class="search" :class="{ 'is-active': showSearchBox }">
|
||||||
<woot-sidemenu-icon />
|
|
||||||
<div class="icon">
|
<div class="icon">
|
||||||
<fluent-icon icon="search" class="search--icon" size="28" />
|
<fluent-icon icon="search" class="search--icon" size="28" />
|
||||||
</div>
|
</div>
|
||||||
|
@ -16,6 +17,7 @@
|
||||||
@toggle="$emit('toggle-conversation-layout')"
|
@toggle="$emit('toggle-conversation-layout')"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<div v-if="showSearchBox" class="results-wrap">
|
<div v-if="showSearchBox" class="results-wrap">
|
||||||
<div class="show-results">
|
<div class="show-results">
|
||||||
<div>
|
<div>
|
||||||
|
@ -153,14 +155,21 @@ export default {
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.search-wrap {
|
.search-wrap {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
padding: var(--space-one) var(--space-normal) var(--space-smaller)
|
||||||
|
var(--space-normal);
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-header--wrap {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
min-height: var(--space-large);
|
||||||
}
|
}
|
||||||
|
|
||||||
.search {
|
.search {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
flex: 1;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
border-bottom: 1px solid transparent;
|
border-bottom: 1px solid transparent;
|
||||||
padding: var(--space-one) var(--space-normal) var(--space-smaller)
|
|
||||||
var(--space-normal);
|
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
.search--icon {
|
.search--icon {
|
||||||
|
@ -205,6 +214,7 @@ input::placeholder {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
max-height: 70vh;
|
max-height: 70vh;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
|
left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.show-results {
|
.show-results {
|
||||||
|
|
|
@ -8,8 +8,7 @@
|
||||||
@close-key-shortcut-modal="closeKeyShortcutModal"
|
@close-key-shortcut-modal="closeKeyShortcutModal"
|
||||||
/>
|
/>
|
||||||
<help-center-sidebar
|
<help-center-sidebar
|
||||||
v-if="portals.length"
|
v-if="showHelpCenterSidebar"
|
||||||
:class="sidebarClassName"
|
|
||||||
:header-title="headerTitle"
|
:header-title="headerTitle"
|
||||||
:portal-slug="selectedPortalSlug"
|
:portal-slug="selectedPortalSlug"
|
||||||
:locale-slug="selectedLocaleInPortal"
|
:locale-slug="selectedLocaleInPortal"
|
||||||
|
@ -19,7 +18,7 @@
|
||||||
@open-popover="openPortalPopover"
|
@open-popover="openPortalPopover"
|
||||||
@open-modal="onClickOpenAddCategoryModal"
|
@open-modal="onClickOpenAddCategoryModal"
|
||||||
/>
|
/>
|
||||||
<section class="app-content columns" :class="contentClassName">
|
<section class="app-content columns">
|
||||||
<router-view />
|
<router-view />
|
||||||
<command-bar />
|
<command-bar />
|
||||||
<account-selector
|
<account-selector
|
||||||
|
@ -84,7 +83,6 @@ export default {
|
||||||
mixins: [portalMixin, uiSettingsMixin],
|
mixins: [portalMixin, uiSettingsMixin],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
isSidebarOpen: false,
|
|
||||||
isOnDesktop: true,
|
isOnDesktop: true,
|
||||||
showShortcutModal: false,
|
showShortcutModal: false,
|
||||||
showNotificationPanel: false,
|
showNotificationPanel: false,
|
||||||
|
@ -103,6 +101,15 @@ export default {
|
||||||
meta: 'portals/getMeta',
|
meta: 'portals/getMeta',
|
||||||
isFetching: 'portals/isFetchingPortals',
|
isFetching: 'portals/isFetchingPortals',
|
||||||
}),
|
}),
|
||||||
|
isSidebarOpen() {
|
||||||
|
const {
|
||||||
|
show_help_center_secondary_sidebar: showSecondarySidebar,
|
||||||
|
} = this.uiSettings;
|
||||||
|
return showSecondarySidebar;
|
||||||
|
},
|
||||||
|
showHelpCenterSidebar() {
|
||||||
|
return this.portals.length === 0 ? false : this.isSidebarOpen;
|
||||||
|
},
|
||||||
selectedPortal() {
|
selectedPortal() {
|
||||||
const slug = this.$route.params.portalSlug || this.lastActivePortalSlug;
|
const slug = this.$route.params.portalSlug || this.lastActivePortalSlug;
|
||||||
if (slug) return this.$store.getters['portals/portalBySlug'](slug);
|
if (slug) return this.$store.getters['portals/portalBySlug'](slug);
|
||||||
|
@ -112,24 +119,6 @@ export default {
|
||||||
selectedLocaleInPortal() {
|
selectedLocaleInPortal() {
|
||||||
return this.$route.params.locale || this.defaultPortalLocale;
|
return this.$route.params.locale || this.defaultPortalLocale;
|
||||||
},
|
},
|
||||||
sidebarClassName() {
|
|
||||||
if (this.isOnDesktop) {
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
if (this.isSidebarOpen) {
|
|
||||||
return 'off-canvas is-open';
|
|
||||||
}
|
|
||||||
return 'off-canvas is-transition-push is-closed';
|
|
||||||
},
|
|
||||||
contentClassName() {
|
|
||||||
if (this.isOnDesktop) {
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
if (this.isSidebarOpen) {
|
|
||||||
return 'off-canvas-content is-open-left has-transition-push';
|
|
||||||
}
|
|
||||||
return 'off-canvas-content has-transition-push';
|
|
||||||
},
|
|
||||||
selectedPortalName() {
|
selectedPortalName() {
|
||||||
return this.selectedPortal ? this.selectedPortal.name : '';
|
return this.selectedPortal ? this.selectedPortal.name : '';
|
||||||
},
|
},
|
||||||
|
@ -227,9 +216,27 @@ export default {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
watch: {
|
||||||
|
'$route.name'() {
|
||||||
|
const routeName = this.$route?.name;
|
||||||
|
const routeParams = this.$route?.params;
|
||||||
|
const updateMetaInAllPortals = routeName === 'list_all_portals';
|
||||||
|
const updateMetaInEditArticle =
|
||||||
|
routeName === 'edit_article' && routeParams?.recentlyCreated;
|
||||||
|
const updateMetaInLocaleArticles =
|
||||||
|
routeName === 'list_all_locale_articles' &&
|
||||||
|
routeParams?.recentlyDeleted;
|
||||||
|
if (
|
||||||
|
updateMetaInAllPortals ||
|
||||||
|
updateMetaInEditArticle ||
|
||||||
|
updateMetaInLocaleArticles
|
||||||
|
) {
|
||||||
|
this.fetchPortalAndItsCategories();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
mounted() {
|
mounted() {
|
||||||
window.addEventListener('resize', this.handleResize);
|
|
||||||
this.handleResize();
|
|
||||||
bus.$on(BUS_EVENTS.TOGGLE_SIDEMENU, this.toggleSidebar);
|
bus.$on(BUS_EVENTS.TOGGLE_SIDEMENU, this.toggleSidebar);
|
||||||
|
|
||||||
const slug = this.$route.params.portalSlug;
|
const slug = this.$route.params.portalSlug;
|
||||||
|
@ -239,7 +246,6 @@ export default {
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
bus.$off(BUS_EVENTS.TOGGLE_SIDEMENU, this.toggleSidebar);
|
bus.$off(BUS_EVENTS.TOGGLE_SIDEMENU, this.toggleSidebar);
|
||||||
window.removeEventListener('resize', this.handleResize);
|
|
||||||
},
|
},
|
||||||
updated() {
|
updated() {
|
||||||
const slug = this.$route.params.portalSlug;
|
const slug = this.$route.params.portalSlug;
|
||||||
|
@ -252,15 +258,12 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleResize() {
|
|
||||||
if (window.innerWidth > 1200) {
|
|
||||||
this.isOnDesktop = true;
|
|
||||||
} else {
|
|
||||||
this.isOnDesktop = false;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
toggleSidebar() {
|
toggleSidebar() {
|
||||||
this.isSidebarOpen = !this.isSidebarOpen;
|
if (this.portals.length > 0) {
|
||||||
|
this.updateUISettings({
|
||||||
|
show_help_center_secondary_sidebar: !this.isSidebarOpen,
|
||||||
|
});
|
||||||
|
}
|
||||||
},
|
},
|
||||||
async fetchPortalAndItsCategories() {
|
async fetchPortalAndItsCategories() {
|
||||||
await this.$store.dispatch('portals/index');
|
await this.$store.dispatch('portals/index');
|
||||||
|
@ -302,8 +305,3 @@ export default {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
|
||||||
.off-canvas-content.is-open-left.has-transition-push {
|
|
||||||
transform: translateX(var(--space-giga));
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
|
@ -236,8 +236,10 @@ export default {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
articleCount() {
|
articleCount() {
|
||||||
const { all_articles_count: count } = this.portal.meta;
|
const { allowed_locales: allowedLocales } = this.portal.config;
|
||||||
return count;
|
return allowedLocales.reduce((acc, locale) => {
|
||||||
|
return acc + locale.articles_count;
|
||||||
|
}, 0);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
|
@ -105,7 +105,10 @@ export default {
|
||||||
return this.portal?.config?.allowed_locales;
|
return this.portal?.config?.allowed_locales;
|
||||||
},
|
},
|
||||||
articlesCount() {
|
articlesCount() {
|
||||||
return this.portal?.meta?.all_articles_count;
|
const { allowed_locales: allowedLocales } = this.portal.config;
|
||||||
|
return allowedLocales.reduce((acc, locale) => {
|
||||||
|
return acc + locale.articles_count;
|
||||||
|
}, 0);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
|
|
@ -151,6 +151,7 @@ export default {
|
||||||
params: {
|
params: {
|
||||||
portalSlug: this.selectedPortalSlug,
|
portalSlug: this.selectedPortalSlug,
|
||||||
locale: this.locale,
|
locale: this.locale,
|
||||||
|
recentlyDeleted: true,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|
|
@ -87,6 +87,7 @@ export default {
|
||||||
articleSlug: articleId,
|
articleSlug: articleId,
|
||||||
portalSlug: this.selectedPortalSlug,
|
portalSlug: this.selectedPortalSlug,
|
||||||
locale: this.locale,
|
locale: this.locale,
|
||||||
|
recentlyCreated: true,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|
|
@ -37,6 +37,13 @@ export default {
|
||||||
this.resizeTextarea();
|
this.resizeTextarea();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
mounted() {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
if (this.value) {
|
||||||
|
this.resizeTextarea();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
resizeTextarea() {
|
resizeTextarea() {
|
||||||
if (!this.value) {
|
if (!this.value) {
|
||||||
|
|
|
@ -174,7 +174,7 @@ export default {
|
||||||
feedback_message: this.feedbackMessage,
|
feedback_message: this.feedbackMessage,
|
||||||
};
|
};
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
const errorMessage = error?.response?.data?.message;
|
const errorMessage = error?.response?.data?.error;
|
||||||
this.errorMessage = errorMessage || this.$t('SURVEY.API.ERROR_MESSAGE');
|
this.errorMessage = errorMessage || this.$t('SURVEY.API.ERROR_MESSAGE');
|
||||||
} finally {
|
} finally {
|
||||||
this.isUpdating = false;
|
this.isUpdating = false;
|
||||||
|
|
|
@ -15,7 +15,7 @@ DeviseTokenAuth.setup do |config|
|
||||||
|
|
||||||
# Sets the max number of concurrent devices per user, which is 10 by default.
|
# Sets the max number of concurrent devices per user, which is 10 by default.
|
||||||
# After this limit is reached, the oldest tokens will be removed.
|
# After this limit is reached, the oldest tokens will be removed.
|
||||||
# config.max_number_of_devices = 10
|
config.max_number_of_devices = 25
|
||||||
|
|
||||||
# Sometimes it's necessary to make several requests to the API at the same
|
# Sometimes it's necessary to make several requests to the API at the same
|
||||||
# time. In this case, each request in the batch will need to share the same
|
# time. In this case, each request in the batch will need to share the same
|
||||||
|
|
|
@ -48,11 +48,11 @@ fr:
|
||||||
imap:
|
imap:
|
||||||
socket_error: Veuillez vérifier la connexion, l'adresse IMAP et réessayez.
|
socket_error: Veuillez vérifier la connexion, l'adresse IMAP et réessayez.
|
||||||
no_response_error: Veuillez vérifier les identifiants IMAP et réessayez.
|
no_response_error: Veuillez vérifier les identifiants IMAP et réessayez.
|
||||||
host_unreachable_error: Host unreachable, Please check the IMAP address, IMAP port and try again.
|
host_unreachable_error: Hôte injoignable, veuillez vérifier l'adresse IMAP, le port IMAP et réessayer.
|
||||||
connection_timed_out_error: Connection timed out for %{address}:%{port}
|
connection_timed_out_error: La connexion a expiré pour %{address}:%{port}
|
||||||
connection_closed_error: Connection closed.
|
connection_closed_error: Connexion fermée.
|
||||||
validations:
|
validations:
|
||||||
name: should not start or end with symbols, and it should not have < > / \ @ characters.
|
name: 'ne doit pas commencer ou se terminer par des symboles, et ne doit pas comporter les caractères suivants : "< > / \ @".'
|
||||||
reports:
|
reports:
|
||||||
period: Période de rapport %{since} à %{until}
|
period: Période de rapport %{since} à %{until}
|
||||||
agent_csv:
|
agent_csv:
|
||||||
|
@ -61,14 +61,14 @@ fr:
|
||||||
avg_first_response_time: Temps de réponse moyen (Minutes)
|
avg_first_response_time: Temps de réponse moyen (Minutes)
|
||||||
avg_resolution_time: Temps moyen de résolution (Minutes)
|
avg_resolution_time: Temps moyen de résolution (Minutes)
|
||||||
inbox_csv:
|
inbox_csv:
|
||||||
inbox_name: Inbox name
|
inbox_name: Nom de la boîte de réception
|
||||||
inbox_type: Inbox type
|
inbox_type: Type de boîte de réception
|
||||||
conversations_count: No. of conversations
|
conversations_count: Nbre de conversations
|
||||||
avg_first_response_time: Temps de réponse moyen (Minutes)
|
avg_first_response_time: Temps de réponse moyen (Minutes)
|
||||||
avg_resolution_time: Temps moyen de résolution (Minutes)
|
avg_resolution_time: Temps moyen de résolution (Minutes)
|
||||||
label_csv:
|
label_csv:
|
||||||
label_title: Label
|
label_title: Libellé
|
||||||
conversations_count: No. of conversations
|
conversations_count: Nbre de conversations
|
||||||
avg_first_response_time: Temps de réponse moyen (Minutes)
|
avg_first_response_time: Temps de réponse moyen (Minutes)
|
||||||
avg_resolution_time: Temps moyen de résolution (Minutes)
|
avg_resolution_time: Temps moyen de résolution (Minutes)
|
||||||
team_csv:
|
team_csv:
|
||||||
|
@ -79,13 +79,13 @@ fr:
|
||||||
default_group_by: jour
|
default_group_by: jour
|
||||||
csat:
|
csat:
|
||||||
headers:
|
headers:
|
||||||
contact_name: Contact Name
|
contact_name: Nom du contact
|
||||||
contact_email_address: Contact Email Address
|
contact_email_address: Adresse e-mail du contact
|
||||||
contact_phone_number: Contact Phone Number
|
contact_phone_number: Numéro de téléphone du contact
|
||||||
link_to_the_conversation: Link to the conversation
|
link_to_the_conversation: Lier à la conversation
|
||||||
agent_name: Nom de l'agent
|
agent_name: Nom de l'agent
|
||||||
rating: Note
|
rating: Note
|
||||||
feedback: Feedback Comment
|
feedback: Commentaire
|
||||||
recorded_at: Recorded date
|
recorded_at: Recorded date
|
||||||
notifications:
|
notifications:
|
||||||
notification_title:
|
notification_title:
|
||||||
|
@ -96,7 +96,7 @@ fr:
|
||||||
conversations:
|
conversations:
|
||||||
messages:
|
messages:
|
||||||
instagram_story_content: "%{story_sender} vous a mentionné dans l'histoire: "
|
instagram_story_content: "%{story_sender} vous a mentionné dans l'histoire: "
|
||||||
instagram_deleted_story_content: This story is no longer available.
|
instagram_deleted_story_content: Cette Story n'est plus disponible.
|
||||||
deleted: Ce message a été supprimé
|
deleted: Ce message a été supprimé
|
||||||
activity:
|
activity:
|
||||||
status:
|
status:
|
||||||
|
@ -151,9 +151,9 @@ fr:
|
||||||
description: "L'intégration FullContact permet d'enrichir les profils de visiteurs. Identifiez les utilisateurs dès qu'ils partagent leur adresse de courriel et offrez-leur un service client sur mesure. Connectez FullContact à votre compte en partageant la clé API FullContact."
|
description: "L'intégration FullContact permet d'enrichir les profils de visiteurs. Identifiez les utilisateurs dès qu'ils partagent leur adresse de courriel et offrez-leur un service client sur mesure. Connectez FullContact à votre compte en partageant la clé API FullContact."
|
||||||
public_portal:
|
public_portal:
|
||||||
search:
|
search:
|
||||||
search_placeholder: Search for article by title or body...
|
search_placeholder: Rechercher un article par titre ou contenu...
|
||||||
empty_placeholder: Aucun résultat trouvé.
|
empty_placeholder: Aucun résultat trouvé.
|
||||||
loading_placeholder: Searching...
|
loading_placeholder: Recherche en cours...
|
||||||
results_title: Search results
|
results_title: Résultats de recherche
|
||||||
hero:
|
hero:
|
||||||
sub_title: Search for the articles here or browse the categories below.
|
sub_title: Recherchez les articles ici ou parcourez les catégories ci-dessous.
|
||||||
|
|
|
@ -6,7 +6,7 @@ const vue = require('./loaders/vue');
|
||||||
environment.plugins.prepend('VueLoaderPlugin', new VueLoaderPlugin());
|
environment.plugins.prepend('VueLoaderPlugin', new VueLoaderPlugin());
|
||||||
environment.loaders.prepend('vue', vue);
|
environment.loaders.prepend('vue', vue);
|
||||||
|
|
||||||
environment.loaders.append('opus', {
|
environment.loaders.append('opus-ogg', {
|
||||||
test: /encoderWorker\.min\.js$/,
|
test: /encoderWorker\.min\.js$/,
|
||||||
loader: 'file-loader',
|
loader: 'file-loader',
|
||||||
options: {
|
options: {
|
||||||
|
@ -14,6 +14,14 @@ environment.loaders.append('opus', {
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
environment.loaders.append('opus-wav', {
|
||||||
|
test: /waveWorker\.min\.js$/,
|
||||||
|
loader: 'file-loader',
|
||||||
|
options: {
|
||||||
|
name: '[name].[ext]',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
environment.loaders.append('audio', {
|
environment.loaders.append('audio', {
|
||||||
test: /\.(mp3)(\?.*)?$/,
|
test: /\.(mp3)(\?.*)?$/,
|
||||||
loader: 'url-loader',
|
loader: 'url-loader',
|
||||||
|
|
Loading…
Reference in a new issue