diff --git a/app/javascript/dashboard/components-next/Inbox/InboxCard.vue b/app/javascript/dashboard/components-next/Inbox/InboxCard.vue index 79a451404..90cc1ff53 100644 --- a/app/javascript/dashboard/components-next/Inbox/InboxCard.vue +++ b/app/javascript/dashboard/components-next/Inbox/InboxCard.vue @@ -63,11 +63,12 @@ const lastActivityAt = computed(() => { }); const menuItems = computed(() => [ - { key: 'delete', label: t('INBOX.MENU_ITEM.DELETE') }, { key: isUnread.value ? 'mark_as_read' : 'mark_as_unread', + icon: isUnread.value ? 'mail' : 'mail-unread', label: t(`INBOX.MENU_ITEM.MARK_AS_${isUnread.value ? 'READ' : 'UNREAD'}`), }, + { key: 'delete', icon: 'delete', label: t('INBOX.MENU_ITEM.DELETE') }, ]); const messageClasses = computed(() => ({ diff --git a/app/javascript/dashboard/components/app/UpgradeBanner.vue b/app/javascript/dashboard/components/app/UpgradeBanner.vue deleted file mode 100644 index d41ce3438..000000000 --- a/app/javascript/dashboard/components/app/UpgradeBanner.vue +++ /dev/null @@ -1,94 +0,0 @@ - - - - diff --git a/app/javascript/dashboard/components/copilot/CopilotContainer.vue b/app/javascript/dashboard/components/copilot/CopilotContainer.vue index 41ffa6b61..da0e69492 100644 --- a/app/javascript/dashboard/components/copilot/CopilotContainer.vue +++ b/app/javascript/dashboard/components/copilot/CopilotContainer.vue @@ -4,6 +4,7 @@ import { useStore } from 'dashboard/composables/store'; import Copilot from 'dashboard/components-next/copilot/Copilot.vue'; import { useMapGetter } from 'dashboard/composables/store'; import { useUISettings } from 'dashboard/composables/useUISettings'; +import { useConfig } from 'dashboard/composables/useConfig'; import { useWindowSize } from '@vueuse/core'; import { vOnClickOutside } from '@vueuse/components'; import { FEATURE_FLAGS } from 'dashboard/featureFlags'; @@ -18,6 +19,7 @@ defineProps({ const store = useStore(); const { uiSettings, updateUISettings } = useUISettings(); +const { isEnterprise } = useConfig(); const { width: windowWidth } = useWindowSize(); const currentUser = useMapGetter('getCurrentUser'); @@ -82,6 +84,9 @@ const setAssistant = async assistant => { }; const shouldShowCopilotPanel = computed(() => { + if (!isEnterprise) { + return false; + } const isCaptainEnabled = isFeatureEnabledonAccount.value( currentAccountId.value, FEATURE_FLAGS.CAPTAIN @@ -113,7 +118,9 @@ const sendMessage = async message => { }; onMounted(() => { - store.dispatch('captainAssistants/get'); + if (isEnterprise) { + store.dispatch('captainAssistants/get'); + } }); diff --git a/app/javascript/dashboard/components/widgets/InboxName.vue b/app/javascript/dashboard/components/widgets/InboxName.vue index 693162f95..cf48b0837 100644 --- a/app/javascript/dashboard/components/widgets/InboxName.vue +++ b/app/javascript/dashboard/components/widgets/InboxName.vue @@ -19,14 +19,14 @@ export default { diff --git a/app/javascript/dashboard/components/widgets/conversation/ConversationCard.vue b/app/javascript/dashboard/components/widgets/conversation/ConversationCard.vue index 30e99ca9d..62a0c41c0 100644 --- a/app/javascript/dashboard/components/widgets/conversation/ConversationCard.vue +++ b/app/javascript/dashboard/components/widgets/conversation/ConversationCard.vue @@ -68,6 +68,10 @@ export default { type: Boolean, default: false, }, + allowedContextMenuOptions: { + type: Array, + default: () => [], + }, }, emits: [ 'contextMenuToggle', @@ -151,11 +155,9 @@ export default { hasSlaPolicyId() { return this.chat?.sla_policy_id; }, - }, - methods: { - onCardClick(e) { + conversationPath() { const { activeInbox, chat } = this; - const path = frontendURL( + return frontendURL( conversationUrl({ accountId: this.accountId, activeInbox, @@ -166,18 +168,26 @@ export default { conversationType: this.conversationType, }) ); + }, + }, + methods: { + onCardClick(e) { + const path = this.conversationPath; + if (!path) return; + // Handle Ctrl/Cmd + Click for new tab if (e.metaKey || e.ctrlKey) { + e.preventDefault(); window.open( - window.chatwootConfig.hostURL + path, + `${window.chatwootConfig.hostURL}${path}`, '_blank', - 'noopener noreferrer nofollow' + 'noopener,noreferrer' ); return; } - if (this.isActiveChat) { - return; - } + + // Skip if already active + if (this.isActiveChat) return; router.push({ path }); }, @@ -289,17 +299,21 @@ export default {
-
- -
+
+ +
{{ assignee.name }} - +

diff --git a/app/javascript/dashboard/components/widgets/conversation/contextMenu/Index.vue b/app/javascript/dashboard/components/widgets/conversation/contextMenu/Index.vue index 6c788bbd2..a6f79500a 100644 --- a/app/javascript/dashboard/components/widgets/conversation/contextMenu/Index.vue +++ b/app/javascript/dashboard/components/widgets/conversation/contextMenu/Index.vue @@ -1,5 +1,8 @@