From c9cccf0598e08d4315482778db387e19a1f6a03d Mon Sep 17 00:00:00 2001 From: Corentin Flr <10946971+cogk@users.noreply.github.com> Date: Fri, 12 Jan 2024 13:13:15 +0100 Subject: [PATCH] fix(MultiCheck): Use df.sort_options to enable/disable sort (#24202) When df.sort_options is null/undefined/truthy, then sort options. When df.sort_options is explicitely falsy, then do NOT sort options. --- .../js/frappe/form/controls/multicheck.js | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/frappe/public/js/frappe/form/controls/multicheck.js b/frappe/public/js/frappe/form/controls/multicheck.js index e29aa0a23e..8e3ea0a331 100644 --- a/frappe/public/js/frappe/form/controls/multicheck.js +++ b/frappe/public/js/frappe/form/controls/multicheck.js @@ -75,15 +75,17 @@ frappe.ui.form.ControlMultiCheck = class ControlMultiCheck extends frappe.ui.for make_checkboxes() { this.$load_state.hide(); this.$checkbox_area.empty(); - this.options - .sort((a, b) => cstr(a.label).localeCompare(cstr(b.label))) - .forEach((option) => { - let checkbox = this.get_checkbox_element(option).appendTo(this.$checkbox_area); - if (option.danger) { - checkbox.find(".label-area").addClass("text-danger"); - } - option.$checkbox = checkbox; - }); + if (this.df.sort_options != false) { + // Sort if sort_options is undefined, null or truthy. + this.options.sort((a, b) => cstr(a.label).localeCompare(cstr(b.label))); + } + this.options.forEach((option) => { + let checkbox = this.get_checkbox_element(option).appendTo(this.$checkbox_area); + if (option.danger) { + checkbox.find(".label-area").addClass("text-danger"); + } + option.$checkbox = checkbox; + }); if (this.df.select_all) { this.setup_select_all(); }