get rid of storedRowTableState and all the bugs that comes with it.

This commit is contained in:
DESKTOP-T0O5CDB\DESK-555BD
2025-01-21 14:08:44 -07:00
parent a23b02e962
commit 2bf2469657
2 changed files with 44 additions and 34 deletions

View File

@@ -183,7 +183,7 @@ function hidePinnedNotes(vehicleId) {
}
}
function filterGarage(sender, isSort) {
function filterGarage(sender) {
var rowData = $(".garage-item");
if (sender == undefined) {
rowData.removeClass('override-hide');
@@ -191,14 +191,9 @@ function filterGarage(sender, isSort) {
}
var tagName = sender.textContent;
if ($(sender).hasClass("bg-primary")) {
if (!isSort) {
rowData.removeClass('override-hide');
$(sender).removeClass('bg-primary');
$(sender).addClass('bg-secondary');
} else {
rowData.addClass('override-hide');
$(`[data-tags~='${tagName}']`).removeClass('override-hide');
}
rowData.removeClass('override-hide');
$(sender).removeClass('bg-primary');
$(sender).addClass('bg-secondary');
} else {
//hide table rows.
rowData.addClass('override-hide');
@@ -264,14 +259,13 @@ function sortGarage(sender, isMobile) {
//restore table
sender.removeClass('sort-desc');
sender.html(isMobile ? `<span class="ms-2 display-3">${garageIcon}${sortColumn}</span>` : `${garageIcon}${sortColumn}`);
$('.vehiclesContainer').html(storedTableRowState);
filterGarage($(".tagfilter.bg-primary").get(0), true);
resetSortGarage();
} else {
//first time sorting.
//check if table was sorted before by a different column(only relevant to fuel tab)
if (storedTableRowState != null && ($(".sort-asc").length > 0 || $(".sort-desc").length > 0)) {
if ($("[default-sort]").length > 0 && ($(".sort-asc").length > 0 || $(".sort-desc").length > 0)) {
//restore table state.
$('.vehiclesContainer').html(storedTableRowState);
resetSortGarage();
//reset other sorted columns
if ($(".sort-asc").length > 0) {
$(".sort-asc").html($(".sort-asc").html().replace(sortAscIcon, ""));
@@ -284,12 +278,26 @@ function sortGarage(sender, isMobile) {
}
sender.addClass('sort-asc');
sender.html(isMobile ? `<span class="ms-2 display-3">${garageIcon}${sortColumn}${sortAscIcon}</span>` : `${garageIcon}${sortColumn}${sortAscIcon}`);
storedTableRowState = null;
storedTableRowState = $('.vehiclesContainer').html();
//append sortRowId to the vehicle container
$(`.garage-item`).map((index, elem) => {
$(elem).attr("default-sort", index);
});
sortVehicles(false);
}
}
}
function resetSortGarage() {
var rowData = $(`.garage-item`);
var sortedRow = rowData.toArray().sort((a, b) => {
var currentVal = $(a).attr('default-sort');
var nextVal = $(b).attr('default-sort');
return currentVal - nextVal;
});
$(".garage-item-add").map((index, elem) => {
sortedRow.push(elem);
})
$(`.vehiclesContainer`).html(sortedRow);
}
let dragged = null;
let draggedId = 0;

View File

@@ -412,7 +412,6 @@ function setDebounce(callBack) {
callBack();
}, 1000);
}
var storedTableRowState = null;
function toggleSort(tabName, sender) {
var sortColumn = sender.textContent;
var sortAscIcon = '<i class="bi bi-sort-numeric-down ms-2"></i>';
@@ -428,14 +427,13 @@ function toggleSort(tabName, sender) {
//restore table
sender.removeClass('sort-desc');
sender.html(`${sortColumn}`);
$(`#${tabName} table tbody`).html(storedTableRowState);
filterTable(tabName, $(".tagfilter.bg-primary").get(0), true);
resetSortTable(tabName);
} else {
//first time sorting.
//check if table was sorted before by a different column(only relevant to fuel tab)
if (storedTableRowState != null && ($(".sort-asc").length > 0 || $(".sort-desc").length > 0)) {
if ($("[default-sort]").length > 0 && ($(".sort-asc").length > 0 || $(".sort-desc").length > 0)) {
//restore table state.
$(`#${tabName} table tbody`).html(storedTableRowState);
resetSortTable(tabName);
//reset other sorted columns
if ($(".sort-asc").length > 0) {
$(".sort-asc").html($(".sort-asc").html().replace(sortAscIcon, ""));
@@ -448,8 +446,10 @@ function toggleSort(tabName, sender) {
}
sender.addClass('sort-asc');
sender.html(`${sortColumn}${sortAscIcon}`);
storedTableRowState = null;
storedTableRowState = $(`#${tabName} table tbody`).html();
//append sortRowId to the table rows.
$(`#${tabName} table tbody tr`).map((index, elem) => {
$(elem).attr("default-sort", index);
});
sortTable(tabName, sortColumn, false);
}
}
@@ -469,9 +469,17 @@ function sortTable(tabName, columnName, desc) {
}
});
$(`#${tabName} table tbody`).html(sortedRow);
filterTable(tabName, $(".tagfilter.bg-primary").get(0), true);
}
function filterTable(tabName, sender, isSort) {
function resetSortTable(tabName) {
var rowData = $(`#${tabName} table tbody tr`);
var sortedRow = rowData.toArray().sort((a, b) => {
var currentVal = $(a).attr('default-sort');
var nextVal = $(b).attr('default-sort');
return currentVal - nextVal;
});
$(`#${tabName} table tbody`).html(sortedRow);
}
function filterTable(tabName, sender) {
var rowData = $(`#${tabName} table tbody tr`);
if (sender == undefined) {
rowData.removeClass('override-hide');
@@ -480,16 +488,10 @@ function filterTable(tabName, sender, isSort) {
var tagName = sender.textContent;
//check for other applied filters
if ($(sender).hasClass("bg-primary")) {
if (!isSort) {
rowData.removeClass('override-hide');
$(sender).removeClass('bg-primary');
$(sender).addClass('bg-secondary');
updateAggregateLabels();
} else {
rowData.addClass('override-hide');
$(`[data-tags~='${tagName}']`).removeClass('override-hide');
updateAggregateLabels();
}
rowData.removeClass('override-hide');
$(sender).removeClass('bg-primary');
$(sender).addClass('bg-secondary');
updateAggregateLabels();
} else {
//hide table rows.
rowData.addClass('override-hide');