53 lines
1.7 KiB
JavaScript
53 lines
1.7 KiB
JavaScript
(function(window) {
|
|
"use strict";
|
|
|
|
window.ls.container.get("view").add({
|
|
selector: "data-forms-select-all",
|
|
controller: function(element) {
|
|
let select = document.createElement("button");
|
|
let unselect = document.createElement("button");
|
|
|
|
select.textContent = 'Select All';
|
|
unselect.textContent = 'Unselect All';
|
|
|
|
select.classList.add('link');
|
|
select.classList.add('margin-top-tiny');
|
|
select.classList.add('margin-start-small');
|
|
select.classList.add('text-size-small');
|
|
select.classList.add('pull-end');
|
|
unselect.classList.add('link');
|
|
unselect.classList.add('margin-top-tiny');
|
|
unselect.classList.add('margin-start-small');
|
|
unselect.classList.add('text-size-small');
|
|
unselect.classList.add('pull-end');
|
|
|
|
// select.disabled = true;
|
|
// unselect.disabled = true;
|
|
|
|
select.type = 'button';
|
|
unselect.type = 'button';
|
|
|
|
element.parentNode.insertBefore(select, element);
|
|
element.parentNode.insertBefore(unselect, element);
|
|
|
|
select.addEventListener('click', function () {
|
|
let checkboxes = element.querySelectorAll("input[type='checkbox']");
|
|
|
|
for(var i = 0; i < checkboxes.length; i++) {
|
|
checkboxes[i].checked = true;
|
|
checkboxes[i].dispatchEvent(new Event('change'));
|
|
}
|
|
})
|
|
|
|
unselect.addEventListener('click', function () {
|
|
let checkboxes = element.querySelectorAll("input[type='checkbox']");
|
|
|
|
for(var i = 0; i < checkboxes.length; i++) {
|
|
checkboxes[i].checked = false;
|
|
checkboxes[i].dispatchEvent(new Event('change'));
|
|
}
|
|
})
|
|
|
|
}
|
|
});
|
|
})(window);
|