diff --git a/app/javascript/dashboard/helper/specs/macrosHelper.spec.js b/app/javascript/dashboard/helper/specs/macrosHelper.spec.js index fa15e44b8..26e435826 100644 --- a/app/javascript/dashboard/helper/specs/macrosHelper.spec.js +++ b/app/javascript/dashboard/helper/specs/macrosHelper.spec.js @@ -36,6 +36,7 @@ describe('#resolveActionName', () => { expect(resolveActionName(MACRO_ACTION_TYPES[1].key)).not.toEqual( MACRO_ACTION_TYPES[0].label ); + expect(resolveActionName('change_priority')).toEqual('Change Priority'); }); }); diff --git a/app/javascript/dashboard/mixins/macrosMixin.js b/app/javascript/dashboard/mixins/macrosMixin.js index b7124ff68..3d02c4b01 100644 --- a/app/javascript/dashboard/mixins/macrosMixin.js +++ b/app/javascript/dashboard/mixins/macrosMixin.js @@ -1,3 +1,4 @@ +import { PRIORITY_CONDITION_VALUES } from 'dashboard/helper/automationHelper.js'; export default { methods: { getDropdownValues(type) { @@ -15,6 +16,8 @@ export default { name: i.title, }; }); + case 'change_priority': + return PRIORITY_CONDITION_VALUES; default: return []; } diff --git a/app/javascript/dashboard/mixins/specs/macros.spec.js b/app/javascript/dashboard/mixins/specs/macros.spec.js index b94fe9f89..c9dfd0475 100644 --- a/app/javascript/dashboard/mixins/specs/macros.spec.js +++ b/app/javascript/dashboard/mixins/specs/macros.spec.js @@ -2,6 +2,7 @@ import { createWrapper } from '@vue/test-utils'; import macrosMixin from '../macrosMixin'; import Vue from 'vue'; import { teams, labels, agents } from '../../helper/specs/macrosFixtures'; +import { PRIORITY_CONDITION_VALUES } from 'dashboard/helper/automationHelper.js'; describe('webhookMixin', () => { describe('#getEventLabel', () => { it('returns correct i18n translation:', () => { @@ -37,6 +38,9 @@ describe('webhookMixin', () => { expect(wrapper.vm.getDropdownValues('send_email_to_team')).toEqual(teams); expect(wrapper.vm.getDropdownValues('add_label')).toEqual(resolvedLabels); expect(wrapper.vm.getDropdownValues('assign_agent')).toEqual(agents); + expect(wrapper.vm.getDropdownValues('change_priority')).toEqual( + PRIORITY_CONDITION_VALUES + ); expect(wrapper.vm.getDropdownValues()).toEqual([]); }); }); diff --git a/app/javascript/dashboard/routes/dashboard/settings/macros/constants.js b/app/javascript/dashboard/routes/dashboard/settings/macros/constants.js index 9e92d3bfe..111a3632d 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/macros/constants.js +++ b/app/javascript/dashboard/routes/dashboard/settings/macros/constants.js @@ -59,4 +59,9 @@ export const MACRO_ACTION_TYPES = [ label: 'Add a private note', inputType: 'textarea', }, + { + key: 'change_priority', + label: 'Change Priority', + inputType: 'search_select', + }, ]; diff --git a/app/models/macro.rb b/app/models/macro.rb index 00beccd01..0951f7ae9 100644 --- a/app/models/macro.rb +++ b/app/models/macro.rb @@ -31,7 +31,7 @@ class Macro < ApplicationRecord validate :json_actions_format ACTIONS_ATTRS = %w[send_message add_label assign_team assign_agent mute_conversation change_status remove_label remove_assigned_team - resolve_conversation snooze_conversation send_email_transcript send_attachment add_private_note].freeze + resolve_conversation snooze_conversation change_priority send_email_transcript send_attachment add_private_note].freeze def set_visibility(user, params) self.visibility = params[:visibility]