utils: remove duplicate function and convert changeTableButtonStates to vanilla JS

Signed-off-by: XhmikosR <xhmikosr@gmail.com>
This commit is contained in:
XhmikosR
2025-04-15 21:44:38 +03:00
parent 387ad34927
commit 9c00467a6d
6 changed files with 23 additions and 46 deletions

View File

@@ -322,7 +322,7 @@ function initTable() {
} }
table.on("init select deselect", () => { table.on("init select deselect", () => {
utils.changeBulkDeleteStates(table); utils.changeTableButtonStates(table);
}); });
table.on("order.dt", () => { table.on("order.dt", () => {

View File

@@ -115,7 +115,7 @@ function delGroupItems(type, ids, table, listType = undefined) {
// Clear selection after deletion // Clear selection after deletion
table.rows().deselect(); table.rows().deselect();
utils.changeBulkDeleteStates(table); utils.changeTableButtonStates(table);
// Update number of <type> items in the sidebar // Update number of <type> items in the sidebar
updateFtlInfo(); updateFtlInfo();

View File

@@ -398,7 +398,7 @@ function initTable() {
} }
table.on("init select deselect", () => { table.on("init select deselect", () => {
utils.changeBulkDeleteStates(table); utils.changeTableButtonStates(table);
}); });
table.on("order.dt", () => { table.on("order.dt", () => {

View File

@@ -440,7 +440,7 @@ function initTable() {
}); });
table.on("init select deselect", () => { table.on("init select deselect", () => {
utils.changeBulkDeleteStates(table); utils.changeTableButtonStates(table);
}); });
table.on("order.dt", () => { table.on("order.dt", () => {

View File

@@ -207,7 +207,7 @@ $(() => {
table.rows(0).deselect(); table.rows(0).deselect();
} }
utils.changeBulkDeleteStates(table); utils.changeTableButtonStates(table);
}); });
table.on("order.dt", () => { table.on("order.dt", () => {

View File

@@ -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) { function doLogout(url) {
$.ajax({ $.ajax({
url: document.body.dataset.apiurl + "/auth", url: document.body.dataset.apiurl + "/auth",
@@ -474,30 +447,35 @@ function renderTimespan(data, type) {
return data; return data;
} }
// Show only the appropriate buttons // Show only the appropriate delete buttons in datatables
function changeTableButtonStates(table) { 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 allRows = table.rows({ filter: "applied" }).data().length;
const pageLength = table.page.len(); const pageLength = table.page.len();
const selectedRows = table.rows(".selected").data().length; const selectedRows = table.rows(".selected").data().length;
if (selectedRows === 0) { if (selectedRows === 0) {
// Nothing selected // Nothing selected
$(".selectAll").removeClass("hidden"); for (const el of selectAllElements) el.classList.remove("hidden");
$(".selectMore").addClass("hidden"); for (const el of selectMoreElements) el.classList.add("hidden");
$(".removeAll").addClass("hidden"); for (const el of removeAllElements) el.classList.add("hidden");
$(".deleteSelected").addClass("hidden"); for (const el of deleteSelectedElements) el.classList.add("hidden");
} else if (selectedRows >= pageLength || selectedRows === allRows) { } else if (selectedRows >= pageLength || selectedRows === allRows) {
// Whole page is selected (or all available messages were selected) // Whole page is selected (or all available messages were selected)
$(".selectAll").addClass("hidden"); for (const el of selectAllElements) el.classList.add("hidden");
$(".selectMore").addClass("hidden"); for (const el of selectMoreElements) el.classList.add("hidden");
$(".removeAll").removeClass("hidden"); for (const el of removeAllElements) el.classList.remove("hidden");
$(".deleteSelected").removeClass("hidden"); for (const el of deleteSelectedElements) el.classList.remove("hidden");
} else { } else {
// Some rows are selected, but not all // Some rows are selected, but not all
$(".selectAll").addClass("hidden"); for (const el of selectAllElements) el.classList.add("hidden");
$(".selectMore").removeClass("hidden"); for (const el of selectMoreElements) el.classList.remove("hidden");
$(".removeAll").addClass("hidden"); for (const el of removeAllElements) el.classList.add("hidden");
$(".deleteSelected").removeClass("hidden"); for (const el of deleteSelectedElements) el.classList.remove("hidden");
} }
} }
@@ -722,7 +700,6 @@ globalThis.utils = (function () {
toPercent, toPercent,
colorBar, colorBar,
checkMessages, checkMessages,
changeBulkDeleteStates,
doLogout, doLogout,
renderTimestamp, renderTimestamp,
renderTimespan, renderTimespan,