From add33d032c48c6dc8e5c99da1d9ff966a8af8cd7 Mon Sep 17 00:00:00 2001 From: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> Date: Tue, 10 Jan 2023 11:35:56 +0530 Subject: [PATCH] feat: Adds automation view for assigning an agent (#6131) * feat: Adds automation view for assigning an agent Co-authored-by: Tejaswini Chile Co-authored-by: Muhsin Keloth Co-authored-by: Pranav Raj S --- .../dashboard/helper/automationHelper.js | 11 +++++----- .../mixins/automations/methodsMixin.js | 4 ++-- .../settings/automation/AddAutomationRule.vue | 2 +- .../settings/automation/constants.js | 20 +++++++++++++++++++ .../mixins/specs/automationHelper.spec.js | 2 +- .../mixins/specs/automationMixin.spec.js | 8 +++++++- .../concerns/activity_message_handler.rb | 2 ++ 7 files changed, 39 insertions(+), 10 deletions(-) diff --git a/app/javascript/dashboard/helper/automationHelper.js b/app/javascript/dashboard/helper/automationHelper.js index 715a11294..6bafb6b45 100644 --- a/app/javascript/dashboard/helper/automationHelper.js +++ b/app/javascript/dashboard/helper/automationHelper.js @@ -97,8 +97,9 @@ export const generateConditionOptions = (options, key = 'id') => { }); }; -export const getActionOptions = ({ teams, labels, type }) => { +export const getActionOptions = ({ agents, teams, labels, type }) => { const actionsMap = { + assign_agent: agents, assign_team: teams, send_email_to_team: teams, add_label: generateConditionOptions(labels, 'title'), @@ -178,7 +179,7 @@ export const getDefaultConditions = eventName => { export const getDefaultActions = () => { return [ { - action_name: 'assign_team', + action_name: 'assign_agent', action_params: [], }, ]; @@ -213,7 +214,7 @@ export const isCustomAttribute = (attrs, key) => { export const generateCustomAttributes = ( conversationAttributes = [], - contactAttribtues = [], + contactAttributes = [], conversationlabel, contactlabel ) => { @@ -228,14 +229,14 @@ export const generateCustomAttributes = ( ...conversationAttributes ); } - if (contactAttribtues.length) { + if (contactAttributes.length) { customAttributes.push( { key: `contact_custom_attribute`, name: contactlabel, disabled: true, }, - ...contactAttribtues + ...contactAttributes ); } return customAttributes; diff --git a/app/javascript/dashboard/mixins/automations/methodsMixin.js b/app/javascript/dashboard/mixins/automations/methodsMixin.js index ac9dddd06..1387868c5 100644 --- a/app/javascript/dashboard/mixins/automations/methodsMixin.js +++ b/app/javascript/dashboard/mixins/automations/methodsMixin.js @@ -250,8 +250,8 @@ export default { }; }, getActionDropdownValues(type) { - const { labels, teams } = this; - return getActionOptions({ labels, teams, type }); + const { agents, labels, teams } = this; + return getActionOptions({ agents, labels, teams, type }); }, manifestCustomAttributes() { const conversationCustomAttributesRaw = this.$store.getters[ diff --git a/app/javascript/dashboard/routes/dashboard/settings/automation/AddAutomationRule.vue b/app/javascript/dashboard/routes/dashboard/settings/automation/AddAutomationRule.vue index 8b5a13585..e0af07c04 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/automation/AddAutomationRule.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/automation/AddAutomationRule.vue @@ -187,7 +187,7 @@ export default { ], actions: [ { - action_name: 'assign_team', + action_name: 'assign_agent', action_params: [], }, ], diff --git a/app/javascript/dashboard/routes/dashboard/settings/automation/constants.js b/app/javascript/dashboard/routes/dashboard/settings/automation/constants.js index 62606ff13..260288e8b 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/automation/constants.js +++ b/app/javascript/dashboard/routes/dashboard/settings/automation/constants.js @@ -30,6 +30,11 @@ export const AUTOMATIONS = { }, ], actions: [ + { + key: 'assign_agent', + name: 'Assign to agent', + attributeI18nKey: 'ASSIGN_AGENT', + }, { key: 'assign_team', name: 'Assign a team', @@ -129,6 +134,11 @@ export const AUTOMATIONS = { }, ], actions: [ + { + key: 'assign_agent', + name: 'Assign to agent', + attributeI18nKey: 'ASSIGN_AGENT', + }, { key: 'assign_team', name: 'Assign a team', @@ -241,6 +251,11 @@ export const AUTOMATIONS = { }, ], actions: [ + { + key: 'assign_agent', + name: 'Assign to agent', + attributeI18nKey: 'ASSIGN_AGENT', + }, { key: 'assign_team', name: 'Assign a team', @@ -311,6 +326,11 @@ export const AUTOMATION_RULE_EVENTS = [ ]; export const AUTOMATION_ACTION_TYPES = [ + { + key: 'assign_agent', + label: 'Assign to agent', + inputType: 'search_select', + }, { key: 'assign_team', label: 'Assign a team', diff --git a/app/javascript/shared/mixins/specs/automationHelper.spec.js b/app/javascript/shared/mixins/specs/automationHelper.spec.js index 468f22d96..481613323 100644 --- a/app/javascript/shared/mixins/specs/automationHelper.spec.js +++ b/app/javascript/shared/mixins/specs/automationHelper.spec.js @@ -214,7 +214,7 @@ describe('automationMethodsMixin', () => { it('getDefaultActions returns the resp default action model', () => { const genericActionModel = [ { - action_name: 'assign_team', + action_name: 'assign_agent', action_params: [], }, ]; diff --git a/app/javascript/shared/mixins/specs/automationMixin.spec.js b/app/javascript/shared/mixins/specs/automationMixin.spec.js index e0f72c0d3..daf2121a0 100644 --- a/app/javascript/shared/mixins/specs/automationMixin.spec.js +++ b/app/javascript/shared/mixins/specs/automationMixin.spec.js @@ -209,7 +209,7 @@ describe('automationMethodsMixin', () => { it('appendNewAction appends a new condition to the automation data property', () => { const action = { - action_name: 'assign_team', + action_name: 'assign_agent', action_params: [], }; const data = () => { @@ -339,6 +339,9 @@ describe('automationMethodsMixin', () => { }; }; const computed = { + agents() { + return agents; + }, labels() { return labels; }, @@ -419,6 +422,9 @@ describe('automationMethodsMixin', () => { return {}; }; const computed = { + agents() { + return agents; + }, labels() { return labels; }, diff --git a/app/models/concerns/activity_message_handler.rb b/app/models/concerns/activity_message_handler.rb index cdab4e17d..7fc020e3c 100644 --- a/app/models/concerns/activity_message_handler.rb +++ b/app/models/concerns/activity_message_handler.rb @@ -104,6 +104,8 @@ module ActivityMessageHandler end def create_assignee_change_activity(user_name) + user_name = activity_message_ownner(user_name) + return unless user_name content = generate_assignee_change_activity_content(user_name)