diff --git a/frappe/public/js/frappe/form/controls/multiselect_list.js b/frappe/public/js/frappe/form/controls/multiselect_list.js
index b26b9ecb3d..bb4ed56f94 100644
--- a/frappe/public/js/frappe/form/controls/multiselect_list.js
+++ b/frappe/public/js/frappe/form/controls/multiselect_list.js
@@ -14,7 +14,10 @@ frappe.ui.form.ControlMultiSelectList = class ControlMultiSelectList extends (
-
+
+
@@ -39,6 +42,9 @@ frappe.ui.form.ControlMultiSelectList = class ControlMultiSelectList extends (
this.$list_wrapper.on("click", ".clear-selections", (e) => {
this.clear_all_selections();
});
+ this.$list_wrapper.on("click", ".select-all-options", (e) => {
+ this.select_all_options();
+ });
this.$list_wrapper.on("click", ".selectable-item", (e) => {
let $target = $(e.currentTarget);
this.toggle_select_item($target);
@@ -131,6 +137,14 @@ frappe.ui.form.ControlMultiSelectList = class ControlMultiSelectList extends (
this.parse_validate_and_set_in_model("");
}
+ select_all_options() {
+ this.values = this._options.map((opt) => opt.value);
+ this._selected_values = this._options.slice();
+ this.update_status();
+ this.set_selectable_items(this._options);
+ this.parse_validate_and_set_in_model("");
+ }
+
toggle_select_item($selectable_item) {
$selectable_item.toggleClass("selected");
let value = decodeURIComponent($selectable_item.data().value);