diff --git a/scripts/js/groups-clients.js b/scripts/js/groups-clients.js index 5d4e970c..2993ed34 100644 --- a/scripts/js/groups-clients.js +++ b/scripts/js/groups-clients.js @@ -322,7 +322,7 @@ function initTable() { } table.on("init select deselect", () => { - utils.changeBulkDeleteStates(table); + utils.changeTableButtonStates(table); }); table.on("order.dt", () => { diff --git a/scripts/js/groups-common.js b/scripts/js/groups-common.js index 865443a0..7731c6f8 100644 --- a/scripts/js/groups-common.js +++ b/scripts/js/groups-common.js @@ -115,7 +115,7 @@ function delGroupItems(type, ids, table, listType = undefined) { // Clear selection after deletion table.rows().deselect(); - utils.changeBulkDeleteStates(table); + utils.changeTableButtonStates(table); // Update number of items in the sidebar updateFtlInfo(); diff --git a/scripts/js/groups-domains.js b/scripts/js/groups-domains.js index ae7c56a7..036bfd32 100644 --- a/scripts/js/groups-domains.js +++ b/scripts/js/groups-domains.js @@ -398,7 +398,7 @@ function initTable() { } table.on("init select deselect", () => { - utils.changeBulkDeleteStates(table); + utils.changeTableButtonStates(table); }); table.on("order.dt", () => { diff --git a/scripts/js/groups-lists.js b/scripts/js/groups-lists.js index cbac01ec..9e6808ad 100644 --- a/scripts/js/groups-lists.js +++ b/scripts/js/groups-lists.js @@ -440,7 +440,7 @@ function initTable() { }); table.on("init select deselect", () => { - utils.changeBulkDeleteStates(table); + utils.changeTableButtonStates(table); }); table.on("order.dt", () => { diff --git a/scripts/js/groups.js b/scripts/js/groups.js index df32260c..581902f6 100644 --- a/scripts/js/groups.js +++ b/scripts/js/groups.js @@ -207,7 +207,7 @@ $(() => { table.rows(0).deselect(); } - utils.changeBulkDeleteStates(table); + utils.changeTableButtonStates(table); }); table.on("order.dt", () => { diff --git a/scripts/js/utils.js b/scripts/js/utils.js index 6b21590a..11473bb6 100644 --- a/scripts/js/utils.js +++ b/scripts/js/utils.js @@ -418,33 +418,6 @@ function checkMessages() { }); } -// Show only the appropriate delete buttons in datatables -function changeBulkDeleteStates(table) { - const allRows = table.rows({ filter: "applied" }).data().length; - const pageLength = table.page.len(); - const selectedRows = table.rows(".selected").data().length; - - if (selectedRows === 0) { - // Nothing selected - $(".selectAll").removeClass("hidden"); - $(".selectMore").addClass("hidden"); - $(".removeAll").addClass("hidden"); - $(".deleteSelected").addClass("hidden"); - } else if (selectedRows >= pageLength || selectedRows === allRows) { - // Whole page is selected (or all available messages were selected) - $(".selectAll").addClass("hidden"); - $(".selectMore").addClass("hidden"); - $(".removeAll").removeClass("hidden"); - $(".deleteSelected").removeClass("hidden"); - } else { - // Some rows are selected, but not all - $(".selectAll").addClass("hidden"); - $(".selectMore").removeClass("hidden"); - $(".removeAll").addClass("hidden"); - $(".deleteSelected").removeClass("hidden"); - } -} - function doLogout(url) { $.ajax({ url: document.body.dataset.apiurl + "/auth", @@ -474,30 +447,35 @@ function renderTimespan(data, type) { return data; } -// Show only the appropriate buttons +// Show only the appropriate delete buttons in datatables function changeTableButtonStates(table) { + const selectAllElements = document.querySelectorAll(".selectAll"); + const selectMoreElements = document.querySelectorAll(".selectMore"); + const removeAllElements = document.querySelectorAll(".removeAll"); + const deleteSelectedElements = document.querySelectorAll(".deleteSelected"); + const allRows = table.rows({ filter: "applied" }).data().length; const pageLength = table.page.len(); const selectedRows = table.rows(".selected").data().length; if (selectedRows === 0) { // Nothing selected - $(".selectAll").removeClass("hidden"); - $(".selectMore").addClass("hidden"); - $(".removeAll").addClass("hidden"); - $(".deleteSelected").addClass("hidden"); + for (const el of selectAllElements) el.classList.remove("hidden"); + for (const el of selectMoreElements) el.classList.add("hidden"); + for (const el of removeAllElements) el.classList.add("hidden"); + for (const el of deleteSelectedElements) el.classList.add("hidden"); } else if (selectedRows >= pageLength || selectedRows === allRows) { // Whole page is selected (or all available messages were selected) - $(".selectAll").addClass("hidden"); - $(".selectMore").addClass("hidden"); - $(".removeAll").removeClass("hidden"); - $(".deleteSelected").removeClass("hidden"); + for (const el of selectAllElements) el.classList.add("hidden"); + for (const el of selectMoreElements) el.classList.add("hidden"); + for (const el of removeAllElements) el.classList.remove("hidden"); + for (const el of deleteSelectedElements) el.classList.remove("hidden"); } else { // Some rows are selected, but not all - $(".selectAll").addClass("hidden"); - $(".selectMore").removeClass("hidden"); - $(".removeAll").addClass("hidden"); - $(".deleteSelected").removeClass("hidden"); + for (const el of selectAllElements) el.classList.add("hidden"); + for (const el of selectMoreElements) el.classList.remove("hidden"); + for (const el of removeAllElements) el.classList.add("hidden"); + for (const el of deleteSelectedElements) el.classList.remove("hidden"); } } @@ -722,7 +700,6 @@ globalThis.utils = (function () { toPercent, colorBar, checkMessages, - changeBulkDeleteStates, doLogout, renderTimestamp, renderTimespan,