1
0
Fork 0
mirror of synced 2024-06-30 20:21:16 +12:00
appwrite/public/scripts/views/forms/select-all.js

54 lines
1.7 KiB
JavaScript
Raw Normal View History

(function(window) {
2020-10-31 08:53:27 +13:00
"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 () {
2021-01-11 01:49:18 +13:00
let checkboxes = element.querySelectorAll("input[type='checkbox']");
2020-10-31 08:53:27 +13:00
for(var i = 0; i < checkboxes.length; i++) {
checkboxes[i].checked = true;
2021-01-11 01:49:18 +13:00
checkboxes[i].dispatchEvent(new Event('change'));
2020-10-31 08:53:27 +13:00
}
})
unselect.addEventListener('click', function () {
2021-01-11 01:49:18 +13:00
let checkboxes = element.querySelectorAll("input[type='checkbox']");
2020-10-31 08:53:27 +13:00
for(var i = 0; i < checkboxes.length; i++) {
checkboxes[i].checked = false;
2021-01-11 01:49:18 +13:00
checkboxes[i].dispatchEvent(new Event('change'));
2020-10-31 08:53:27 +13:00
}
})
}
});
})(window);