From 1294e954f7379362d808beef794a96072088c411 Mon Sep 17 00:00:00 2001 From: Minha Date: Fri, 19 Jul 2024 15:20:28 -0400 Subject: [PATCH 1/8] Allow for changing language when looking at a case list or case search screen --- .../cloudcare/js/form_entry/web_form_session.js | 16 ++++++++++++++-- .../static/cloudcare/js/formplayer/app.js | 4 +++- .../static/cloudcare/js/formplayer/menus/api.js | 2 +- .../cloudcare/js/formplayer/menus/collections.js | 16 +++++++++++++++- .../cloudcare/js/formplayer/menus/controller.js | 8 +------- 5 files changed, 34 insertions(+), 12 deletions(-) diff --git a/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js b/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js index af3273a4bb6f..00506a31345e 100644 --- a/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js +++ b/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js @@ -9,6 +9,7 @@ hqDefine("cloudcare/js/form_entry/web_form_session", [ 'cloudcare/js/form_entry/task_queue', 'cloudcare/js/form_entry/utils', 'cloudcare/js/form_entry/form_ui', + 'cloudcare/js/formplayer/utils/utils', ], function ( $, ko, @@ -18,7 +19,8 @@ hqDefine("cloudcare/js/form_entry/web_form_session", [ errors, taskQueue, formEntryUtils, - formUI + formUI, + utils, ) { function WebFormSession(params) { var self = {}; @@ -472,7 +474,16 @@ hqDefine("cloudcare/js/form_entry/web_form_session", [ }; self.changeLang = function (lang) { - this.serverRequest( + if (!self.session_id) { + // Handling for language change on case list and case search screens, + // which don't have associated session_ids. + hqRequire(["cloudcare/js/formplayer/menus/controller"], function (menusController) { + var urlObject = utils.currentUrlToObject() + urlObject.changeLang = lang + menusController.selectMenu(urlObject); + }); + } else { + this.serverRequest( { 'action': constants.CHANGE_LOCALE, 'locale': lang, @@ -480,6 +491,7 @@ hqDefine("cloudcare/js/form_entry/web_form_session", [ function (resp) { $.publish('session.reconcile', [resp, lang]); }); + } }; self.submitForm = function (form) { diff --git a/corehq/apps/cloudcare/static/cloudcare/js/formplayer/app.js b/corehq/apps/cloudcare/static/cloudcare/js/formplayer/app.js index b63d64165d53..fdaf4c40ec05 100644 --- a/corehq/apps/cloudcare/static/cloudcare/js/formplayer/app.js +++ b/corehq/apps/cloudcare/static/cloudcare/js/formplayer/app.js @@ -290,7 +290,9 @@ hqDefine("cloudcare/js/formplayer/app", [ return FormplayerFrontend.getChannel().request('resourceMap', resourcePath, appId); }; var sess = WebFormSession.WebFormSession(data); - sess.renderFormXml(data, $('#webforms')); + if (data.type !== Const.ENTITIES && data.type !== Const.QUERY) { + sess.renderFormXml(data, $('#webforms')); + } $('.menu-scrollable-container').addClass(window.USE_BOOTSTRAP5 ? "d-none" : "hide"); }); diff --git a/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/api.js b/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/api.js index f97b116c5a87..d2a52fab6f38 100644 --- a/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/api.js +++ b/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/api.js @@ -166,7 +166,7 @@ hqDefine("cloudcare/js/formplayer/menus/api", [ "app_id": params.appId, "endpoint_id": params.endpointId, "endpoint_args": params.endpointArgs, - "locale": displayOptions.language, + "locale": params.changeLang || displayOptions.language, "selections": params.selections, "offset": params.page * casesPerPage, "search_text": params.search, diff --git a/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js b/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js index b5e79cba6b23..6fc54a4cef3b 100644 --- a/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js +++ b/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js @@ -10,12 +10,14 @@ hqDefine("cloudcare/js/formplayer/menus/collections", [ 'sentry_browser', 'cloudcare/js/formplayer/app', 'cloudcare/js/formplayer/utils/utils', + 'cloudcare/js/formplayer/users/models', ], function ( _, Backbone, Sentry, FormplayerFrontend, - Utils + Utils, + UsersModels, ) { function addBreadcrumb(collection, type, data) { Sentry.addBreadcrumb({ @@ -25,6 +27,12 @@ hqDefine("cloudcare/js/formplayer/menus/collections", [ }); } + function enableLanguageOption(response, collection) { + response.langs = response.locales.slice(1); + _.extend(collection, _.pick(response, collection.formProperties)); + FormplayerFrontend.trigger('startForm', response); + } + var MenuSelect = Backbone.Collection.extend({ commonProperties: [ 'appId', @@ -124,10 +132,16 @@ hqDefine("cloudcare/js/formplayer/menus/collections", [ // backwards compatibility - remove after FP deploy of #1374 _.defaults(response, {"hasDetails": true}); _.extend(this, _.pick(response, this.entityProperties)); + if (response.locales && !UsersModels.getCurrentUser().displayOptions.singleAppMode){ + enableLanguageOption(response, this) + } return response.entities; } else if (response.type === "query") { addBreadcrumb(this, "query", sentryData); _.extend(this, _.pick(response, this.queryProperties)); + if (response.locales && !UsersModels.getCurrentUser().displayOptions.singleAppMode){ + enableLanguageOption(response, this) + } return response.displays; } else if (response.details) { addBreadcrumb(this, "details", sentryData); diff --git a/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/controller.js b/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/controller.js index b502e4ea982b..2d82d1c6c5b6 100644 --- a/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/controller.js +++ b/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/controller.js @@ -148,13 +148,7 @@ hqDefine("cloudcare/js/formplayer/menus/controller", [ if (menuResponse.breadcrumbs) { menusUtils.showBreadcrumbs(menuResponse.breadcrumbs); if (!appPreview) { - let isFormEntry = !menuResponse.queryKey; - if (isFormEntry) { - menusUtils.showMenuDropdown(menuResponse.langs, initialPageData.get('lang_code_name_mapping')); - } - if (menuResponse.type === constants.ENTITIES) { - menusUtils.showMenuDropdown(); - } + menusUtils.showMenuDropdown(menuResponse.langs, initialPageData.get('lang_code_name_mapping')); } } else { FormplayerFrontend.regions.getRegion('breadcrumb').empty(); From 3a8d60ae5735cf47bba77e35dca9a1bf60bc988b Mon Sep 17 00:00:00 2001 From: Minha Date: Thu, 25 Jul 2024 10:28:06 -0400 Subject: [PATCH 2/8] Lint fixes --- .../static/cloudcare/js/form_entry/web_form_session.js | 2 +- .../static/cloudcare/js/formplayer/menus/collections.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js b/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js index c6b449e46db0..8164ce50edbf 100644 --- a/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js +++ b/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js @@ -20,7 +20,7 @@ hqDefine("cloudcare/js/form_entry/web_form_session", [ taskQueue, formEntryUtils, formUI, - utils, + utils ) { function WebFormSession(params) { var self = {}; diff --git a/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js b/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js index 6fc54a4cef3b..72f2d5dda85b 100644 --- a/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js +++ b/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js @@ -17,7 +17,7 @@ hqDefine("cloudcare/js/formplayer/menus/collections", [ Sentry, FormplayerFrontend, Utils, - UsersModels, + UsersModels ) { function addBreadcrumb(collection, type, data) { Sentry.addBreadcrumb({ From 4add4ce789ef669f79017546e8ebf7e0f19f651d Mon Sep 17 00:00:00 2001 From: Minha Date: Thu, 25 Jul 2024 16:24:47 -0400 Subject: [PATCH 3/8] More lint fixes --- .../js/form_entry/web_form_session.js | 18 +++++++++--------- .../js/formplayer/menus/collections.js | 8 ++++---- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js b/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js index 8164ce50edbf..29c91ae19dfc 100644 --- a/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js +++ b/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js @@ -478,19 +478,19 @@ hqDefine("cloudcare/js/form_entry/web_form_session", [ // Handling for language change on case list and case search screens, // which don't have associated session_ids. hqRequire(["cloudcare/js/formplayer/menus/controller"], function (menusController) { - var urlObject = utils.currentUrlToObject() - urlObject.changeLang = lang + var urlObject = utils.currentUrlToObject(); + urlObject.changeLang = lang; menusController.selectMenu(urlObject); }); } else { this.serverRequest( - { - 'action': constants.CHANGE_LOCALE, - 'locale': lang, - }, - function (resp) { - $.publish('session.reconcile', [resp, lang]); - }); + { + 'action': constants.CHANGE_LOCALE, + 'locale': lang, + }, + function (resp) { + $.publish('session.reconcile', [resp, lang]); + }); } }; diff --git a/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js b/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js index 72f2d5dda85b..009f2c1255eb 100644 --- a/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js +++ b/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js @@ -132,15 +132,15 @@ hqDefine("cloudcare/js/formplayer/menus/collections", [ // backwards compatibility - remove after FP deploy of #1374 _.defaults(response, {"hasDetails": true}); _.extend(this, _.pick(response, this.entityProperties)); - if (response.locales && !UsersModels.getCurrentUser().displayOptions.singleAppMode){ - enableLanguageOption(response, this) + if (response.locales && !UsersModels.getCurrentUser().displayOptions.singleAppMode) { + enableLanguageOption(response, this); } return response.entities; } else if (response.type === "query") { addBreadcrumb(this, "query", sentryData); _.extend(this, _.pick(response, this.queryProperties)); - if (response.locales && !UsersModels.getCurrentUser().displayOptions.singleAppMode){ - enableLanguageOption(response, this) + if (response.locales && !UsersModels.getCurrentUser().displayOptions.singleAppMode) { + enableLanguageOption(response, this); } return response.displays; } else if (response.details) { From b0e7d9896d7872d431a960ee14b92bdfd305a948 Mon Sep 17 00:00:00 2001 From: Minha Date: Mon, 29 Jul 2024 16:13:24 -0400 Subject: [PATCH 4/8] Make subscribing to language change event it's own thing --- .../js/form_entry/web_form_session.js | 52 +++++++++++-------- .../static/cloudcare/js/formplayer/app.js | 4 +- .../js/formplayer/menus/collections.js | 5 +- 3 files changed, 36 insertions(+), 25 deletions(-) diff --git a/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js b/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js index 29c91ae19dfc..f2da78d03481 100644 --- a/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js +++ b/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js @@ -275,7 +275,6 @@ hqDefine("cloudcare/js/form_entry/web_form_session", [ 'formplayer.' + constants.PREV_QUESTION, 'formplayer.' + constants.QUESTIONS_FOR_INDEX, 'formplayer.' + constants.FORMATTED_QUESTIONS, - 'formplayer.' + constants.CHANGE_LANG, ].join(' ')); $.subscribe('formplayer.' + constants.SUBMIT, function (e, form) { self.submitForm(form); @@ -307,9 +306,7 @@ hqDefine("cloudcare/js/form_entry/web_form_session", [ $.subscribe('formplayer.' + constants.FORMATTED_QUESTIONS, function (e, callback) { self.getFormattedQuestions(callback); }); - $.subscribe('formplayer.' + constants.CHANGE_LANG, function (e, lang) { - self.changeLang(lang); - }); + applyLangListener(self); }; self.loadForm = function ($form, initLang) { @@ -474,24 +471,14 @@ hqDefine("cloudcare/js/form_entry/web_form_session", [ }; self.changeLang = function (lang) { - if (!self.session_id) { - // Handling for language change on case list and case search screens, - // which don't have associated session_ids. - hqRequire(["cloudcare/js/formplayer/menus/controller"], function (menusController) { - var urlObject = utils.currentUrlToObject(); - urlObject.changeLang = lang; - menusController.selectMenu(urlObject); + this.serverRequest( + { + 'action': constants.CHANGE_LOCALE, + 'locale': lang, + }, + function (resp) { + $.publish('session.reconcile', [resp, lang]); }); - } else { - this.serverRequest( - { - 'action': constants.CHANGE_LOCALE, - 'locale': lang, - }, - function (resp) { - $.publish('session.reconcile', [resp, lang]); - }); - } }; self.submitForm = function (form) { @@ -615,7 +602,30 @@ hqDefine("cloudcare/js/form_entry/web_form_session", [ return self; } + function applyLangListener(session) { + $.unsubscribe('formplayer.' + constants.CHANGE_LANG); + if (session) { + $.subscribe('formplayer.' + constants.CHANGE_LANG, function (e, lang) { + session.changeLang(lang); + }); + } else { + $.subscribe('formplayer.' + constants.CHANGE_LANG, function (e, lang) { + changeLang(lang); + }); + } + + } + + function changeLang(lang) { + hqRequire(["cloudcare/js/formplayer/menus/controller"], function (menusController) { + var urlObject = utils.currentUrlToObject() + urlObject.changeLang = lang + menusController.selectMenu(urlObject); + }); + }; + return { WebFormSession: WebFormSession, + applyLangListener: applyLangListener, }; }); diff --git a/corehq/apps/cloudcare/static/cloudcare/js/formplayer/app.js b/corehq/apps/cloudcare/static/cloudcare/js/formplayer/app.js index 3c02537550e3..8a5e2594b102 100644 --- a/corehq/apps/cloudcare/static/cloudcare/js/formplayer/app.js +++ b/corehq/apps/cloudcare/static/cloudcare/js/formplayer/app.js @@ -292,9 +292,7 @@ hqDefine("cloudcare/js/formplayer/app", [ return FormplayerFrontend.getChannel().request('resourceMap', resourcePath, appId); }; var sess = WebFormSession.WebFormSession(data); - if (data.type !== Const.ENTITIES && data.type !== Const.QUERY) { - sess.renderFormXml(data, $('#webforms')); - } + sess.renderFormXml(data, $('#webforms')); $('.menu-scrollable-container').addClass("d-none"); }); diff --git a/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js b/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js index 009f2c1255eb..7f967d653661 100644 --- a/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js +++ b/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js @@ -11,6 +11,7 @@ hqDefine("cloudcare/js/formplayer/menus/collections", [ 'cloudcare/js/formplayer/app', 'cloudcare/js/formplayer/utils/utils', 'cloudcare/js/formplayer/users/models', + "cloudcare/js/form_entry/web_form_session", ], function ( _, Backbone, @@ -18,6 +19,8 @@ hqDefine("cloudcare/js/formplayer/menus/collections", [ FormplayerFrontend, Utils, UsersModels + UsersModels, + webFormSession ) { function addBreadcrumb(collection, type, data) { Sentry.addBreadcrumb({ @@ -30,7 +33,7 @@ hqDefine("cloudcare/js/formplayer/menus/collections", [ function enableLanguageOption(response, collection) { response.langs = response.locales.slice(1); _.extend(collection, _.pick(response, collection.formProperties)); - FormplayerFrontend.trigger('startForm', response); + webFormSession.applyLangListener() } var MenuSelect = Backbone.Collection.extend({ From 4bcf813ad4b1a9ea7be94335277c59f7a7eeee31 Mon Sep 17 00:00:00 2001 From: Minha Date: Mon, 29 Jul 2024 16:47:53 -0400 Subject: [PATCH 5/8] Lint fixes --- .../static/cloudcare/js/form_entry/web_form_session.js | 10 +++++----- .../cloudcare/js/formplayer/menus/collections.js | 1 - 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js b/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js index f2da78d03481..cf9e70494e8b 100644 --- a/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js +++ b/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js @@ -618,11 +618,11 @@ hqDefine("cloudcare/js/form_entry/web_form_session", [ function changeLang(lang) { hqRequire(["cloudcare/js/formplayer/menus/controller"], function (menusController) { - var urlObject = utils.currentUrlToObject() - urlObject.changeLang = lang - menusController.selectMenu(urlObject); - }); - }; + var urlObject = utils.currentUrlToObject(); + urlObject.changeLang = lang; + menusController.selectMenu(urlObject); + }); + } return { WebFormSession: WebFormSession, diff --git a/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js b/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js index 7f967d653661..a3bf703c7ccc 100644 --- a/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js +++ b/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js @@ -18,7 +18,6 @@ hqDefine("cloudcare/js/formplayer/menus/collections", [ Sentry, FormplayerFrontend, Utils, - UsersModels UsersModels, webFormSession ) { From 4e2f7e13cbf8b3aadb1b8542e7969f17458df2db Mon Sep 17 00:00:00 2001 From: Minha Date: Tue, 30 Jul 2024 11:20:17 -0400 Subject: [PATCH 6/8] More refactoring based on PR feedback --- .../js/form_entry/web_form_session.js | 13 ++++--------- .../js/formplayer/menus/collections.js | 18 ++++++------------ 2 files changed, 10 insertions(+), 21 deletions(-) diff --git a/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js b/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js index cf9e70494e8b..9b2c97cd3152 100644 --- a/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js +++ b/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js @@ -604,15 +604,10 @@ hqDefine("cloudcare/js/form_entry/web_form_session", [ function applyLangListener(session) { $.unsubscribe('formplayer.' + constants.CHANGE_LANG); - if (session) { - $.subscribe('formplayer.' + constants.CHANGE_LANG, function (e, lang) { - session.changeLang(lang); - }); - } else { - $.subscribe('formplayer.' + constants.CHANGE_LANG, function (e, lang) { - changeLang(lang); - }); - } + const fn = session ? session.changeLang : changeLang; + $.subscribe('formplayer.' + constants.CHANGE_LANG, function (e, lang) { + fn(lang); + }); } diff --git a/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js b/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js index a3bf703c7ccc..ec1ef6c9b87d 100644 --- a/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js +++ b/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js @@ -29,12 +29,6 @@ hqDefine("cloudcare/js/formplayer/menus/collections", [ }); } - function enableLanguageOption(response, collection) { - response.langs = response.locales.slice(1); - _.extend(collection, _.pick(response, collection.formProperties)); - webFormSession.applyLangListener() - } - var MenuSelect = Backbone.Collection.extend({ commonProperties: [ 'appId', @@ -120,6 +114,12 @@ hqDefine("cloudcare/js/formplayer/menus/collections", [ _.pick(response, ["queryKey", "selections"]), _.identity ); + if (response.locales && !UsersModels.getCurrentUser().displayOptions.singleAppMode + && (response.entities || response.type === "query")) { + response.langs = response.locales.slice(1); + _.extend(this, _.pick(response, this.formProperties)); + webFormSession.applyLangListener(); + } if (response.commands) { _.extend(this, _.pick(response, this.commandProperties)); addBreadcrumb(this, "menu", _.extend(sentryData, { @@ -134,16 +134,10 @@ hqDefine("cloudcare/js/formplayer/menus/collections", [ // backwards compatibility - remove after FP deploy of #1374 _.defaults(response, {"hasDetails": true}); _.extend(this, _.pick(response, this.entityProperties)); - if (response.locales && !UsersModels.getCurrentUser().displayOptions.singleAppMode) { - enableLanguageOption(response, this); - } return response.entities; } else if (response.type === "query") { addBreadcrumb(this, "query", sentryData); _.extend(this, _.pick(response, this.queryProperties)); - if (response.locales && !UsersModels.getCurrentUser().displayOptions.singleAppMode) { - enableLanguageOption(response, this); - } return response.displays; } else if (response.details) { addBreadcrumb(this, "details", sentryData); From 8a9481f0659c9e75e4e81f51a15c475388829ffe Mon Sep 17 00:00:00 2001 From: Minha Date: Wed, 31 Jul 2024 13:09:41 -0400 Subject: [PATCH 7/8] Simplify adding langs to collection obj --- .../static/cloudcare/js/form_entry/web_form_session.js | 2 +- .../static/cloudcare/js/formplayer/menus/collections.js | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js b/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js index 9b2c97cd3152..e63550686ec3 100644 --- a/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js +++ b/corehq/apps/cloudcare/static/cloudcare/js/form_entry/web_form_session.js @@ -471,7 +471,7 @@ hqDefine("cloudcare/js/form_entry/web_form_session", [ }; self.changeLang = function (lang) { - this.serverRequest( + self.serverRequest( { 'action': constants.CHANGE_LOCALE, 'locale': lang, diff --git a/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js b/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js index ec1ef6c9b87d..6f38bdf0d3ba 100644 --- a/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js +++ b/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js @@ -116,8 +116,7 @@ hqDefine("cloudcare/js/formplayer/menus/collections", [ ); if (response.locales && !UsersModels.getCurrentUser().displayOptions.singleAppMode && (response.entities || response.type === "query")) { - response.langs = response.locales.slice(1); - _.extend(this, _.pick(response, this.formProperties)); + this.langs = response.locales.slice(1); webFormSession.applyLangListener(); } if (response.commands) { From bc3724d4cc222b2b153614a271857882ec0168be Mon Sep 17 00:00:00 2001 From: Minha Date: Thu, 1 Aug 2024 13:45:59 -0400 Subject: [PATCH 8/8] Get rid of old condition / apply language options to menus and details too --- .../static/cloudcare/js/formplayer/menus/collections.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js b/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js index 6f38bdf0d3ba..2e62c75e97fd 100644 --- a/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js +++ b/corehq/apps/cloudcare/static/cloudcare/js/formplayer/menus/collections.js @@ -114,8 +114,7 @@ hqDefine("cloudcare/js/formplayer/menus/collections", [ _.pick(response, ["queryKey", "selections"]), _.identity ); - if (response.locales && !UsersModels.getCurrentUser().displayOptions.singleAppMode - && (response.entities || response.type === "query")) { + if (response.locales && !response.tree) { this.langs = response.locales.slice(1); webFormSession.applyLangListener(); }