From c0a14fe7c0aec14fd3cf2ed214fa335b6252bce4 Mon Sep 17 00:00:00 2001 From: AarDG10 Date: Tue, 10 Mar 2026 16:42:41 +0530 Subject: [PATCH] fix(setup_wizard): couple bug fixes to setup_wizard Language selection issue has been fixed where on selection English was being displayed instead of the user selected language and the drop down menu continued to show English even after the input was updated which was inconsistent...that has been fixed as well. --- frappe/desk/page/setup_wizard/setup_wizard.js | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/frappe/desk/page/setup_wizard/setup_wizard.js b/frappe/desk/page/setup_wizard/setup_wizard.js index cf8bfbf9f5..65a93eb192 100644 --- a/frappe/desk/page/setup_wizard/setup_wizard.js +++ b/frappe/desk/page/setup_wizard/setup_wizard.js @@ -158,6 +158,13 @@ frappe.setup.SetupWizard = class SetupWizard extends frappe.ui.Slides { this.in_refresh_slides = true; this.update_values(); + const welcome_slide = frappe.setup.slides_settings.find((s) => s.name === "welcome"); + if (welcome_slide && this.values.language) { + const lang_field = welcome_slide.fields.find((f) => f.fieldname === "language"); + if (lang_field) { + lang_field.default = this.values.language; + } + } frappe.setup.slides = []; frappe.setup.run_event("before_load"); @@ -444,14 +451,21 @@ frappe.setup.slides_settings = [ } else { frappe.setup.utils.load_regional_data(slide, setup_fields); } + let current_selection = frappe.wizard.values.language; if (!slide.get_value("language")) { let session_language = + current_selection || frappe.setup.utils.get_language_name_from_code( frappe.boot.lang || navigator.language - ) || "English"; + ) || + "English"; let language_field = slide.get_field("language"); + language_field.df.default = session_language; language_field.set_input(session_language); + if (language_field.awesomplete) { + language_field.awesomplete.evaluate(); + } if (!frappe.setup._from_load_messages) { language_field.$input.trigger("change"); } @@ -539,7 +553,8 @@ frappe.setup.utils = { frappe.wizard.values.currency = r.message.currency; frappe.wizard.values.country = r.message.country; frappe.wizard.values.timezone = r.message.time_zone; - frappe.wizard.values.language = r.message.language; + frappe.wizard.values.language = + frappe.wizard.values.language || r.message.language; frappe.db.get_value( "User", @@ -582,6 +597,9 @@ frappe.setup.utils = { setup_language_field: function (slide) { var language_field = slide.get_field("language"); language_field.df.options = frappe.setup.data.lang.languages; + if (frappe.wizard.values.language) { + language_field.df.default = frappe.wizard.values.language; + } language_field.set_options(); }, @@ -647,6 +665,7 @@ frappe.setup.utils = { language: lang, }, callback: function () { + frappe.wizard.values.language = lang; frappe.setup._from_load_messages = true; frappe.wizard.refresh_slides(); },