chore: add language option

This commit is contained in:
Muhsin
2025-11-02 14:29:27 +05:30
parent 10fe518b39
commit 8fee31912e
3 changed files with 13 additions and 4 deletions
@@ -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
@@ -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."
@@ -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 () => {
/>
<WithLabel
:label="$t('INBOX_MGMT.CSAT.MESSAGE.LABEL')"
name="message"
:label="$t('INBOX_MGMT.CSAT.LANGUAGE.LABEL')"
name="language"
>
<ComboBox
v-model="state.language"