Compare commits
3 commits
develop
...
vue3-compa
Author | SHA1 | Date | |
---|---|---|---|
|
3971d97099 | ||
|
00cacd256f | ||
|
bf62fec84c |
31 changed files with 5119 additions and 4699 deletions
|
@ -111,7 +111,7 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import { mixin as clickaway } from 'vue-clickaway';
|
// import { mixin as clickaway } from 'vue-clickaway';
|
||||||
import alertMixin from 'shared/mixins/alertMixin';
|
import alertMixin from 'shared/mixins/alertMixin';
|
||||||
import snoozeTimesMixin from 'dashboard/mixins/conversation/snoozeTimesMixin.js';
|
import snoozeTimesMixin from 'dashboard/mixins/conversation/snoozeTimesMixin.js';
|
||||||
import eventListenerMixins from 'shared/mixins/eventListenerMixins';
|
import eventListenerMixins from 'shared/mixins/eventListenerMixins';
|
||||||
|
@ -140,7 +140,7 @@ export default {
|
||||||
WootDropdownSubMenu,
|
WootDropdownSubMenu,
|
||||||
WootDropdownDivider,
|
WootDropdownDivider,
|
||||||
},
|
},
|
||||||
mixins: [clickaway, alertMixin, eventListenerMixins, snoozeTimesMixin],
|
mixins: [alertMixin, eventListenerMixins, snoozeTimesMixin],
|
||||||
props: { conversationId: { type: [String, Number], required: true } },
|
props: { conversationId: { type: [String, Number], required: true } },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import { mixin as clickaway } from 'vue-clickaway';
|
// import { mixin as clickaway } from 'vue-clickaway';
|
||||||
import WootDropdownItem from 'shared/components/ui/dropdown/DropdownItem';
|
import WootDropdownItem from 'shared/components/ui/dropdown/DropdownItem';
|
||||||
import WootDropdownMenu from 'shared/components/ui/dropdown/DropdownMenu';
|
import WootDropdownMenu from 'shared/components/ui/dropdown/DropdownMenu';
|
||||||
import WootDropdownHeader from 'shared/components/ui/dropdown/DropdownHeader';
|
import WootDropdownHeader from 'shared/components/ui/dropdown/DropdownHeader';
|
||||||
|
@ -41,7 +41,7 @@ export default {
|
||||||
AvailabilityStatusBadge,
|
AvailabilityStatusBadge,
|
||||||
},
|
},
|
||||||
|
|
||||||
mixins: [clickaway],
|
mixins: [],
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -78,7 +78,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mixin as clickaway } from 'vue-clickaway';
|
// import { mixin as clickaway } from 'vue-clickaway';
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import Auth from '../../../api/auth';
|
import Auth from '../../../api/auth';
|
||||||
import WootDropdownItem from 'shared/components/ui/dropdown/DropdownItem';
|
import WootDropdownItem from 'shared/components/ui/dropdown/DropdownItem';
|
||||||
|
@ -91,7 +91,7 @@ export default {
|
||||||
WootDropdownItem,
|
WootDropdownItem,
|
||||||
AvailabilityStatus,
|
AvailabilityStatus,
|
||||||
},
|
},
|
||||||
mixins: [clickaway],
|
mixins: [],
|
||||||
props: {
|
props: {
|
||||||
show: {
|
show: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
|
|
|
@ -18,13 +18,13 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { Chrome } from 'vue-color';
|
import { Chrome } from 'vue-color';
|
||||||
import { mixin as clickaway } from 'vue-clickaway';
|
// import { mixin as clickaway } from 'vue-clickaway';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
Chrome,
|
Chrome,
|
||||||
},
|
},
|
||||||
mixins: [clickaway],
|
mixins: [],
|
||||||
props: {
|
props: {
|
||||||
value: {
|
value: {
|
||||||
type: String,
|
type: String,
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
<script>
|
<script>
|
||||||
import AddLabel from 'shared/components/ui/dropdown/AddLabel';
|
import AddLabel from 'shared/components/ui/dropdown/AddLabel';
|
||||||
import LabelDropdown from 'shared/components/ui/label/LabelDropdown';
|
import LabelDropdown from 'shared/components/ui/label/LabelDropdown';
|
||||||
import { mixin as clickaway } from 'vue-clickaway';
|
// import { mixin as clickaway } from 'vue-clickaway';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
@ -39,7 +39,7 @@ export default {
|
||||||
LabelDropdown,
|
LabelDropdown,
|
||||||
},
|
},
|
||||||
|
|
||||||
mixins: [clickaway],
|
mixins: [],
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
allLabels: {
|
allLabels: {
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import { mixin as clickaway } from 'vue-clickaway';
|
// import { mixin as clickaway } from 'vue-clickaway';
|
||||||
import alertMixin from 'shared/mixins/alertMixin';
|
import alertMixin from 'shared/mixins/alertMixin';
|
||||||
import EmailTranscriptModal from './EmailTranscriptModal';
|
import EmailTranscriptModal from './EmailTranscriptModal';
|
||||||
import ResolveAction from '../../buttons/ResolveAction';
|
import ResolveAction from '../../buttons/ResolveAction';
|
||||||
|
@ -52,7 +52,7 @@ export default {
|
||||||
EmailTranscriptModal,
|
EmailTranscriptModal,
|
||||||
ResolveAction,
|
ResolveAction,
|
||||||
},
|
},
|
||||||
mixins: [alertMixin, clickaway],
|
mixins: [alertMixin],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
showEmailActionsModal: false,
|
showEmailActionsModal: false,
|
||||||
|
|
|
@ -128,7 +128,7 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import { mixin as clickaway } from 'vue-clickaway';
|
// import { mixin as clickaway } from 'vue-clickaway';
|
||||||
import alertMixin from 'shared/mixins/alertMixin';
|
import alertMixin from 'shared/mixins/alertMixin';
|
||||||
|
|
||||||
import EmojiInput from 'shared/components/emoji/EmojiInput';
|
import EmojiInput from 'shared/components/emoji/EmojiInput';
|
||||||
|
@ -174,7 +174,7 @@ export default {
|
||||||
WhatsappTemplates,
|
WhatsappTemplates,
|
||||||
},
|
},
|
||||||
mixins: [
|
mixins: [
|
||||||
clickaway,
|
// clickaway,
|
||||||
inboxMixin,
|
inboxMixin,
|
||||||
uiSettingsMixin,
|
uiSettingsMixin,
|
||||||
alertMixin,
|
alertMixin,
|
||||||
|
|
|
@ -95,14 +95,14 @@
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import Thumbnail from 'dashboard/components/widgets/Thumbnail.vue';
|
import Thumbnail from 'dashboard/components/widgets/Thumbnail.vue';
|
||||||
import Spinner from 'shared/components/Spinner';
|
import Spinner from 'shared/components/Spinner';
|
||||||
import { mixin as clickaway } from 'vue-clickaway';
|
// import { mixin as clickaway } from 'vue-clickaway';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
Thumbnail,
|
Thumbnail,
|
||||||
Spinner,
|
Spinner,
|
||||||
},
|
},
|
||||||
mixins: [clickaway],
|
mixins: [],
|
||||||
props: {
|
props: {
|
||||||
selectedInboxes: {
|
selectedInboxes: {
|
||||||
type: Array,
|
type: Array,
|
||||||
|
|
|
@ -73,11 +73,11 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mixin as clickaway } from 'vue-clickaway';
|
// import { mixin as clickaway } from 'vue-clickaway';
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
mixins: [clickaway],
|
mixins: [],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
query: '',
|
query: '',
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mixin as clickaway } from 'vue-clickaway';
|
// import { mixin as clickaway } from 'vue-clickaway';
|
||||||
import WootDropdownItem from 'shared/components/ui/dropdown/DropdownItem.vue';
|
import WootDropdownItem from 'shared/components/ui/dropdown/DropdownItem.vue';
|
||||||
import WootDropdownMenu from 'shared/components/ui/dropdown/DropdownMenu.vue';
|
import WootDropdownMenu from 'shared/components/ui/dropdown/DropdownMenu.vue';
|
||||||
export default {
|
export default {
|
||||||
|
@ -50,7 +50,7 @@ export default {
|
||||||
WootDropdownItem,
|
WootDropdownItem,
|
||||||
WootDropdownMenu,
|
WootDropdownMenu,
|
||||||
},
|
},
|
||||||
mixins: [clickaway],
|
mixins: [],
|
||||||
props: {
|
props: {
|
||||||
selectedInboxes: {
|
selectedInboxes: {
|
||||||
type: Array,
|
type: Array,
|
||||||
|
|
|
@ -87,11 +87,11 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mixin as clickaway } from 'vue-clickaway';
|
// import { mixin as clickaway } from 'vue-clickaway';
|
||||||
import { SHORTCUT_KEYS } from './constants';
|
import { SHORTCUT_KEYS } from './constants';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
mixins: [clickaway],
|
mixins: [],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
shortcutKeys: SHORTCUT_KEYS,
|
shortcutKeys: SHORTCUT_KEYS,
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { mixin as clickaway } from 'vue-clickaway';
|
// import { mixin as clickaway } from 'vue-clickaway';
|
||||||
|
|
||||||
import WootDropdownItem from 'shared/components/ui/dropdown/DropdownItem';
|
import WootDropdownItem from 'shared/components/ui/dropdown/DropdownItem';
|
||||||
import WootDropdownMenu from 'shared/components/ui/dropdown/DropdownMenu';
|
import WootDropdownMenu from 'shared/components/ui/dropdown/DropdownMenu';
|
||||||
|
@ -50,7 +50,7 @@ export default {
|
||||||
WootDropdownMenu,
|
WootDropdownMenu,
|
||||||
WootDropdownItem,
|
WootDropdownItem,
|
||||||
},
|
},
|
||||||
mixins: [clickaway],
|
mixins: [],
|
||||||
props: {
|
props: {
|
||||||
isOpen: {
|
isOpen: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
|
|
|
@ -1,15 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<section class="contacts-table-wrap">
|
<section class="contacts-table-wrap">
|
||||||
<ve-table
|
|
||||||
:fixed-header="true"
|
|
||||||
max-height="calc(100vh - 11.4rem)"
|
|
||||||
scroll-width="187rem"
|
|
||||||
:columns="columns"
|
|
||||||
:table-data="tableData"
|
|
||||||
:border-around="false"
|
|
||||||
:sort-option="sortOption"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<empty-state
|
<empty-state
|
||||||
v-if="showSearchEmptyState"
|
v-if="showSearchEmptyState"
|
||||||
:title="$t('CONTACTS_PAGE.LIST.404')"
|
:title="$t('CONTACTS_PAGE.LIST.404')"
|
||||||
|
@ -26,8 +16,8 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mixin as clickaway } from 'vue-clickaway';
|
// import { mixin as clickaway } from 'vue-clickaway';
|
||||||
import { VeTable } from 'vue-easytable';
|
// import { VeTable } from 'vue-easytable';
|
||||||
import { getCountryFlag } from 'dashboard/helper/flag';
|
import { getCountryFlag } from 'dashboard/helper/flag';
|
||||||
|
|
||||||
import Spinner from 'shared/components/Spinner.vue';
|
import Spinner from 'shared/components/Spinner.vue';
|
||||||
|
@ -40,9 +30,9 @@ export default {
|
||||||
components: {
|
components: {
|
||||||
EmptyState,
|
EmptyState,
|
||||||
Spinner,
|
Spinner,
|
||||||
VeTable,
|
// VeTable,
|
||||||
},
|
},
|
||||||
mixins: [clickaway, timeMixin],
|
mixins: [timeMixin],
|
||||||
props: {
|
props: {
|
||||||
contacts: {
|
contacts: {
|
||||||
type: Array,
|
type: Array,
|
||||||
|
|
|
@ -138,7 +138,7 @@
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { mixin as clickaway } from 'vue-clickaway';
|
// import { mixin as clickaway } from 'vue-clickaway';
|
||||||
|
|
||||||
import ContactInfoRow from './ContactInfoRow';
|
import ContactInfoRow from './ContactInfoRow';
|
||||||
import Thumbnail from 'dashboard/components/widgets/Thumbnail.vue';
|
import Thumbnail from 'dashboard/components/widgets/Thumbnail.vue';
|
||||||
|
@ -161,7 +161,7 @@ export default {
|
||||||
NewConversation,
|
NewConversation,
|
||||||
ContactMergeModal,
|
ContactMergeModal,
|
||||||
},
|
},
|
||||||
mixins: [alertMixin, adminMixin, clickaway],
|
mixins: [alertMixin, adminMixin],
|
||||||
props: {
|
props: {
|
||||||
contact: {
|
contact: {
|
||||||
type: Object,
|
type: Object,
|
||||||
|
|
|
@ -35,14 +35,14 @@
|
||||||
import CustomAttributeDropDown from './CustomAttributeDropDown.vue';
|
import CustomAttributeDropDown from './CustomAttributeDropDown.vue';
|
||||||
import alertMixin from 'shared/mixins/alertMixin';
|
import alertMixin from 'shared/mixins/alertMixin';
|
||||||
import attributeMixin from 'dashboard/mixins/attributeMixin';
|
import attributeMixin from 'dashboard/mixins/attributeMixin';
|
||||||
import { mixin as clickaway } from 'vue-clickaway';
|
// import { mixin as clickaway } from 'vue-clickaway';
|
||||||
import { BUS_EVENTS } from 'shared/constants/busEvents';
|
import { BUS_EVENTS } from 'shared/constants/busEvents';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
CustomAttributeDropDown,
|
CustomAttributeDropDown,
|
||||||
},
|
},
|
||||||
mixins: [clickaway, alertMixin, attributeMixin],
|
mixins: [alertMixin, attributeMixin],
|
||||||
props: {
|
props: {
|
||||||
attributeType: {
|
attributeType: {
|
||||||
type: String,
|
type: String,
|
||||||
|
|
|
@ -46,7 +46,7 @@ import { mapGetters } from 'vuex';
|
||||||
import Spinner from 'shared/components/Spinner';
|
import Spinner from 'shared/components/Spinner';
|
||||||
import LabelDropdown from 'shared/components/ui/label/LabelDropdown';
|
import LabelDropdown from 'shared/components/ui/label/LabelDropdown';
|
||||||
import AddLabel from 'shared/components/ui/dropdown/AddLabel';
|
import AddLabel from 'shared/components/ui/dropdown/AddLabel';
|
||||||
import { mixin as clickaway } from 'vue-clickaway';
|
// import { mixin as clickaway } from 'vue-clickaway';
|
||||||
import conversationLabelMixin from 'dashboard/mixins/conversation/labelMixin';
|
import conversationLabelMixin from 'dashboard/mixins/conversation/labelMixin';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
@ -56,7 +56,7 @@ export default {
|
||||||
AddLabel,
|
AddLabel,
|
||||||
},
|
},
|
||||||
|
|
||||||
mixins: [clickaway, conversationLabelMixin],
|
mixins: [conversationLabelMixin],
|
||||||
props: {
|
props: {
|
||||||
conversationId: {
|
conversationId: {
|
||||||
type: Number,
|
type: Number,
|
||||||
|
|
|
@ -54,7 +54,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mixin as clickaway } from 'vue-clickaway';
|
// import { mixin as clickaway } from 'vue-clickaway';
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import timeMixin from '../../../../mixins/time';
|
import timeMixin from '../../../../mixins/time';
|
||||||
import ResultItem from './ResultItem';
|
import ResultItem from './ResultItem';
|
||||||
|
@ -74,7 +74,7 @@ export default {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
mixins: [timeMixin, messageFormatterMixin, clickaway],
|
mixins: [timeMixin, messageFormatterMixin],
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
isOnExpandedLayout: {
|
isOnExpandedLayout: {
|
||||||
|
|
|
@ -92,7 +92,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mixin as clickaway } from 'vue-clickaway';
|
// import { mixin as clickaway } from 'vue-clickaway';
|
||||||
|
|
||||||
import WootDropdownItem from 'shared/components/ui/dropdown/DropdownItem.vue';
|
import WootDropdownItem from 'shared/components/ui/dropdown/DropdownItem.vue';
|
||||||
import WootDropdownMenu from 'shared/components/ui/dropdown/DropdownMenu.vue';
|
import WootDropdownMenu from 'shared/components/ui/dropdown/DropdownMenu.vue';
|
||||||
|
@ -103,7 +103,7 @@ export default {
|
||||||
WootDropdownItem,
|
WootDropdownItem,
|
||||||
WootDropdownMenu,
|
WootDropdownMenu,
|
||||||
},
|
},
|
||||||
mixins: [clickaway],
|
mixins: [],
|
||||||
props: {
|
props: {
|
||||||
headerTitle: {
|
headerTitle: {
|
||||||
type: String,
|
type: String,
|
||||||
|
|
|
@ -40,13 +40,13 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mixin as clickaway } from 'vue-clickaway';
|
// import { mixin as clickaway } from 'vue-clickaway';
|
||||||
import PortalSwitch from './PortalSwitch.vue';
|
import PortalSwitch from './PortalSwitch.vue';
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
PortalSwitch,
|
PortalSwitch,
|
||||||
},
|
},
|
||||||
mixins: [clickaway],
|
mixins: [],
|
||||||
props: {
|
props: {
|
||||||
portals: {
|
portals: {
|
||||||
type: Array,
|
type: Array,
|
||||||
|
|
|
@ -100,7 +100,7 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import { mixin as clickaway } from 'vue-clickaway';
|
// import { mixin as clickaway } from 'vue-clickaway';
|
||||||
|
|
||||||
import NotificationPanelList from './NotificationPanelList';
|
import NotificationPanelList from './NotificationPanelList';
|
||||||
|
|
||||||
|
@ -108,7 +108,7 @@ export default {
|
||||||
components: {
|
components: {
|
||||||
NotificationPanelList,
|
NotificationPanelList,
|
||||||
},
|
},
|
||||||
mixins: [clickaway],
|
mixins: [],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
pageSize: 15,
|
pageSize: 15,
|
||||||
|
|
|
@ -1,13 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<section class="campaigns-table-wrap">
|
<section class="campaigns-table-wrap">
|
||||||
<empty-state v-if="showEmptyResult" :title="emptyMessage" />
|
<empty-state v-if="showEmptyResult" :title="emptyMessage" />
|
||||||
<ve-table
|
|
||||||
v-else
|
|
||||||
:columns="columns"
|
|
||||||
scroll-width="190rem"
|
|
||||||
:table-data="tableData"
|
|
||||||
:border-around="true"
|
|
||||||
/>
|
|
||||||
<div v-if="isLoading" class="campaign--loader">
|
<div v-if="isLoading" class="campaign--loader">
|
||||||
<spinner />
|
<spinner />
|
||||||
<span>{{ $t('CAMPAIGN.LIST.LOADING_MESSAGE') }}</span>
|
<span>{{ $t('CAMPAIGN.LIST.LOADING_MESSAGE') }}</span>
|
||||||
|
@ -16,8 +10,8 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mixin as clickaway } from 'vue-clickaway';
|
// import { mixin as clickaway } from 'vue-clickaway';
|
||||||
import { VeTable } from 'vue-easytable';
|
// import { VeTable } from 'vue-easytable';
|
||||||
import Spinner from 'shared/components/Spinner.vue';
|
import Spinner from 'shared/components/Spinner.vue';
|
||||||
import Label from 'dashboard/components/ui/Label';
|
import Label from 'dashboard/components/ui/Label';
|
||||||
import EmptyState from 'dashboard/components/widgets/EmptyState.vue';
|
import EmptyState from 'dashboard/components/widgets/EmptyState.vue';
|
||||||
|
@ -32,10 +26,10 @@ export default {
|
||||||
components: {
|
components: {
|
||||||
EmptyState,
|
EmptyState,
|
||||||
Spinner,
|
Spinner,
|
||||||
VeTable,
|
// VeTable,
|
||||||
},
|
},
|
||||||
|
|
||||||
mixins: [clickaway, timeMixin, campaignMixin, messageFormatterMixin],
|
mixins: [timeMixin, campaignMixin, messageFormatterMixin],
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
campaigns: {
|
campaigns: {
|
||||||
|
|
|
@ -1,27 +1,12 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="csat--table-container">
|
<div class="csat--table-container">
|
||||||
<ve-table
|
|
||||||
max-height="calc(100vh - 35rem)"
|
|
||||||
:fixed-header="true"
|
|
||||||
:columns="columns"
|
|
||||||
:table-data="tableData"
|
|
||||||
/>
|
|
||||||
<div v-show="!tableData.length" class="csat--empty-records">
|
<div v-show="!tableData.length" class="csat--empty-records">
|
||||||
{{ $t('CSAT_REPORTS.NO_RECORDS') }}
|
{{ $t('CSAT_REPORTS.NO_RECORDS') }}
|
||||||
</div>
|
</div>
|
||||||
<div v-if="metrics.totalResponseCount" class="table-pagination">
|
|
||||||
<ve-pagination
|
|
||||||
:total="metrics.totalResponseCount"
|
|
||||||
:page-index="pageIndex"
|
|
||||||
:page-size="25"
|
|
||||||
:page-size-option="[25]"
|
|
||||||
@on-page-number-change="onPageNumberChange"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { VeTable, VePagination } from 'vue-easytable';
|
// import { VeTable, VePagination } from 'vue-easytable';
|
||||||
import UserAvatarWithName from 'dashboard/components/widgets/UserAvatarWithName';
|
import UserAvatarWithName from 'dashboard/components/widgets/UserAvatarWithName';
|
||||||
import { CSAT_RATINGS } from 'shared/constants/messages';
|
import { CSAT_RATINGS } from 'shared/constants/messages';
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
|
@ -29,8 +14,8 @@ import timeMixin from 'dashboard/mixins/time';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
VeTable,
|
// VeTable,
|
||||||
VePagination,
|
// VePagination,
|
||||||
},
|
},
|
||||||
mixins: [timeMixin],
|
mixins: [timeMixin],
|
||||||
props: {
|
props: {
|
||||||
|
|
|
@ -1,11 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="agent-table-container">
|
<div class="agent-table-container">
|
||||||
<ve-table
|
|
||||||
max-height="calc(100vh - 35rem)"
|
|
||||||
:fixed-header="true"
|
|
||||||
:columns="columns"
|
|
||||||
:table-data="tableData"
|
|
||||||
/>
|
|
||||||
<div v-if="isLoading" class="agents-loader">
|
<div v-if="isLoading" class="agents-loader">
|
||||||
<spinner />
|
<spinner />
|
||||||
<span>{{
|
<span>{{
|
||||||
|
@ -16,20 +10,12 @@
|
||||||
v-else-if="!isLoading && !agentMetrics.length"
|
v-else-if="!isLoading && !agentMetrics.length"
|
||||||
:title="$t('OVERVIEW_REPORTS.AGENT_CONVERSATIONS.NO_AGENTS')"
|
:title="$t('OVERVIEW_REPORTS.AGENT_CONVERSATIONS.NO_AGENTS')"
|
||||||
/>
|
/>
|
||||||
<div v-if="agentMetrics.length > 0" class="table-pagination">
|
<div v-if="agentMetrics.length > 0" class="table-pagination" />
|
||||||
<ve-pagination
|
|
||||||
:total="agents.length"
|
|
||||||
:page-index="pageIndex"
|
|
||||||
:page-size="25"
|
|
||||||
:page-size-option="[25]"
|
|
||||||
@on-page-number-change="onPageNumberChange"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { VeTable, VePagination } from 'vue-easytable';
|
// import { VeTable, VePagination } from 'vue-easytable';
|
||||||
import Spinner from 'shared/components/Spinner.vue';
|
import Spinner from 'shared/components/Spinner.vue';
|
||||||
import EmptyState from 'dashboard/components/widgets/EmptyState.vue';
|
import EmptyState from 'dashboard/components/widgets/EmptyState.vue';
|
||||||
import Thumbnail from 'dashboard/components/widgets/Thumbnail.vue';
|
import Thumbnail from 'dashboard/components/widgets/Thumbnail.vue';
|
||||||
|
@ -39,8 +25,8 @@ export default {
|
||||||
components: {
|
components: {
|
||||||
EmptyState,
|
EmptyState,
|
||||||
Spinner,
|
Spinner,
|
||||||
VeTable,
|
// VeTable,
|
||||||
VePagination,
|
// VePagination,
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
agents: {
|
agents: {
|
||||||
|
|
|
@ -30,7 +30,7 @@ import router, { initalizeRouter } from '../dashboard/routes';
|
||||||
import store from '../dashboard/store';
|
import store from '../dashboard/store';
|
||||||
import constants from '../dashboard/constants';
|
import constants from '../dashboard/constants';
|
||||||
import * as Sentry from '@sentry/vue';
|
import * as Sentry from '@sentry/vue';
|
||||||
import 'vue-easytable/libs/theme-default/index.css';
|
// import 'vue-easytable/libs/theme-default/index.css';
|
||||||
import { Integrations } from '@sentry/tracing';
|
import { Integrations } from '@sentry/tracing';
|
||||||
import posthog from 'posthog-js';
|
import posthog from 'posthog-js';
|
||||||
import {
|
import {
|
||||||
|
|
|
@ -60,13 +60,13 @@
|
||||||
<script>
|
<script>
|
||||||
import Thumbnail from 'dashboard/components/widgets/Thumbnail.vue';
|
import Thumbnail from 'dashboard/components/widgets/Thumbnail.vue';
|
||||||
import MultiselectDropdownItems from 'shared/components/ui/MultiselectDropdownItems';
|
import MultiselectDropdownItems from 'shared/components/ui/MultiselectDropdownItems';
|
||||||
import { mixin as clickaway } from 'vue-clickaway';
|
// import { mixin as clickaway } from 'vue-clickaway';
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
Thumbnail,
|
Thumbnail,
|
||||||
MultiselectDropdownItems,
|
MultiselectDropdownItems,
|
||||||
},
|
},
|
||||||
mixins: [clickaway],
|
mixins: [],
|
||||||
props: {
|
props: {
|
||||||
options: {
|
options: {
|
||||||
type: Array,
|
type: Array,
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import { mixin as clickaway } from 'vue-clickaway';
|
// import { mixin as clickaway } from 'vue-clickaway';
|
||||||
|
|
||||||
import ChatAttachmentButton from 'widget/components/ChatAttachment.vue';
|
import ChatAttachmentButton from 'widget/components/ChatAttachment.vue';
|
||||||
import ChatSendButton from 'widget/components/ChatSendButton.vue';
|
import ChatSendButton from 'widget/components/ChatSendButton.vue';
|
||||||
|
@ -67,7 +67,7 @@ export default {
|
||||||
FluentIcon,
|
FluentIcon,
|
||||||
ResizableTextArea,
|
ResizableTextArea,
|
||||||
},
|
},
|
||||||
mixins: [clickaway, configMixin, darkModeMixin],
|
mixins: [configMixin, darkModeMixin],
|
||||||
props: {
|
props: {
|
||||||
onSendMessage: {
|
onSendMessage: {
|
||||||
type: Function,
|
type: Function,
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
:show-popout-button="appConfig.showPopoutButton"
|
:show-popout-button="appConfig.showPopoutButton"
|
||||||
/>
|
/>
|
||||||
<chat-header
|
<chat-header
|
||||||
v-if="isHeaderCollapsed"
|
v-else-if="isHeaderCollapsed"
|
||||||
:title="channelConfig.websiteName"
|
:title="channelConfig.websiteName"
|
||||||
:avatar-url="channelConfig.avatarUrl"
|
:avatar-url="channelConfig.avatarUrl"
|
||||||
:show-popout-button="appConfig.showPopoutButton"
|
:show-popout-button="appConfig.showPopoutButton"
|
||||||
|
|
|
@ -2,7 +2,13 @@ const { environment } = require('@rails/webpacker');
|
||||||
const { VueLoaderPlugin } = require('vue-loader');
|
const { VueLoaderPlugin } = require('vue-loader');
|
||||||
const resolve = require('./resolve');
|
const resolve = require('./resolve');
|
||||||
const vue = require('./loaders/vue');
|
const vue = require('./loaders/vue');
|
||||||
|
environment.config.merge({
|
||||||
|
resolve: {
|
||||||
|
alias: {
|
||||||
|
vue: '@vue/compat',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
environment.plugins.prepend('VueLoaderPlugin', new VueLoaderPlugin());
|
environment.plugins.prepend('VueLoaderPlugin', new VueLoaderPlugin());
|
||||||
environment.loaders.prepend('vue', vue);
|
environment.loaders.prepend('vue', vue);
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,15 @@
|
||||||
module.exports = {
|
module.exports = {
|
||||||
test: /\.vue(\.erb)?$/,
|
test: /\.vue(\.erb)?$/,
|
||||||
use: [{
|
use: [
|
||||||
loader: 'vue-loader'
|
{
|
||||||
}]
|
loader: 'vue-loader',
|
||||||
}
|
options: {
|
||||||
|
compilerOptions: {
|
||||||
|
compatConfig: {
|
||||||
|
MODE: 2,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
|
@ -53,18 +53,16 @@
|
||||||
"url-loader": "^2.0.0",
|
"url-loader": "^2.0.0",
|
||||||
"v-tooltip": "~2.1.3",
|
"v-tooltip": "~2.1.3",
|
||||||
"videojs-record": "^4.5.0",
|
"videojs-record": "^4.5.0",
|
||||||
"vue": "2.6.12",
|
"vue": "^3.1.0",
|
||||||
|
"@vue/compat": "^3.1.0",
|
||||||
"vue-chartjs": "3.5.1",
|
"vue-chartjs": "3.5.1",
|
||||||
"vue-clickaway": "~2.1.0",
|
|
||||||
"vue-color": "2.8.1",
|
"vue-color": "2.8.1",
|
||||||
"vue-dompurify-html": "^2.5.2",
|
"vue-dompurify-html": "^2.5.2",
|
||||||
"vue-easytable": "2.5.5",
|
|
||||||
"vue-i18n": "8.24.3",
|
"vue-i18n": "8.24.3",
|
||||||
"vue-letter": "^0.1.3",
|
"vue-letter": "^0.1.3",
|
||||||
"vue-loader": "15.9.6",
|
"vue-loader": "16.0.0",
|
||||||
"vue-multiselect": "~2.1.6",
|
"vue-multiselect": "~2.1.6",
|
||||||
"vue-router": "~3.5.2",
|
"vue-router": "~3.5.2",
|
||||||
"vue-template-compiler": "2.6.12",
|
|
||||||
"vue-upload-component": "2.8.22",
|
"vue-upload-component": "2.8.22",
|
||||||
"vue2-datepicker": "^3.9.1",
|
"vue2-datepicker": "^3.9.1",
|
||||||
"vuedraggable": "^2.24.3",
|
"vuedraggable": "^2.24.3",
|
||||||
|
@ -74,6 +72,7 @@
|
||||||
"wavesurfer.js": "^6.0.4"
|
"wavesurfer.js": "^6.0.4"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@vue/compiler-sfc": "^3.1.0",
|
||||||
"@babel/core": "7.13.16",
|
"@babel/core": "7.13.16",
|
||||||
"@babel/plugin-proposal-class-properties": "7.13.0",
|
"@babel/plugin-proposal-class-properties": "7.13.0",
|
||||||
"@babel/preset-env": "7.13.15",
|
"@babel/preset-env": "7.13.15",
|
||||||
|
|
Loading…
Reference in a new issue