blob: 9bdbbbe1129d86583d9e86219f1d7221c944e908 [file] [log] [blame]
Copybara botbe50d492023-11-30 00:16:42 +01001function toggleTr(tr, show) {
2 var checkbox = tr.querySelector("label").MaterialCheckbox;
3 if (show) {
4 tr.style.display = "table-row";
5 checkbox.enable();
6 } else {
7 tr.style.display = "none";
8 checkbox.disable();
9 }
10}
11
12window.addEventListener("load", function() {
13 document.querySelectorAll("tr[data-worker-id]").forEach(tr => {
14 var checkbox = tr.querySelector("input[type=\"checkbox\"]");
15
16 checkbox.setAttribute("name", "workers[]");
17 checkbox.setAttribute("value", tr.getAttribute("data-worker-id"));
18
19 toggleTr(tr, false);
20 });
21
22 document.querySelectorAll(".select-all").forEach(el => {
23 el.addEventListener("click", e => {
24 var allchecked = true;
25 el.getAttribute("data-workers").split(",").forEach(workerid => {
26 var tr = document.querySelector("tr[data-worker-id=\""+workerid+"\"]");
27 var checkbox = tr.querySelector("label").MaterialCheckbox;
28 if (checkbox.inputElement_.disabled) return;
29 if (!checkbox.inputElement_.checked) allchecked = false;
30 tr.classList.add("is-selected");
31 checkbox.check();
32 });
33
34 if (allchecked) {
35 el.getAttribute("data-workers").split(",").forEach(workerid => {
36 var tr = document.querySelector("tr[data-worker-id=\""+workerid+"\"]");
37 var checkbox = tr.querySelector("label").MaterialCheckbox;
38 tr.classList.remove("is-selected");
39 checkbox.uncheck();
40 });
41 }
42 });
43 });
44
45 var multiselectEl = document.querySelector(".mdl-custom-multiselect");
46 if (multiselectEl !== null) {
47 multiselectEl.addEventListener("custom-multiselect-change", e => {
48 var companies = [];
49 document.querySelectorAll(".mdl-custom-multiselect .mdl-custom-multiselect__item input[type=\"checkbox\"]").forEach(checkbox => {
50 if (checkbox.checked) {
51 companies.push(checkbox.value);
52 }
53 });
54
55 document.querySelectorAll("tr[data-worker-id]").forEach(tr => {
56 toggleTr(tr, companies.includes(tr.getAttribute("data-company-id")));
57 });
58 });
59 }
60
61 document.querySelectorAll("input[name=\"companies\[\]\"]").forEach(input => {
62 input.checked = true;
63 var customevent = document.createEvent("HTMLEvents");
64 customevent.initEvent("change", false, true);
65 input.dispatchEvent(customevent);
66 });
67
68 document.getElementById("format").addEventListener("change", e => {
69 document.getElementById("pdf").style.display = (document.getElementById("format").value != "1" && document.getElementById("format").value != "2" ? "none" : "block");
70 });
71});