+
diff --git a/app/javascript/dashboard/components-next/input/Input.vue b/app/javascript/dashboard/components-next/input/Input.vue
index ed6d7a20b..6288f7452 100644
--- a/app/javascript/dashboard/components-next/input/Input.vue
+++ b/app/javascript/dashboard/components-next/input/Input.vue
@@ -38,7 +38,7 @@ const messageClass = computed(() => {
case 'error':
return 'text-n-ruby-9 dark:text-n-ruby-9';
case 'success':
- return 'text-green-500 dark:text-green-400';
+ return 'text-n-teal-10 dark:text-n-teal-10';
default:
return 'text-n-slate-11 dark:text-n-slate-11';
}
diff --git a/app/javascript/dashboard/components-next/message/bubbles/Dyte.vue b/app/javascript/dashboard/components-next/message/bubbles/Dyte.vue
index fb0813409..157298d73 100644
--- a/app/javascript/dashboard/components-next/message/bubbles/Dyte.vue
+++ b/app/javascript/dashboard/components-next/message/bubbles/Dyte.vue
@@ -74,7 +74,7 @@ const action = computed(() => ({
diff --git a/app/javascript/dashboard/components/copilot/CopilotContainer.vue b/app/javascript/dashboard/components/copilot/CopilotContainer.vue
index 06cf1db11..bc55509b3 100644
--- a/app/javascript/dashboard/components/copilot/CopilotContainer.vue
+++ b/app/javascript/dashboard/components/copilot/CopilotContainer.vue
@@ -8,7 +8,7 @@ import { FEATURE_FLAGS } from 'dashboard/featureFlags';
defineProps({
conversationInboxType: {
type: String,
- required: true,
+ default: '',
},
});
diff --git a/app/javascript/dashboard/components/index.js b/app/javascript/dashboard/components/index.js
index dffb42914..459a46963 100644
--- a/app/javascript/dashboard/components/index.js
+++ b/app/javascript/dashboard/components/index.js
@@ -15,7 +15,6 @@ import Label from './ui/Label.vue';
import LoadingState from './widgets/LoadingState.vue';
import ModalHeader from './ModalHeader.vue';
import Modal from './Modal.vue';
-import SidemenuIcon from './SidemenuIcon.vue';
import Spinner from 'shared/components/Spinner.vue';
import Tabs from './ui/Tabs/Tabs.vue';
import TabsItem from './ui/Tabs/TabsItem.vue';
@@ -38,7 +37,6 @@ const WootUIKit = {
LoadingState,
Modal,
ModalHeader,
- SidemenuIcon,
Spinner,
Tabs,
TabsItem,
diff --git a/app/javascript/dashboard/components/layout/AvailabilityStatus.vue b/app/javascript/dashboard/components/layout/AvailabilityStatus.vue
deleted file mode 100644
index a4995aee8..000000000
--- a/app/javascript/dashboard/components/layout/AvailabilityStatus.vue
+++ /dev/null
@@ -1,157 +0,0 @@
-
-
-
-
-
-
-
-
-
- {{ status.label }}
-
-
-
-
-
-
-
-
-
- {{ $t('SIDEBAR.SET_AUTO_OFFLINE.TEXT') }}
-
-
-
-
-
-
-
-
diff --git a/app/javascript/dashboard/components/layout/Sidebar.vue b/app/javascript/dashboard/components/layout/Sidebar.vue
deleted file mode 100644
index 4d6bfbb58..000000000
--- a/app/javascript/dashboard/components/layout/Sidebar.vue
+++ /dev/null
@@ -1,246 +0,0 @@
-
-
-
-
-
diff --git a/app/javascript/dashboard/components/layout/config/default-sidebar.js b/app/javascript/dashboard/components/layout/config/default-sidebar.js
deleted file mode 100644
index bbe2c44cd..000000000
--- a/app/javascript/dashboard/components/layout/config/default-sidebar.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import conversations from './sidebarItems/conversations';
-import contacts from './sidebarItems/contacts';
-import reports from './sidebarItems/reports';
-import campaigns from './sidebarItems/campaigns';
-import settings from './sidebarItems/settings';
-import notifications from './sidebarItems/notifications';
-import primaryMenu from './sidebarItems/primaryMenu';
-
-export const getSidebarItems = accountId => ({
- primaryMenu: primaryMenu(accountId),
- secondaryMenu: [
- conversations(accountId),
- contacts(accountId),
- reports(accountId),
- campaigns(accountId),
- settings(accountId),
- notifications(accountId),
- ],
-});
diff --git a/app/javascript/dashboard/components/layout/config/sidebarItems/campaigns.js b/app/javascript/dashboard/components/layout/config/sidebarItems/campaigns.js
deleted file mode 100644
index 9c3196dd6..000000000
--- a/app/javascript/dashboard/components/layout/config/sidebarItems/campaigns.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import { frontendURL } from '../../../../helper/URLHelper';
-
-const campaigns = accountId => ({
- parentNav: 'campaigns',
- routes: ['campaigns_sms_index', 'campaigns_livechat_index'],
- menuItems: [
- {
- icon: 'arrow-swap',
- label: 'LIVE_CHAT',
- key: 'ongoingCampaigns',
- hasSubMenu: false,
- toState: frontendURL(`accounts/${accountId}/campaigns/live_chat`),
- toStateName: 'campaigns_livechat_index',
- },
- {
- key: 'oneOffCampaigns',
- icon: 'sound-source',
- label: 'SMS',
- hasSubMenu: false,
- toState: frontendURL(`accounts/${accountId}/campaigns/sms`),
- toStateName: 'campaigns_sms_index',
- },
- ],
-});
-
-export default campaigns;
diff --git a/app/javascript/dashboard/components/layout/config/sidebarItems/contacts.js b/app/javascript/dashboard/components/layout/config/sidebarItems/contacts.js
deleted file mode 100644
index e5eb204ee..000000000
--- a/app/javascript/dashboard/components/layout/config/sidebarItems/contacts.js
+++ /dev/null
@@ -1,32 +0,0 @@
-import { frontendURL } from '../../../../helper/URLHelper';
-
-const contacts = accountId => ({
- parentNav: 'contacts',
- routes: [
- 'contacts_dashboard_index',
- 'contacts_dashboard_segments_index',
- 'contacts_dashboard_labels_index',
- 'contacts_edit',
- 'contacts_edit_segment',
- 'contacts_edit_label',
- 'contacts_dashboard_active',
- ],
- menuItems: [
- {
- icon: 'contact-card-group',
- label: 'ALL_CONTACTS',
- hasSubMenu: false,
- toState: frontendURL(`accounts/${accountId}/contacts?page=1`),
- toStateName: 'contacts_dashboard_index',
- },
- {
- icon: 'visitor-contacts',
- label: 'ACTIVE',
- hasSubMenu: false,
- toState: frontendURL(`accounts/${accountId}/contacts/active`),
- toStateName: 'contacts_dashboard_active',
- },
- ],
-});
-
-export default contacts;
diff --git a/app/javascript/dashboard/components/layout/config/sidebarItems/conversations.js b/app/javascript/dashboard/components/layout/config/sidebarItems/conversations.js
deleted file mode 100644
index a8302bd58..000000000
--- a/app/javascript/dashboard/components/layout/config/sidebarItems/conversations.js
+++ /dev/null
@@ -1,50 +0,0 @@
-import { frontendURL } from '../../../../helper/URLHelper';
-
-const conversations = accountId => ({
- parentNav: 'conversations',
- routes: [
- 'home',
- 'inbox_dashboard',
- 'inbox_conversation',
- 'conversation_through_inbox',
- 'notifications_dashboard',
- 'label_conversations',
- 'conversations_through_label',
- 'team_conversations',
- 'conversations_through_team',
- 'conversation_mentions',
- 'conversation_through_mentions',
- 'conversation_participating',
- 'conversation_through_participating',
- 'folder_conversations',
- 'conversations_through_folders',
- 'conversation_unattended',
- 'conversation_through_unattended',
- ],
- menuItems: [
- {
- icon: 'chat',
- label: 'ALL_CONVERSATIONS',
- key: 'conversations',
- toState: frontendURL(`accounts/${accountId}/dashboard`),
- toolTip: 'Conversation from all subscribed inboxes',
- toStateName: 'home',
- },
- {
- icon: 'mention',
- label: 'MENTIONED_CONVERSATIONS',
- key: 'conversation_mentions',
- toState: frontendURL(`accounts/${accountId}/mentions/conversations`),
- toStateName: 'conversation_mentions',
- },
- {
- icon: 'mail-unread',
- label: 'UNATTENDED_CONVERSATIONS',
- key: 'conversation_unattended',
- toState: frontendURL(`accounts/${accountId}/unattended/conversations`),
- toStateName: 'conversation_unattended',
- },
- ],
-});
-
-export default conversations;
diff --git a/app/javascript/dashboard/components/layout/config/sidebarItems/notifications.js b/app/javascript/dashboard/components/layout/config/sidebarItems/notifications.js
deleted file mode 100644
index e3b18ebc5..000000000
--- a/app/javascript/dashboard/components/layout/config/sidebarItems/notifications.js
+++ /dev/null
@@ -1,7 +0,0 @@
-const notifications = () => ({
- parentNav: 'notifications',
- routes: ['notifications_index'],
- menuItems: [],
-});
-
-export default notifications;
diff --git a/app/javascript/dashboard/components/layout/config/sidebarItems/primaryMenu.js b/app/javascript/dashboard/components/layout/config/sidebarItems/primaryMenu.js
deleted file mode 100644
index 59de35564..000000000
--- a/app/javascript/dashboard/components/layout/config/sidebarItems/primaryMenu.js
+++ /dev/null
@@ -1,70 +0,0 @@
-import { FEATURE_FLAGS } from '../../../../featureFlags';
-import { frontendURL } from '../../../../helper/URLHelper';
-
-const primaryMenuItems = accountId => [
- {
- icon: 'mail-inbox',
- key: 'inboxView',
- label: 'INBOX_VIEW',
- featureFlag: FEATURE_FLAGS.INBOX_VIEW,
- toState: frontendURL(`accounts/${accountId}/inbox-view`),
- toStateName: 'inbox_view',
- },
- {
- icon: 'chat',
- key: 'conversations',
- label: 'CONVERSATIONS',
- toState: frontendURL(`accounts/${accountId}/dashboard`),
- toStateName: 'home',
- },
- {
- icon: 'captain',
- key: 'captain',
- label: 'CAPTAIN',
- featureFlag: FEATURE_FLAGS.CAPTAIN,
- toState: frontendURL(`accounts/${accountId}/captain/documents`),
- toStateName: 'captain',
- },
- {
- icon: 'book-contacts',
- key: 'contacts',
- label: 'CONTACTS',
- featureFlag: FEATURE_FLAGS.CRM,
- toState: frontendURL(`accounts/${accountId}/contacts`),
- toStateName: 'contacts_dashboard_index',
- },
- {
- icon: 'arrow-trending-lines',
- key: 'reports',
- label: 'REPORTS',
- featureFlag: FEATURE_FLAGS.REPORTS,
- toState: frontendURL(`accounts/${accountId}/reports`),
- toStateName: 'account_overview_reports',
- },
- {
- icon: 'megaphone',
- key: 'campaigns',
- label: 'CAMPAIGNS',
- featureFlag: FEATURE_FLAGS.CAMPAIGNS,
- toState: frontendURL(`accounts/${accountId}/campaigns`),
- toStateName: 'campaigns_ongoing_index',
- },
- {
- icon: 'library',
- key: 'helpcenter',
- label: 'HELP_CENTER.TITLE',
- featureFlag: FEATURE_FLAGS.HELP_CENTER,
- alwaysVisibleOnChatwootInstances: true,
- toState: frontendURL(`accounts/${accountId}/portals/portal_articles_index`),
- toStateName: 'portals_index',
- },
- {
- icon: 'settings',
- key: 'settings',
- label: 'SETTINGS',
- toState: frontendURL(`accounts/${accountId}/settings`),
- toStateName: 'settings_home',
- },
-];
-
-export default primaryMenuItems;
diff --git a/app/javascript/dashboard/components/layout/config/sidebarItems/profileSettings.js b/app/javascript/dashboard/components/layout/config/sidebarItems/profileSettings.js
deleted file mode 100644
index 024b4d3f6..000000000
--- a/app/javascript/dashboard/components/layout/config/sidebarItems/profileSettings.js
+++ /dev/null
@@ -1,7 +0,0 @@
-const profileSettings = () => ({
- parentNav: 'profileSettings',
- routes: ['profile_settings_index'],
- menuItems: [],
-});
-
-export default profileSettings;
diff --git a/app/javascript/dashboard/components/layout/config/sidebarItems/reports.js b/app/javascript/dashboard/components/layout/config/sidebarItems/reports.js
deleted file mode 100644
index f9f00b88d..000000000
--- a/app/javascript/dashboard/components/layout/config/sidebarItems/reports.js
+++ /dev/null
@@ -1,87 +0,0 @@
-import { FEATURE_FLAGS } from '../../../../featureFlags';
-import { frontendURL } from '../../../../helper/URLHelper';
-
-const reports = accountId => ({
- parentNav: 'reports',
- routes: [
- 'account_overview_reports',
- 'conversation_reports',
- 'csat_reports',
- 'bot_reports',
- 'agent_reports',
- 'label_reports',
- 'inbox_reports',
- 'inbox_reports_show',
- 'team_reports',
- 'sla_reports',
- ],
- menuItems: [
- {
- icon: 'arrow-trending-lines',
- label: 'REPORTS_OVERVIEW',
- hasSubMenu: false,
- toState: frontendURL(`accounts/${accountId}/reports/overview`),
- toStateName: 'account_overview_reports',
- },
- {
- icon: 'chat',
- label: 'REPORTS_CONVERSATION',
- hasSubMenu: false,
- toState: frontendURL(`accounts/${accountId}/reports/conversation`),
- toStateName: 'conversation_reports',
- },
- {
- icon: 'emoji',
- label: 'CSAT',
- hasSubMenu: false,
- toState: frontendURL(`accounts/${accountId}/reports/csat`),
- toStateName: 'csat_reports',
- },
- {
- icon: 'bot',
- label: 'REPORTS_BOT',
- hasSubMenu: false,
- featureFlag: FEATURE_FLAGS.RESPONSE_BOT,
- toState: frontendURL(`accounts/${accountId}/reports/bot`),
- toStateName: 'bot_reports',
- },
- {
- icon: 'people',
- label: 'REPORTS_AGENT',
- hasSubMenu: false,
- toState: frontendURL(`accounts/${accountId}/reports/agent`),
- toStateName: 'agent_reports',
- },
- {
- icon: 'tag',
- label: 'REPORTS_LABEL',
- hasSubMenu: false,
- toState: frontendURL(`accounts/${accountId}/reports/label`),
- toStateName: 'label_reports',
- },
- {
- icon: 'mail-inbox-all',
- label: 'REPORTS_INBOX',
- hasSubMenu: false,
- toState: frontendURL(`accounts/${accountId}/reports/inboxes`),
- toStateName: 'inbox_reports',
- },
- {
- icon: 'people-team',
- label: 'REPORTS_TEAM',
- hasSubMenu: false,
- toState: frontendURL(`accounts/${accountId}/reports/teams`),
- toStateName: 'team_reports',
- },
- {
- icon: 'document-list-clock',
- label: 'REPORTS_SLA',
- hasSubMenu: false,
- featureFlag: FEATURE_FLAGS.SLA,
- toState: frontendURL(`accounts/${accountId}/reports/sla`),
- toStateName: 'sla_reports',
- },
- ],
-});
-
-export default reports;
diff --git a/app/javascript/dashboard/components/layout/config/sidebarItems/settings.js b/app/javascript/dashboard/components/layout/config/sidebarItems/settings.js
deleted file mode 100644
index 08526f4d3..000000000
--- a/app/javascript/dashboard/components/layout/config/sidebarItems/settings.js
+++ /dev/null
@@ -1,220 +0,0 @@
-import { FEATURE_FLAGS } from '../../../../featureFlags';
-import { frontendURL } from '../../../../helper/URLHelper';
-
-const settings = accountId => ({
- parentNav: 'settings',
- routes: [
- 'agent_bots',
- 'agent_list',
- 'attributes_list',
- 'automation_list',
- 'auditlogs_list',
- 'billing_settings_index',
- 'canned_list',
- 'general_settings_index',
- 'general_settings',
- 'labels_list',
- 'macros_edit',
- 'macros_new',
- 'macros_wrapper',
- 'settings_applications_integration',
- 'settings_applications_webhook',
- 'settings_applications',
- 'settings_inbox_finish',
- 'settings_inbox_list',
- 'settings_inbox_new',
- 'settings_inbox_show',
- 'settings_inboxes_add_agents',
- 'settings_inboxes_page_channel',
- 'settings_integrations_dashboard_apps',
- 'settings_integrations_integration',
- 'settings_integrations_slack',
- 'settings_integrations_webhook',
- 'settings_integrations',
- 'settings_teams_add_agents',
- 'settings_teams_edit_finish',
- 'settings_teams_edit_members',
- 'settings_teams_edit',
- 'settings_teams_finish',
- 'settings_teams_list',
- 'settings_teams_new',
- 'sla_list',
- 'custom_roles_list',
- ],
- menuItems: [
- {
- icon: 'briefcase',
- label: 'ACCOUNT_SETTINGS',
- hasSubMenu: false,
- meta: {
- permissions: ['administrator'],
- },
- toState: frontendURL(`accounts/${accountId}/settings/general`),
- toStateName: 'general_settings_index',
- },
- {
- icon: 'people',
- label: 'AGENTS',
- hasSubMenu: false,
- meta: {
- permissions: ['administrator'],
- },
- toState: frontendURL(`accounts/${accountId}/settings/agents/list`),
- toStateName: 'agent_list',
- featureFlag: FEATURE_FLAGS.AGENT_MANAGEMENT,
- },
- {
- icon: 'people-team',
- label: 'TEAMS',
- hasSubMenu: false,
- meta: {
- permissions: ['administrator'],
- },
- toState: frontendURL(`accounts/${accountId}/settings/teams/list`),
- toStateName: 'settings_teams_list',
- featureFlag: FEATURE_FLAGS.TEAM_MANAGEMENT,
- },
- {
- icon: 'mail-inbox-all',
- label: 'INBOXES',
- hasSubMenu: false,
- meta: {
- permissions: ['administrator'],
- },
- toState: frontendURL(`accounts/${accountId}/settings/inboxes/list`),
- toStateName: 'settings_inbox_list',
- featureFlag: FEATURE_FLAGS.INBOX_MANAGEMENT,
- },
- {
- icon: 'tag',
- label: 'LABELS',
- hasSubMenu: false,
- meta: {
- permissions: ['administrator'],
- },
- toState: frontendURL(`accounts/${accountId}/settings/labels/list`),
- toStateName: 'labels_list',
- featureFlag: FEATURE_FLAGS.LABELS,
- },
- {
- icon: 'code',
- label: 'CUSTOM_ATTRIBUTES',
- hasSubMenu: false,
- meta: {
- permissions: ['administrator'],
- },
- toState: frontendURL(
- `accounts/${accountId}/settings/custom-attributes/list`
- ),
- toStateName: 'attributes_list',
- featureFlag: FEATURE_FLAGS.CUSTOM_ATTRIBUTES,
- },
- {
- icon: 'automation',
- label: 'AUTOMATION',
- hasSubMenu: false,
- meta: {
- permissions: ['administrator'],
- },
- toState: frontendURL(`accounts/${accountId}/settings/automation/list`),
- toStateName: 'automation_list',
- featureFlag: FEATURE_FLAGS.AUTOMATIONS,
- },
- {
- icon: 'bot',
- label: 'AGENT_BOTS',
- hasSubMenu: false,
- meta: {
- permissions: ['administrator'],
- },
- toState: frontendURL(`accounts/${accountId}/settings/agent-bots`),
- toStateName: 'agent_bots',
- featureFlag: FEATURE_FLAGS.AGENT_BOTS,
- },
- {
- icon: 'flash-settings',
- label: 'MACROS',
- hasSubMenu: false,
- meta: {
- permissions: ['administrator', 'agent'],
- },
- toState: frontendURL(`accounts/${accountId}/settings/macros`),
- toStateName: 'macros_wrapper',
- featureFlag: FEATURE_FLAGS.MACROS,
- },
- {
- icon: 'chat-multiple',
- label: 'CANNED_RESPONSES',
- hasSubMenu: false,
- meta: {
- permissions: ['administrator', 'agent'],
- },
- toState: frontendURL(
- `accounts/${accountId}/settings/canned-response/list`
- ),
- toStateName: 'canned_list',
- featureFlag: FEATURE_FLAGS.CANNED_RESPONSES,
- },
- {
- icon: 'flash-on',
- label: 'INTEGRATIONS',
- hasSubMenu: false,
- meta: {
- permissions: ['administrator'],
- },
- toState: frontendURL(`accounts/${accountId}/settings/integrations`),
- toStateName: 'settings_applications',
- featureFlag: FEATURE_FLAGS.INTEGRATIONS,
- },
- {
- icon: 'key',
- label: 'AUDIT_LOGS',
- hasSubMenu: false,
- meta: {
- permissions: ['administrator'],
- },
- toState: frontendURL(`accounts/${accountId}/settings/audit-logs/list`),
- toStateName: 'auditlogs_list',
- isEnterpriseOnly: true,
- featureFlag: FEATURE_FLAGS.AUDIT_LOGS,
- },
- {
- icon: 'scan-person',
- label: 'CUSTOM_ROLES',
- hasSubMenu: false,
- meta: {
- permissions: ['administrator'],
- },
- toState: frontendURL(`accounts/${accountId}/settings/custom-roles/list`),
- toStateName: 'custom_roles_list',
- isEnterpriseOnly: true,
- beta: true,
- },
- {
- icon: 'document-list-clock',
- label: 'SLA',
- hasSubMenu: false,
- meta: {
- permissions: ['administrator'],
- },
- toState: frontendURL(`accounts/${accountId}/settings/sla/list`),
- toStateName: 'sla_list',
- isEnterpriseOnly: true,
- featureFlag: FEATURE_FLAGS.SLA,
- beta: true,
- },
- {
- icon: 'credit-card-person',
- label: 'BILLING',
- hasSubMenu: false,
- meta: {
- permissions: ['administrator'],
- },
- toState: frontendURL(`accounts/${accountId}/settings/billing`),
- toStateName: 'billing_settings_index',
- showOnlyOnCloud: true,
- },
- ],
-});
-
-export default settings;
diff --git a/app/javascript/dashboard/components/layout/sidebarComponents/AccountContext.vue b/app/javascript/dashboard/components/layout/sidebarComponents/AccountContext.vue
deleted file mode 100644
index dc00ed03d..000000000
--- a/app/javascript/dashboard/components/layout/sidebarComponents/AccountContext.vue
+++ /dev/null
@@ -1,110 +0,0 @@
-
-
-
-
-
- {{ $t('SIDEBAR.CURRENTLY_VIEWING_ACCOUNT') }}
-
- {{ account.name }}
-
-
-
-
-
-
-
-
diff --git a/app/javascript/dashboard/components/layout/sidebarComponents/AccountSelector.vue b/app/javascript/dashboard/components/layout/sidebarComponents/AccountSelector.vue
deleted file mode 100644
index 8ff15ecf1..000000000
--- a/app/javascript/dashboard/components/layout/sidebarComponents/AccountSelector.vue
+++ /dev/null
@@ -1,88 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/javascript/dashboard/components/layout/sidebarComponents/AgentDetails.vue b/app/javascript/dashboard/components/layout/sidebarComponents/AgentDetails.vue
deleted file mode 100644
index bab54d53f..000000000
--- a/app/javascript/dashboard/components/layout/sidebarComponents/AgentDetails.vue
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-
-
-
diff --git a/app/javascript/dashboard/components/layout/sidebarComponents/Logo.vue b/app/javascript/dashboard/components/layout/sidebarComponents/Logo.vue
deleted file mode 100644
index 38615fff0..000000000
--- a/app/javascript/dashboard/components/layout/sidebarComponents/Logo.vue
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/app/javascript/dashboard/components/layout/sidebarComponents/NotificationBell.vue b/app/javascript/dashboard/components/layout/sidebarComponents/NotificationBell.vue
deleted file mode 100644
index d0c53037a..000000000
--- a/app/javascript/dashboard/components/layout/sidebarComponents/NotificationBell.vue
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
-
-
-
-
-
diff --git a/app/javascript/dashboard/components/layout/sidebarComponents/OptionsMenu.vue b/app/javascript/dashboard/components/layout/sidebarComponents/OptionsMenu.vue
deleted file mode 100644
index 03549dad6..000000000
--- a/app/javascript/dashboard/components/layout/sidebarComponents/OptionsMenu.vue
+++ /dev/null
@@ -1,204 +0,0 @@
-
-
-
-
-
-
-
diff --git a/app/javascript/dashboard/components/layout/sidebarComponents/Primary.vue b/app/javascript/dashboard/components/layout/sidebarComponents/Primary.vue
deleted file mode 100644
index 1cbd6a56a..000000000
--- a/app/javascript/dashboard/components/layout/sidebarComponents/Primary.vue
+++ /dev/null
@@ -1,116 +0,0 @@
-
-
-
-
-
diff --git a/app/javascript/dashboard/components/layout/sidebarComponents/PrimaryNavItem.vue b/app/javascript/dashboard/components/layout/sidebarComponents/PrimaryNavItem.vue
deleted file mode 100644
index 2ad2a57b5..000000000
--- a/app/javascript/dashboard/components/layout/sidebarComponents/PrimaryNavItem.vue
+++ /dev/null
@@ -1,148 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- {{ name }}
-
- {{ count }}
-
-
-
-
diff --git a/app/javascript/dashboard/components/layout/sidebarComponents/Secondary.vue b/app/javascript/dashboard/components/layout/sidebarComponents/Secondary.vue
deleted file mode 100644
index c36b6f611..000000000
--- a/app/javascript/dashboard/components/layout/sidebarComponents/Secondary.vue
+++ /dev/null
@@ -1,265 +0,0 @@
-
-
-
-
-
diff --git a/app/javascript/dashboard/components/layout/sidebarComponents/SecondaryChildNavItem.vue b/app/javascript/dashboard/components/layout/sidebarComponents/SecondaryChildNavItem.vue
deleted file mode 100644
index 6f72f11ec..000000000
--- a/app/javascript/dashboard/components/layout/sidebarComponents/SecondaryChildNavItem.vue
+++ /dev/null
@@ -1,132 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ label }}
-
-
- {{ childItemCount }}
-
-
-
-
-
-
-
-
-
diff --git a/app/javascript/dashboard/components/layout/sidebarComponents/SecondaryNavItem.vue b/app/javascript/dashboard/components/layout/sidebarComponents/SecondaryNavItem.vue
deleted file mode 100644
index 6bee69a41..000000000
--- a/app/javascript/dashboard/components/layout/sidebarComponents/SecondaryNavItem.vue
+++ /dev/null
@@ -1,277 +0,0 @@
-
-
-
-
-
-
- {{ $t(`SIDEBAR.${menuItem.label}`) }}
-
-
-
-
-
-
-
- {{ $t(`SIDEBAR.${menuItem.label}`) }}
-
- {{ `${menuItem.count}` }}
-
-
- {{ $t('SIDEBAR.BETA') }}
-
-
-
-
-
-
diff --git a/app/javascript/dashboard/components/layout/sidebarComponents/specs/AccountSelector.spec.js b/app/javascript/dashboard/components/layout/sidebarComponents/specs/AccountSelector.spec.js
deleted file mode 100644
index c819702b0..000000000
--- a/app/javascript/dashboard/components/layout/sidebarComponents/specs/AccountSelector.spec.js
+++ /dev/null
@@ -1,73 +0,0 @@
-import { mount } from '@vue/test-utils';
-import { createStore } from 'vuex';
-import AccountSelector from '../AccountSelector.vue';
-import WootModal from 'dashboard/components/Modal.vue';
-import WootModalHeader from 'dashboard/components/ModalHeader.vue';
-import FluentIcon from 'shared/components/FluentIcon/DashboardIcon.vue';
-
-const store = createStore({
- modules: {
- auth: {
- namespaced: false,
- getters: {
- getCurrentAccountId: () => 1,
- getCurrentUser: () => ({
- accounts: [
- { id: 1, name: 'Chatwoot', role: 'administrator' },
- { id: 2, name: 'GitX', role: 'agent' },
- ],
- }),
- },
- },
- globalConfig: {
- namespaced: true,
- getters: {
- get: () => ({ createNewAccountFromDashboard: false }),
- },
- },
- },
-});
-
-describe('AccountSelector', () => {
- let accountSelector = null;
-
- beforeEach(() => {
- accountSelector = mount(AccountSelector, {
- global: {
- plugins: [store],
- components: {
- 'woot-modal': WootModal,
- 'woot-modal-header': WootModalHeader,
- 'fluent-icon': FluentIcon,
- },
- stubs: {
- // override global stub
- WootModalHeader: false,
- },
- },
- props: { showAccountModal: true },
- });
- });
-
- it('title and sub title exist', () => {
- const headerComponent = accountSelector.findComponent(WootModalHeader);
- const title = headerComponent.find('[data-test-id="modal-header-title"]');
- expect(title.text()).toBe('Switch account');
- const content = headerComponent.find(
- '[data-test-id="modal-header-content"]'
- );
- expect(content.text()).toBe('Select an account from the following list');
- });
-
- it('first account item is checked', () => {
- const selectedAccountCheckmark = accountSelector.find(
- '#account-1 > button > svg'
- );
- expect(selectedAccountCheckmark.exists()).toBe(true);
-
- const otherAccountCheckmark = accountSelector.find(
- '#account-2 > button > svg'
- );
- expect(otherAccountCheckmark.exists()).toBe(true);
- });
-});
diff --git a/app/javascript/dashboard/components/layout/sidebarComponents/specs/AgentDetails.spec.js b/app/javascript/dashboard/components/layout/sidebarComponents/specs/AgentDetails.spec.js
deleted file mode 100644
index 7dd3e775b..000000000
--- a/app/javascript/dashboard/components/layout/sidebarComponents/specs/AgentDetails.spec.js
+++ /dev/null
@@ -1,61 +0,0 @@
-import { shallowMount } from '@vue/test-utils';
-import { createStore } from 'vuex';
-import AgentDetails from '../AgentDetails.vue';
-import Thumbnail from 'dashboard/components/widgets/Thumbnail.vue';
-import NextButton from 'dashboard/components-next/button/Button.vue';
-
-describe('AgentDetails', () => {
- const currentUser = {
- name: 'Neymar Junior',
- avatar_url: '',
- availability_status: 'online',
- };
- const currentRole = 'agent';
- let store = null;
- let agentDetails = null;
-
- const mockTooltipDirective = {
- mounted: (el, binding) => {
- // You can mock the behavior here if necessary
- el.setAttribute('data-tooltip', binding.value || '');
- },
- };
-
- beforeEach(() => {
- store = createStore({
- modules: {
- auth: {
- namespaced: false,
- getters: {
- getCurrentUser: () => currentUser,
- getCurrentRole: () => currentRole,
- getCurrentUserAvailability: () => currentUser.availability_status,
- },
- },
- },
- });
-
- agentDetails = shallowMount(AgentDetails, {
- global: {
- plugins: [store],
- components: {
- Thumbnail,
- NextButton,
- },
- directives: {
- tooltip: mockTooltipDirective, // Mocking the tooltip directive
- },
- stubs: { NextButton: { template: '
' } },
- },
- });
- });
-
- it('shows the correct agent status', () => {
- expect(agentDetails.findComponent(Thumbnail).vm.status).toBe('online');
- });
-
- it('agent thumbnail exists', () => {
- const thumbnailComponent = agentDetails.findComponent(Thumbnail);
- expect(thumbnailComponent.exists()).toBe(true);
- });
-});
diff --git a/app/javascript/dashboard/components/layout/sidebarComponents/specs/NotificationBell.spec.js b/app/javascript/dashboard/components/layout/sidebarComponents/specs/NotificationBell.spec.js
deleted file mode 100644
index 607604d48..000000000
--- a/app/javascript/dashboard/components/layout/sidebarComponents/specs/NotificationBell.spec.js
+++ /dev/null
@@ -1,88 +0,0 @@
-import { shallowMount } from '@vue/test-utils';
-import { createStore } from 'vuex';
-import FluentIcon from 'shared/components/FluentIcon/DashboardIcon.vue';
-import NotificationBell from '../NotificationBell.vue';
-
-const $route = {
- name: 'notifications_index',
-};
-
-describe('notificationBell', () => {
- const accountId = 1;
- const notificationMetadata = { unreadCount: 19 };
- let store = null;
- let actions = null;
- let modules = null;
-
- beforeEach(() => {
- actions = {
- showNotification: vi.fn(),
- };
- modules = {
- auth: {
- namespaced: false,
- getters: {
- getCurrentAccountId: () => accountId,
- },
- },
- notifications: {
- namespaced: false,
- getters: {
- 'notifications/getMeta': () => notificationMetadata,
- },
- },
- };
-
- store = createStore({
- actions,
- modules,
- });
- });
-
- it('it should return unread count 19', () => {
- const wrapper = shallowMount(NotificationBell, {
- global: {
- plugins: [store],
- mocks: {
- $route,
- },
- components: {
- 'fluent-icon': FluentIcon,
- },
- },
- });
- expect(wrapper.vm.unreadCount).toBe('19');
- });
-
- it('it should return unread count 99+', async () => {
- notificationMetadata.unreadCount = 100;
- const wrapper = shallowMount(NotificationBell, {
- global: {
- plugins: [store],
- mocks: {
- $route,
- },
- components: {
- 'fluent-icon': FluentIcon,
- },
- },
- });
- expect(wrapper.vm.unreadCount).toBe('99+');
- });
-
- it('isNotificationPanelActive', async () => {
- const notificationBell = shallowMount(NotificationBell, {
- global: {
- plugins: [store],
- mocks: {
- $route,
- },
- components: {
- 'fluent-icon': FluentIcon,
- },
- },
- });
-
- expect(notificationBell.vm.isNotificationPanelActive).toBe(true);
- });
-});
diff --git a/app/javascript/dashboard/components/layout/specs/AvailabilityStatus.spec.js b/app/javascript/dashboard/components/layout/specs/AvailabilityStatus.spec.js
deleted file mode 100644
index ccff4321a..000000000
--- a/app/javascript/dashboard/components/layout/specs/AvailabilityStatus.spec.js
+++ /dev/null
@@ -1,71 +0,0 @@
-import { mount } from '@vue/test-utils';
-import { createStore } from 'vuex';
-import AvailabilityStatus from '../AvailabilityStatus.vue';
-import NextButton from 'dashboard/components-next/button/Button.vue';
-import WootDropdownItem from 'shared/components/ui/dropdown/DropdownItem.vue';
-import WootDropdownMenu from 'shared/components/ui/dropdown/DropdownMenu.vue';
-import WootDropdownHeader from 'shared/components/ui/dropdown/DropdownHeader.vue';
-import WootDropdownDivider from 'shared/components/ui/dropdown/DropdownDivider.vue';
-import FluentIcon from 'shared/components/FluentIcon/DashboardIcon.vue';
-
-describe('AvailabilityStatus', () => {
- const currentAvailability = 'online';
- const currentAccountId = '1';
- const currentUserAutoOffline = false;
- let store = null;
- let actions = null;
-
- beforeEach(() => {
- actions = {
- updateAvailability: vi.fn(() => Promise.resolve()),
- };
-
- store = createStore({
- modules: {
- auth: {
- namespaced: false,
- getters: {
- getCurrentUserAvailability: () => currentAvailability,
- getCurrentAccountId: () => currentAccountId,
- getCurrentUserAutoOffline: () => currentUserAutoOffline,
- },
- },
- },
- actions,
- });
- });
-
- it('dispatches an action when user changes status', async () => {
- const wrapper = mount(AvailabilityStatus, {
- global: {
- plugins: [store],
- components: {
- NextButton,
- WootDropdownItem,
- WootDropdownMenu,
- WootDropdownHeader,
- WootDropdownDivider,
- FluentIcon,
- },
- stubs: {
- WootSwitch: { template: '
' },
- },
- },
- });
-
- // Ensure that the dropdown menu is opened
- await wrapper.vm.openStatusMenu();
-
- // Simulate the user clicking the 3rd button (offline status)
- const buttons = wrapper.findAll('.status-change--dropdown-button');
- expect(buttons.length).toBeGreaterThan(0); // Ensure buttons exist
-
- await buttons[2].trigger('click');
-
- expect(actions.updateAvailability).toHaveBeenCalledTimes(1);
- expect(actions.updateAvailability.mock.calls[0][1]).toEqual({
- availability: 'offline',
- account_id: currentAccountId,
- });
- });
-});
diff --git a/app/javascript/dashboard/components/specs/SidemenuIcon.spec.js b/app/javascript/dashboard/components/specs/SidemenuIcon.spec.js
deleted file mode 100644
index dc946369c..000000000
--- a/app/javascript/dashboard/components/specs/SidemenuIcon.spec.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import { shallowMount } from '@vue/test-utils';
-import { createStore } from 'vuex';
-import SidemenuIcon from '../SidemenuIcon.vue';
-
-const store = createStore({
- modules: {
- auth: {
- namespaced: false,
- getters: {
- getCurrentAccountId: () => 1,
- },
- },
- accounts: {
- namespaced: true,
- getters: {
- isFeatureEnabledonAccount: () => () => false,
- },
- },
- },
-});
-
-describe('SidemenuIcon', () => {
- test('matches snapshot', () => {
- const wrapper = shallowMount(SidemenuIcon, {
- stubs: { NextButton: { template: '
' } },
- global: { plugins: [store] },
- });
- expect(wrapper.vm).toBeTruthy();
- expect(wrapper.element).toMatchSnapshot();
- });
-});
diff --git a/app/javascript/dashboard/components/specs/__snapshots__/SidemenuIcon.spec.js.snap b/app/javascript/dashboard/components/specs/__snapshots__/SidemenuIcon.spec.js.snap
deleted file mode 100644
index a5ca2af6a..000000000
--- a/app/javascript/dashboard/components/specs/__snapshots__/SidemenuIcon.spec.js.snap
+++ /dev/null
@@ -1,14 +0,0 @@
-// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
-
-exports[`SidemenuIcon > matches snapshot 1`] = `
-
-`;
diff --git a/app/javascript/dashboard/components/table/BaseCell.vue b/app/javascript/dashboard/components/table/BaseCell.vue
index 952337423..ad1e6cf83 100644
--- a/app/javascript/dashboard/components/table/BaseCell.vue
+++ b/app/javascript/dashboard/components/table/BaseCell.vue
@@ -19,6 +19,6 @@ const isRTL = useMapGetter('accounts/isRTL');
{{ content }}
-
---
+
---
diff --git a/app/javascript/dashboard/components/ui/Banner.vue b/app/javascript/dashboard/components/ui/Banner.vue
index 12e292a67..6c71588f7 100644
--- a/app/javascript/dashboard/components/ui/Banner.vue
+++ b/app/javascript/dashboard/components/ui/Banner.vue
@@ -118,13 +118,13 @@ export default {
diff --git a/app/javascript/dashboard/components/widgets/AutomationFileInput.vue b/app/javascript/dashboard/components/widgets/AutomationFileInput.vue
index 1298c1da4..1eff406bf 100644
--- a/app/javascript/dashboard/components/widgets/AutomationFileInput.vue
+++ b/app/javascript/dashboard/components/widgets/AutomationFileInput.vue
@@ -79,13 +79,13 @@ input[type='file'] {
@apply hidden;
}
.input-wrapper {
- @apply flex h-9 bg-white dark:bg-slate-900 py-1 px-2 items-center text-xs cursor-pointer rounded-sm border border-dashed border-woot-100 dark:border-woot-500;
+ @apply flex h-9 bg-n-background py-1 px-2 items-center text-xs cursor-pointer rounded-sm border border-dashed border-n-strong;
}
.success-icon {
- @apply text-green-500 dark:text-green-600 mr-2;
+ @apply text-n-teal-9 mr-2;
}
.error-icon {
- @apply text-red-500 dark:text-red-600 mr-2;
+ @apply text-n-ruby-9 mr-2;
}
.processing {
diff --git a/app/javascript/dashboard/components/widgets/Avatar.vue b/app/javascript/dashboard/components/widgets/Avatar.vue
index 2c7ad01c0..9ccb87bf8 100644
--- a/app/javascript/dashboard/components/widgets/Avatar.vue
+++ b/app/javascript/dashboard/components/widgets/Avatar.vue
@@ -50,6 +50,6 @@ export default {
}
}
.avatar-container {
- @apply flex leading-[100%] font-medium items-center justify-center text-center cursor-default avatar-color dark:dark-avatar-color text-woot-600 dark:text-woot-200;
+ @apply flex leading-[100%] font-medium items-center justify-center text-center cursor-default avatar-color dark:dark-avatar-color text-n-blue-text;
}
diff --git a/app/javascript/dashboard/components/widgets/ChatTypeTabs.vue b/app/javascript/dashboard/components/widgets/ChatTypeTabs.vue
index 26fa7466a..da56b54af 100644
--- a/app/javascript/dashboard/components/widgets/ChatTypeTabs.vue
+++ b/app/javascript/dashboard/components/widgets/ChatTypeTabs.vue
@@ -48,26 +48,17 @@ useKeyboardEvents(keyboardEvents);