blob: 88ac6875c18fb94cb5d6ca23473062408f66d919 [file] [log] [blame]
Copybara botbe50d492023-11-30 00:16:42 +01001function getRawWorkers() {
2 var parameters = [];
3 document.querySelectorAll("tr[data-worker-id]").forEach(tr => {
4 if (tr.querySelector("input[type=\"checkbox\"]").checked) {
5 parameters.push(tr.getAttribute("data-worker-id"));
6 }
7 });
8
9 return parameters;
10}
11
12function getParameters() {
13 var parameters = [];
14 var workers = getRawWorkers();
15 workers.forEach(worker => {
16 parameters.push("workers[]="+worker);
17 });
18
19 if (parameters.length == 0) return false;
20
21 return parameters.join("&");
22}
23
24window.addEventListener("load", function() {
25 var datatable = $('.datatable').DataTable({
26 paging: false,
27 ordering: false,
28 info: false,
29 searching:true
30 });
31
32 document.querySelector("#usuario").addEventListener("input", function(evt) {
33 this.search(evt.target.value);
34 this.draw(true);
35 }.bind(datatable));
36
37 document.querySelector(".filter").addEventListener("click", function() {
38 document.querySelector("#filter").showModal();
39 /* Or dialog.show(); to show the dialog without a backdrop. */
40 });
41
42 ["copytemplate", "addincidentbulk"].forEach(action => {
43 document.getElementById(action).addEventListener("click", function() {
44 var parameters = getParameters();
45 if (parameters === false) return;
46
47 var url = "dynamic/"+action+".php?"+parameters;
48 dynDialog.load(url);
49 });
50 });
51
52 document.getElementById("addrecurringincident").addEventListener("click", function () {
53 var workers = getRawWorkers();
54 if (workers.length > 1) {
55 if (document.querySelector(".mdl-js-snackbar") === null) {
56 document.body.insertAdjacentHTML('beforeend', '<div class="mdl-snackbar mdl-js-snackbar"><div class="mdl-snackbar__text"></div><button type="button" class="mdl-snackbar__action"></button></div>');
57 componentHandler.upgradeElement(document.querySelector(".mdl-js-snackbar"));
58 }
59
60 document.querySelector(".mdl-js-snackbar").MaterialSnackbar.showSnackbar(
61 {
62 message: "Solo se puede aƱadir una incidencia recurrente a un solo trabajador.",
63 timeout: 5000
64 }
65 );
66 // Display error message
67 } else if (workers.length == 1) {
68 window.location = "incidents.php?openRecurringFormWorker="+workers[0];
69 }
70 });
71});