From 0b03e4b296c8c522ea346fb4d93f215a808a9aa3 Mon Sep 17 00:00:00 2001 From: Pranav Raj S Date: Wed, 6 Apr 2022 13:54:55 +0530 Subject: [PATCH] feat: Add an option to disable endConversation button (#4352) --- .../api/v1/widget/conversations_controller.rb | 5 ++- .../dashboard/i18n/locale/en/inboxMgmt.json | 3 +- .../dashboard/settings/inbox/Settings.vue | 11 ++++++ .../widget/components/HeaderActions.vue | 7 ++-- app/javascript/widget/mixins/configMixin.js | 3 ++ .../widget/mixins/specs/configMixin.spec.js | 5 +-- app/models/channel/web_widget.rb | 3 +- ...5092033_update_web_widget_feature_flags.rb | 16 +++++++++ db/schema.rb | 4 +-- .../widget/conversations_controller_spec.rb | 34 +++++++++++++++++++ 10 files changed, 81 insertions(+), 10 deletions(-) create mode 100644 db/migrate/20220405092033_update_web_widget_feature_flags.rb diff --git a/app/controllers/api/v1/widget/conversations_controller.rb b/app/controllers/api/v1/widget/conversations_controller.rb index cc1b16b75..3b0a460e4 100644 --- a/app/controllers/api/v1/widget/conversations_controller.rb +++ b/app/controllers/api/v1/widget/conversations_controller.rb @@ -45,7 +45,10 @@ class Api::V1::Widget::ConversationsController < Api::V1::Widget::BaseController end def toggle_status - head :not_found && return if conversation.nil? + return head :not_found if conversation.nil? + + return head :forbidden unless @web_widget.end_conversation? + unless conversation.resolved? conversation.status = :resolved conversation.save diff --git a/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json index 538d6d5f0..83a28de43 100644 --- a/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json @@ -395,7 +395,8 @@ "FEATURES": { "LABEL": "Features", "DISPLAY_FILE_PICKER": "Display file picker on the widget", - "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget" + "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget", + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget" }, "SETTINGS_POPUP": { "MESSENGER_HEADING": "Messenger Script", diff --git a/app/javascript/dashboard/routes/dashboard/settings/inbox/Settings.vue b/app/javascript/dashboard/routes/dashboard/settings/inbox/Settings.vue index 31f435a82..5b29091f7 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/inbox/Settings.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/inbox/Settings.vue @@ -285,6 +285,17 @@ {{ $t('INBOX_MGMT.FEATURES.DISPLAY_EMOJI_PICKER') }} +
+ + +