about summary refs log tree commit diff
path: root/uploader
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2025-03-10 12:31:55 -0500
committerFrederick Muriuki Muriithi2025-03-10 12:32:18 -0500
commit144feac1b4980a3a5346afd9843f41426c6d33d9 (patch)
tree7706343940a8ba7ce4a6e066d5a002210ef3cdc4 /uploader
parent0433a9cb880e26c06a8876d18a90c171eee500bd (diff)
downloadgn-uploader-144feac1b4980a3a5346afd9843f41426c6d33d9.tar.gz
Allow row selection by clicking anywhere on the row.
Diffstat (limited to 'uploader')
-rw-r--r--uploader/static/js/datatables.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/uploader/static/js/datatables.js b/uploader/static/js/datatables.js
index 76b1877..ff7a680 100644
--- a/uploader/static/js/datatables.js
+++ b/uploader/static/js/datatables.js
@@ -23,3 +23,29 @@ var dtAddRowSelectionHandler = (tableId) => {
         });
     });
 };
+
+
+var toggleCheck = (checkboxOrRadio) => {
+    if (checkboxOrRadio.length > 0) {
+        var currentState = checkboxOrRadio.prop("checked");
+        var newState = !currentState;
+        if (currentState == true && checkboxOrRadio.attr("type").toLowerCase() == "radio") {
+            // We don't want to toggle from true to false by clicking on the row
+            // if it is a radio button.
+            newState = currentState;
+        }
+        checkboxOrRadio.prop("checked", newState);
+        checkboxOrRadio.trigger("change");
+    }
+};
+
+
+var dtAddRowClickHandler = (tableId) => {
+    $(tableId).on("draw.dt", (event) => {
+        $(tableId + " tbody tr").on("click", (event) => {
+            var row = event.target.closest("tr");
+            var checkboxOrRadio = $(row).find(".chk-row-select");
+            toggleCheck(checkboxOrRadio);
+        });
+    });
+};