86 lines
2.6 KiB
JavaScript
86 lines
2.6 KiB
JavaScript
document.addEventListener("DOMContentLoaded", function () {
|
|
|
|
function selectAllItems(event) {
|
|
event.preventDefault();
|
|
|
|
var items = document.querySelectorAll("input[data-list-item=selectable]");
|
|
for (var i = 0; i < items.length; i++) {
|
|
items[i].checked = true;
|
|
}
|
|
|
|
showActionMenu();
|
|
}
|
|
|
|
function unselectAllItems(event) {
|
|
event.preventDefault();
|
|
|
|
var items = document.querySelectorAll("input[data-list-item=selectable]");
|
|
for (var i = 0; i < items.length; i++) {
|
|
items[i].checked = false;
|
|
}
|
|
|
|
hideActionMenu();
|
|
}
|
|
|
|
function onItemChange(event) {
|
|
var selectedItems = document.querySelectorAll("input[data-list-item=selectable]:checked");
|
|
|
|
if (selectedItems.length > 0) {
|
|
showActionMenu();
|
|
}
|
|
else if (selectedItems.length == 0) {
|
|
hideActionMenu();
|
|
}
|
|
}
|
|
|
|
function showActionMenu() {
|
|
var element = document.querySelector(".list-item-actions");
|
|
if (element) {
|
|
element.classList.remove("list-item-action-hidden");
|
|
}
|
|
}
|
|
|
|
function hideActionMenu() {
|
|
var element = document.querySelector(".list-item-actions");
|
|
if (element && ! element.classList.contains("list-item-action-hidden")) {
|
|
element.classList.add("list-item-action-hidden");
|
|
}
|
|
}
|
|
|
|
function onActionClick(event) {
|
|
event.preventDefault();
|
|
var selectedItems = document.querySelectorAll("input[data-list-item=selectable]:checked");
|
|
var taskIDs = [];
|
|
|
|
for (var i = 0; i < selectedItems.length; i++) {
|
|
taskIDs.push(selectedItems[i].value);
|
|
}
|
|
|
|
var link = event.target.href + "&task_ids=" + taskIDs.join(",");
|
|
KB.modal.open(link, "medium", true);
|
|
}
|
|
|
|
var selectAllLink = document.querySelector("a[data-list-item-selection=all]");
|
|
if (selectAllLink) {
|
|
selectAllLink.addEventListener("click", selectAllItems);
|
|
}
|
|
|
|
var unselectLink = document.querySelector("a[data-list-item-selection=none]");
|
|
if (unselectLink) {
|
|
unselectLink.addEventListener("click", unselectAllItems);
|
|
}
|
|
|
|
var items = document.querySelectorAll("input[data-list-item=selectable]");
|
|
for (var i = 0; i < items.length; i++) {
|
|
items[i].addEventListener("change", onItemChange);
|
|
}
|
|
|
|
KB.on('dropdown.afterRender', function () {
|
|
var actionLinks = document.querySelectorAll("a[data-list-item-action=modal]");
|
|
|
|
for (var i = 0; i < actionLinks.length; i++) {
|
|
actionLinks[i].addEventListener("click", onActionClick, false);
|
|
}
|
|
});
|
|
});
|