From a98666030ba2e228ff2638ef5aa0ce89e7bb7008 Mon Sep 17 00:00:00 2001 From: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> Date: Thu, 23 Jul 2026 18:45:56 +0530 Subject: [PATCH] chore: Calls page UI improvements (#15129) --- .../AssignmentPolicyCard.vue | 7 ++- .../components-next/Calls/CallListItem.vue | 20 +++--- .../components-next/Calls/CallsFilterBar.vue | 42 +++++++++---- .../Campaigns/CampaignCard/CampaignCard.vue | 8 ++- .../ConversationCard/ConversationCard.vue | 4 +- .../components-next/Inbox/InboxCard.vue | 4 +- .../helpers/composeConversationHelper.js | 4 +- .../specs/composeConversationHelper.spec.js | 14 +++++ .../components-next/audio/AudioPlayer.vue | 8 +-- .../captain/assistant/InboxCard.vue | 8 ++- .../components-next/icon/ChannelIcon.vue | 10 +-- .../components-next/icon/provider.js | 20 +++--- .../icon/specs/provider.spec.js | 23 ++++++- .../components-next/message/Message.vue | 5 +- app/javascript/dashboard/helper/inbox.js | 28 ++++++++- .../dashboard/helper/specs/inbox.spec.js | 62 +++++++++++++++++++ .../SearchResultConversationItem.vue | 4 +- .../components/SearchResultMessageItem.vue | 4 +- .../dashboard/calls/pages/CallsIndex.vue | 24 +++---- .../pages/AgentAssignmentEditPage.vue | 16 ++--- .../pages/AgentCapacityEditPage.vue | 24 ++++--- .../pages/components/InboxLinkDialog.vue | 3 +- .../dashboard/settings/inbox/Settings.vue | 8 ++- enterprise/app/finders/call_finder.rb | 2 +- .../views/api/v1/models/_call.json.jbuilder | 2 + .../api/v1/accounts/calls_controller_spec.rb | 1 + theme/icons.js | 20 ++++++ 27 files changed, 283 insertions(+), 92 deletions(-) diff --git a/app/javascript/dashboard/components-next/AssignmentPolicy/AssignmentPolicyCard/AssignmentPolicyCard.vue b/app/javascript/dashboard/components-next/AssignmentPolicy/AssignmentPolicyCard/AssignmentPolicyCard.vue index 45311ece6..e015f682a 100644 --- a/app/javascript/dashboard/components-next/AssignmentPolicy/AssignmentPolicyCard/AssignmentPolicyCard.vue +++ b/app/javascript/dashboard/components-next/AssignmentPolicy/AssignmentPolicyCard/AssignmentPolicyCard.vue @@ -28,7 +28,12 @@ const inboxes = computed(() => { return { name: inbox.name, id: inbox.id, - icon: getInboxIconByType(inbox.channelType, inbox.medium, 'line'), + icon: getInboxIconByType( + inbox.channelType, + inbox.medium, + 'line', + inbox.voiceEnabled + ), }; }); }); diff --git a/app/javascript/dashboard/components-next/Calls/CallListItem.vue b/app/javascript/dashboard/components-next/Calls/CallListItem.vue index dd2b3af37..0a54cab65 100644 --- a/app/javascript/dashboard/components-next/Calls/CallListItem.vue +++ b/app/javascript/dashboard/components-next/Calls/CallListItem.vue @@ -3,6 +3,7 @@ import { computed } from 'vue'; import { useRoute } from 'vue-router'; import { useI18n } from 'vue-i18n'; import { relativeDayTimestamp } from 'shared/helpers/timeHelper'; +import { getInboxVoiceIcon } from 'dashboard/helper/inbox'; import Avatar from 'dashboard/components-next/avatar/Avatar.vue'; import Icon from 'dashboard/components-next/icon/Icon.vue'; import AudioPlayer from 'dashboard/components-next/audio/AudioPlayer.vue'; @@ -60,7 +61,7 @@ const resultLabel = computed(() => { }); const providerIcon = computed(() => - props.call.provider === 'whatsapp' ? 'i-woot-whatsapp' : 'i-lucide-phone' + getInboxVoiceIcon(props.call.inbox.channelType, props.call.inbox.medium) ); const createdAtLabel = computed(() => @@ -150,7 +151,7 @@ const conversationRoute = computed(() => ({