From 27ac262a269b09e0153e5cd23bd8bf34548ac68c Mon Sep 17 00:00:00 2001 From: Vishnu Narayanan Date: Thu, 22 Feb 2024 04:15:43 +0530 Subject: [PATCH] feat(ee): Add support for SLA in automation rules (#8910) Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> --- .../dashboard/helper/automationHelper.js | 9 +++- .../mixins/automations/methodsMixin.js | 12 +++++- .../settings/automation/AddAutomationRule.vue | 17 +++++++- .../automation/EditAutomationRule.vue | 17 +++++++- .../dashboard/settings/automation/Index.vue | 6 +++ .../settings/automation/constants.js | 5 +++ .../routes/dashboard/settings/sla/Index.vue | 16 ++++++- .../shared/mixins/specs/automationFixtures.js | 42 +++++++++++++++++++ .../mixins/specs/automationMixin.spec.js | 7 ++++ 9 files changed, 125 insertions(+), 6 deletions(-) diff --git a/app/javascript/dashboard/helper/automationHelper.js b/app/javascript/dashboard/helper/automationHelper.js index d1a85570b..665e8faf6 100644 --- a/app/javascript/dashboard/helper/automationHelper.js +++ b/app/javascript/dashboard/helper/automationHelper.js @@ -129,7 +129,13 @@ export const agentList = agents => [ ...(agents || []), ]; -export const getActionOptions = ({ agents, teams, labels, type }) => { +export const getActionOptions = ({ + agents, + teams, + labels, + slaPolicies, + type, +}) => { const actionsMap = { assign_agent: agentList(agents), assign_team: teams, @@ -137,6 +143,7 @@ export const getActionOptions = ({ agents, teams, labels, type }) => { add_label: generateConditionOptions(labels, 'title'), remove_label: generateConditionOptions(labels, 'title'), change_priority: PRIORITY_CONDITION_VALUES, + add_sla: slaPolicies, }; return actionsMap[type]; }; diff --git a/app/javascript/dashboard/mixins/automations/methodsMixin.js b/app/javascript/dashboard/mixins/automations/methodsMixin.js index de108910a..a7e8d8120 100644 --- a/app/javascript/dashboard/mixins/automations/methodsMixin.js +++ b/app/javascript/dashboard/mixins/automations/methodsMixin.js @@ -27,6 +27,7 @@ export default { inboxes: 'inboxes/getInboxes', labels: 'labels/getLabels', teams: 'teams/getTeams', + slaPolicies: 'sla/getSLA', }), booleanFilterOptions() { return [ @@ -257,8 +258,15 @@ export default { }; }, getActionDropdownValues(type) { - const { agents, labels, teams } = this; - return getActionOptions({ agents, labels, teams, languages, type }); + const { agents, labels, teams, slaPolicies } = this; + return getActionOptions({ + agents, + labels, + teams, + slaPolicies, + languages, + 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 67184054a..152b55aae 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/automation/AddAutomationRule.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/automation/AddAutomationRule.vue @@ -144,6 +144,7 @@