blob: 0397cac712b8f6968de7b8faed2c972bf0b57a23 [file] [log] [blame]
Copybara botbe50d492023-11-30 00:16:42 +01001function getFormData() {
2 var incidents = [];
3
4 document.querySelectorAll("input[type=\"checkbox\"][data-incident]:checked").forEach(el => {
5 incidents.push(el.getAttribute("data-incident"));
6 });
7
8 return incidents;
9}
10
11function getParameters() {
12 var parameters = [];
13 var incidents = getFormData();
14 incidents.forEach(incident => {
15 parameters.push("incidents[]="+incident);
16 });
17
18 if (parameters.length == 0) return false;
19
20 return parameters.join("&");
21}
22
23window.addEventListener("load", function() {
24 document.querySelector(".addincident").addEventListener("click", function() {
25 document.querySelector("#addincident").showModal();
26 /* Or dialog.show(); to show the dialog without a backdrop. */
27 });
28
29 document.querySelector(".addrecurringincident").addEventListener("click", function() {
30 document.querySelector("#addrecurringincident").showModal();
31 /* Or dialog.show(); to show the dialog without a backdrop. */
32 });
33
34 document.querySelector(".filter").addEventListener("click", function() {
35 document.querySelector("#filter").showModal();
36 /* Or dialog.show(); to show the dialog without a backdrop. */
37 });
38
39 if (_showResultsPaginated) {
40 document.getElementById("limit-change").addEventListener("change", _ => {
41 var limit = parseInt(document.getElementById("limit-change").value);
42 var firstIncidentPos = _page*_limit;
43 var page = Math.floor(firstIncidentPos/limit) + 1;
44
45 var url = new URL(location.href);
46 url.searchParams.set("limit", limit);
47 url.searchParams.set("page", page);
48 location.href = url;
49 });
50 }
51
52 document.querySelectorAll(".mdl-checkbox[data-check-all=\"true\"] input[type=\"checkbox\"]").forEach(el => {
53 el.addEventListener("change", e => {
54 el.parentElement.parentElement.parentElement.parentElement.parentElement.querySelectorAll(".mdl-checkbox:not([data-check-all=\"true\"])").forEach(input => {
55 var checkbox = input.MaterialCheckbox;
56 if (checkbox.inputElement_.disabled) return;
57
58 if (el.checked) checkbox.check();
59 else checkbox.uncheck();
60 });
61 });
62 });
63
64 document.getElementById("deleteincidentsbulk").addEventListener("click", e => {
65 var parameters = getParameters();
66
67 if (parameters === false) {
68 document.querySelector(".mdl-js-snackbar").MaterialSnackbar.showSnackbar({
69 message: "Debes seleccionar al menos una incidencia para poder eliminar.",
70 timeout: 5000
71 });
72
73 return;
74 }
75
76 var url = "dynamic/deleteincidentsbulk.php?"+parameters;
77 dynDialog.load(url);
78 });
79});