From dc8799a25a02b65fc18b24bedf6d39768fabaa49 Mon Sep 17 00:00:00 2001 From: Corentin Flr <10946971+cogk@users.noreply.github.com> Date: Mon, 13 May 2024 10:49:13 +0200 Subject: [PATCH] feat(Select): Add translation context to options --- frappe/public/js/frappe/form/controls/select.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/frappe/public/js/frappe/form/controls/select.js b/frappe/public/js/frappe/form/controls/select.js index 95a3ed36df..eee88cb149 100644 --- a/frappe/public/js/frappe/form/controls/select.js +++ b/frappe/public/js/frappe/form/controls/select.js @@ -75,7 +75,12 @@ frappe.ui.form.ControlSelect = class ControlSelect extends frappe.ui.form.Contro if (this.$input) { var selected = this.$input.find(":selected").val(); this.$input.empty(); - frappe.ui.form.add_options(this.$input, options || [], this.df.sort_options); + frappe.ui.form.add_options( + this.$input, + options || [], + this.df.sort_options, + this.df.context || this.df.parent || this.doctype + ); if (value === undefined && selected) { this.$input.val(selected); @@ -103,13 +108,13 @@ frappe.ui.form.ControlSelect = class ControlSelect extends frappe.ui.form.Contro } }; -frappe.ui.form.add_options = function (input, options_list, sort) { +frappe.ui.form.add_options = function (input, options_list, sort, doctype) { let $select = $(input); if (!Array.isArray(options_list)) { return $select; } - let options = options_list.map((raw_option) => parse_option(raw_option)); + let options = options_list.map((raw_option) => parse_option(raw_option, doctype)); if (sort) { options = options.sort((a, b) => cstr(a.label).localeCompare(cstr(b.label))); } @@ -150,7 +155,7 @@ frappe.ui.form.add_options = function (input, options_list, sort) { }; })(jQuery); -function parse_option(v) { +function parse_option(v, doctype) { let value = null; let label = null; let is_disabled = false; @@ -164,10 +169,10 @@ function parse_option(v) { if (is_value_null && is_label_null && typeof v !== "object") { value = v; - label = __(v); + label = __(v, null, doctype); } else { value = is_value_null ? "" : v.value; - label = is_label_null ? __(value) : __(v.label); + label = is_label_null ? __(value, null, doctype) : __(v.label, null, doctype); } }