From 8fee31912eb2a825134d66866fabd8a0202e240a Mon Sep 17 00:00:00 2001 From: Muhsin Date: Sun, 2 Nov 2025 14:29:27 +0530 Subject: [PATCH] chore: add language option --- app/controllers/api/v1/accounts/inboxes_controller.rb | 3 ++- app/javascript/dashboard/i18n/locale/en/inboxMgmt.json | 4 ++++ .../inbox/settingsPage/CustomerSatisfactionPage.vue | 10 +++++++--- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/controllers/api/v1/accounts/inboxes_controller.rb b/app/controllers/api/v1/accounts/inboxes_controller.rb index 11e661784..78e605b78 100644 --- a/app/controllers/api/v1/accounts/inboxes_controller.rb +++ b/app/controllers/api/v1/accounts/inboxes_controller.rb @@ -244,6 +244,7 @@ class Api::V1::Accounts::InboxesController < Api::V1::Accounts::BaseController 'display_type' => config['display_type'] || 'emoji', 'message' => config['message'] || '', 'button_text' => config['button_text'] || 'Please rate us', + 'language' => config['language'] || 'en', 'survey_rules' => { 'operator' => config.dig('survey_rules', 'operator') || 'contains', 'values' => config.dig('survey_rules', 'values') || [] @@ -260,7 +261,7 @@ class Api::V1::Accounts::InboxesController < Api::V1::Accounts::BaseController [:name, :avatar, :greeting_enabled, :greeting_message, :enable_email_collect, :csat_survey_enabled, :enable_auto_assignment, :working_hours_enabled, :out_of_office_message, :timezone, :allow_messages_after_resolved, :lock_to_single_conversation, :portal_id, :sender_name_type, :business_name, - { csat_config: [:display_type, :message, :button_text, + { csat_config: [:display_type, :message, :button_text, :language, { survey_rules: [:operator, { values: [] }], template: [:name, :template_id, :created_at, :language] }] }] end diff --git a/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json index 7ea8b7cb7..cb8033306 100644 --- a/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json @@ -796,6 +796,10 @@ "LABEL": "Button text", "PLACEHOLDER": "Please rate us" }, + "LANGUAGE": { + "LABEL": "Language", + "PLACEHOLDER": "Select template language" + }, "MESSAGE_PREVIEW": { "LABEL": "Message preview", "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform." diff --git a/app/javascript/dashboard/routes/dashboard/settings/inbox/settingsPage/CustomerSatisfactionPage.vue b/app/javascript/dashboard/routes/dashboard/settings/inbox/settingsPage/CustomerSatisfactionPage.vue index c53a17596..2877fbc23 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/inbox/settingsPage/CustomerSatisfactionPage.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/inbox/settingsPage/CustomerSatisfactionPage.vue @@ -62,7 +62,7 @@ const labelOptions = computed(() => ); const languageOptions = computed(() => - languages.map(({ name, id }) => ({ label: name, value: id })) + languages.map(({ name, id }) => ({ label: `${name} (${id})`, value: id })) ); const isWhatsAppChannel = computed( @@ -123,12 +123,14 @@ const initializeState = () => { display_type: displayType = CSAT_DISPLAY_TYPES.EMOJI, message = '', button_text: buttonText = 'Please rate us', + language = 'en', survey_rules: surveyRules = {}, } = csat_config; state.displayType = displayType; state.message = message; state.buttonText = buttonText; + state.language = language; state.surveyRuleOperator = surveyRules.operator || 'contains'; selectedLabelValues.value = Array.isArray(surveyRules.values) @@ -203,6 +205,7 @@ const createTemplate = async () => { template: { message: state.message, button_text: state.buttonText, + language: state.language, }, }); @@ -232,6 +235,7 @@ const saveSettings = async () => { display_type: state.displayType, message: state.message, button_text: state.buttonText, + language: state.language, survey_rules: { operator: state.surveyRuleOperator, values: selectedLabelValues.value, @@ -301,8 +305,8 @@ const saveSettings = async () => { />