about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2026-01-23 17:31:03 -0600
committerFrederick Muriuki Muriithi2026-01-23 17:31:03 -0600
commit24cbc791a152dc60a84eb25455888d10479305f6 (patch)
tree5f2a8ac2997f12182cab46d715f9af7714af7259
parent5df4317e8bc2ed0f0c6e0ee8d1aad290995389cd (diff)
downloadgn-uploader-24cbc791a152dc60a84eb25455888d10479305f6.tar.gz
DataTables: Bug -- Improve performance - use provided indexes.
* Fix the function signatures
* Use the provided indexes for selection
-rw-r--r--uploader/static/js/datatables.js24
1 files changed, 16 insertions, 8 deletions
diff --git a/uploader/static/js/datatables.js b/uploader/static/js/datatables.js
index 7b6a187..d88d481 100644
--- a/uploader/static/js/datatables.js
+++ b/uploader/static/js/datatables.js
@@ -58,15 +58,23 @@ var buildDataTable = (tableId, data = [], columns = [], userSettings = {}) => {
         ...(data.length == 0 ? {} : {data: data}),
         ...(columns.length == 0 ? {} : {columns: columns})
     });
-    theDataTable.on("select", (event, datatable, type, cell, originalEvent) => {
-        datatable.rows({selected: true}).nodes().each((node, index) => {
-            $(node).find(".chk-row-select").prop("checked", true)
-        });
+    theDataTable.on("select", (event, datatable, type, indexes) => {
+        datatable
+            .rows(indexes)
+            .nodes()
+            .each((node, index) => {
+                $(node).find('input[type="checkbox"]:not(:checked)')
+                    .prop("checked", true);
+            });
     });
-    theDataTable.on("deselect", (event, datatable, type, cell, originalEvent) => {
-        datatable.rows({selected: false}).nodes().each((node, index) => {
-            $(node).find(".chk-row-select").prop("checked", false)
-        });
+    theDataTable.on("deselect", (event, datatable, type, indexes) => {
+        datatable
+            .rows(indexes)
+            .nodes()
+            .each(function(node, index) {
+                $(node).find('input[type="checkbox"]:checked')
+                    .prop("checked", false);
+            });
     });
     return theDataTable;
 };