Added checkbox in parts table header to quickly select/unselect all parts

This commit is contained in:
Jan Böhmer 2023-02-19 23:04:51 +01:00
parent 9d1cd0477a
commit c39a9a4da7
2 changed files with 63 additions and 2 deletions

View file

@ -137,6 +137,27 @@ export default class extends Controller {
dt.fixedHeader.headerOffset($("#navbar").outerHeight());
});
//Register event handler to selectAllRows checkbox if available
if (this.isSelectable()) {
promise.then((dt) => {
const selectAllCheckbox = this.element.querySelector('thead th.select-checkbox');
selectAllCheckbox.addEventListener('click', () => {
if(selectAllCheckbox.parentElement.classList.contains('selected')) {
dt.rows().deselect();
selectAllCheckbox.parentElement.classList.remove('selected');
} else {
dt.rows().select();
selectAllCheckbox.parentElement.classList.add('selected');
}
});
//When any row is deselected, also deselect the selectAll checkbox
dt.on('deselect.dt', () => {
selectAllCheckbox.parentElement.classList.remove('selected');
});
});
}
//Allow to further configure the datatable
promise.then(this._afterLoaded.bind(this));