From 8b854cac70d102dd4267eb6b02588850127b4064 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Mon, 16 May 2022 14:55:31 +0530 Subject: [PATCH] fix(minor): refactor add_options --- .../public/js/frappe/form/controls/select.js | 71 +++++++++++-------- frappe/public/scss/website/index.scss | 1 + 2 files changed, 41 insertions(+), 31 deletions(-) diff --git a/frappe/public/js/frappe/form/controls/select.js b/frappe/public/js/frappe/form/controls/select.js index 7df2bbfbaa..532de7edf9 100644 --- a/frappe/public/js/frappe/form/controls/select.js +++ b/frappe/public/js/frappe/form/controls/select.js @@ -73,7 +73,8 @@ frappe.ui.form.ControlSelect = class ControlSelect extends frappe.ui.form.Contro if(this.$input) { var selected = this.$input.find(":selected").val(); - this.$input.empty().add_options(options || []); + this.$input.empty(); + frappe.ui.form.add_options(this.$input, options || []); if(value===undefined && selected) { this.$input.val(selected); @@ -101,39 +102,47 @@ frappe.ui.form.ControlSelect = class ControlSelect extends frappe.ui.form.Contro } }; +frappe.ui.form.add_options = function(input, options_list) { + let $select = $(input); + if (!Array.isArray(options_list)) { + return $select; + } + // create options + for(var i=0, j=options_list.length; i').html(cstr(label)) + .attr('value', value) + .prop('disabled', is_disabled) + .prop('selected', is_selected) + .appendTo($select.get(0)); + } + // select the first option + $select.get(0).selectedIndex = 0; + $select.trigger('select-change'); + return $select; +}; + // add