43 lines
1.7 KiB
JavaScript
43 lines
1.7 KiB
JavaScript
(() => {
|
|
"use strict";
|
|
const form = document.getElementById("senddedupe");
|
|
const table = document.getElementById("casetobesend");
|
|
const portfolio = document.getElementById("portlist");
|
|
const generate = document.getElementById("btngenreport");
|
|
if (!form || !table || !portfolio) return;
|
|
|
|
const checks = () => [...table.querySelectorAll('tbody input[type="checkbox"]')];
|
|
const sync = () => {
|
|
const selected = checks().filter((item) => item.checked);
|
|
document.getElementById("hfdelstat").value = selected.map((item) => item.value).join(",");
|
|
document.getElementById("selall").checked = selected.length > 0 && selected.length === checks().length;
|
|
};
|
|
|
|
portfolio.addEventListener("change", () => {
|
|
form.action = form.dataset.listUrl;
|
|
form.requestSubmit();
|
|
});
|
|
document.getElementById("selall")?.addEventListener("change", (event) => {
|
|
checks().forEach((item) => { item.checked = event.target.checked; });
|
|
sync();
|
|
});
|
|
table.addEventListener("change", sync);
|
|
table.addEventListener("click", (event) => {
|
|
const row = event.target.closest("tr[data-case-id]");
|
|
if (row && event.target.type !== "checkbox") row.querySelector('input[type="checkbox"]')?.click();
|
|
});
|
|
generate?.addEventListener("click", () => {
|
|
sync();
|
|
if (!document.getElementById("hfdelstat").value) {
|
|
window.CygnusNotifications?.show({
|
|
type: "warning", code: "DDP-4002", message: "Select at least one application."
|
|
});
|
|
return;
|
|
}
|
|
form.action = form.dataset.generateUrl;
|
|
form.requestSubmit();
|
|
});
|
|
if (!checks().length) generate?.setAttribute("hidden", "hidden");
|
|
sync();
|
|
})();
|