Skip to content

Commit 2b43e13

Browse files
Merge pull request frappe#28507 from UmakanthKaspa/feature/multiselect-clear-all
Feat: Add Clear All Button to MultiSelect Field
2 parents b72bc3a + 810519d commit 2b43e13

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

frappe/public/js/frappe/form/controls/multiselect_list.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@ frappe.ui.form.ControlMultiSelectList = class ControlMultiSelectList extends (
1414
</li>
1515
<div class="selectable-items">
1616
</div>
17+
<li class="text-right">
18+
<button class="btn btn-primary btn-xs clear-selections text-nowrap">
19+
Clear All
20+
</button>
21+
</li>
1722
</ul>
1823
</div>
1924
`;
@@ -31,6 +36,9 @@ frappe.ui.form.ControlMultiSelectList = class ControlMultiSelectList extends (
3136
this.$list_wrapper.on("click", ".dropdown-menu", (e) => {
3237
e.stopPropagation();
3338
});
39+
this.$list_wrapper.on("click", ".clear-selections", (e) => {
40+
this.clear_all_selections();
41+
});
3442
this.$list_wrapper.on("click", ".selectable-item", (e) => {
3543
let $target = $(e.currentTarget);
3644
this.toggle_select_item($target);
@@ -115,6 +123,14 @@ frappe.ui.form.ControlMultiSelectList = class ControlMultiSelectList extends (
115123
}
116124
}
117125

126+
clear_all_selections() {
127+
this.values = [];
128+
this._selected_values = [];
129+
this.update_status();
130+
this.set_selectable_items(this._options);
131+
this.parse_validate_and_set_in_model("");
132+
}
133+
118134
toggle_select_item($selectable_item) {
119135
$selectable_item.toggleClass("selected");
120136
let value = decodeURIComponent($selectable_item.data().value);

0 commit comments

Comments
 (0)