Project import generated by Copybara.

GitOrigin-RevId: 63746295f1a5ab5a619056791995793d65529e62
diff --git a/src/js/workers.js b/src/js/workers.js
new file mode 100644
index 0000000..88ac687
--- /dev/null
+++ b/src/js/workers.js
@@ -0,0 +1,71 @@
+function getRawWorkers() {
+  var parameters = [];
+  document.querySelectorAll("tr[data-worker-id]").forEach(tr => {
+    if (tr.querySelector("input[type=\"checkbox\"]").checked) {
+      parameters.push(tr.getAttribute("data-worker-id"));
+    }
+  });
+
+  return parameters;
+}
+
+function getParameters() {
+  var parameters = [];
+  var workers = getRawWorkers();
+  workers.forEach(worker => {
+    parameters.push("workers[]="+worker);
+  });
+
+  if (parameters.length == 0) return false;
+
+  return parameters.join("&");
+}
+
+window.addEventListener("load", function() {
+  var datatable = $('.datatable').DataTable({
+    paging:   false,
+    ordering: false,
+    info:     false,
+    searching:true
+  });
+
+  document.querySelector("#usuario").addEventListener("input", function(evt) {
+    this.search(evt.target.value);
+    this.draw(true);
+  }.bind(datatable));
+
+  document.querySelector(".filter").addEventListener("click", function() {
+    document.querySelector("#filter").showModal();
+    /* Or dialog.show(); to show the dialog without a backdrop. */
+  });
+
+  ["copytemplate", "addincidentbulk"].forEach(action => {
+    document.getElementById(action).addEventListener("click", function() {
+      var parameters = getParameters();
+      if (parameters === false) return;
+
+      var url = "dynamic/"+action+".php?"+parameters;
+      dynDialog.load(url);
+    });
+  });
+
+  document.getElementById("addrecurringincident").addEventListener("click", function () {
+    var workers = getRawWorkers();
+    if (workers.length > 1) {
+      if (document.querySelector(".mdl-js-snackbar") === null) {
+        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>');
+        componentHandler.upgradeElement(document.querySelector(".mdl-js-snackbar"));
+      }
+
+      document.querySelector(".mdl-js-snackbar").MaterialSnackbar.showSnackbar(
+        {
+          message: "Solo se puede añadir una incidencia recurrente a un solo trabajador.",
+          timeout: 5000
+        }
+      );
+      // Display error message
+    } else if (workers.length == 1) {
+      window.location = "incidents.php?openRecurringFormWorker="+workers[0];
+    }
+  });
+});