Keep sorting in local storage.
This commit is contained in:
parent
4b188da546
commit
883835bf24
@ -220,11 +220,45 @@ document.getElementsByName("filter")[0].addEventListener("input", e => filter(e.
|
|||||||
|
|
||||||
//// SORT BY COLUMN
|
//// SORT BY COLUMN
|
||||||
|
|
||||||
const units = {"B": 0, "KiB": 1, "MiB": 2, "GiB": 3, "TiB": 4};
|
|
||||||
const [thead_name, thead_date, thead_size] = document.getElementsByTagName('thead')[0]
|
const [thead_name, thead_date, thead_size] = document.getElementsByTagName('thead')[0]
|
||||||
.children[0].children;
|
.children[0].children;
|
||||||
|
|
||||||
let g_sort_reverse = false;
|
if (localStorage.getItem("sort_reverse") == null)
|
||||||
|
localStorage.setItem("sort_reverse", false);
|
||||||
|
|
||||||
|
function sortTable(compareFn, filterFn, filterNegFn, target, other) {
|
||||||
|
let records = Array.from(g_tbody.children);
|
||||||
|
|
||||||
|
let dirs = [];
|
||||||
|
if (filterFn != null) {
|
||||||
|
dirs = records.filter(filterFn);
|
||||||
|
records = records.filter(filterNegFn);
|
||||||
|
}
|
||||||
|
|
||||||
|
records.sort(compareFn);
|
||||||
|
|
||||||
|
g_tbody.textContent = "";
|
||||||
|
|
||||||
|
other.forEach(v => {
|
||||||
|
v.classList.remove("sort-up");
|
||||||
|
v.classList.remove("sort-down");
|
||||||
|
});
|
||||||
|
|
||||||
|
if (filterFn != null)
|
||||||
|
g_tbody.append(...dirs);
|
||||||
|
|
||||||
|
if (localStorage.getItem("sort_reverse") == "true") {
|
||||||
|
g_tbody.append(...records.reverse());
|
||||||
|
target.classList.add("sort-up");
|
||||||
|
target.classList.remove("sort-down");
|
||||||
|
} else {
|
||||||
|
g_tbody.append(...records);
|
||||||
|
target.classList.add("sort-down");
|
||||||
|
target.classList.remove("sort-up");
|
||||||
|
}
|
||||||
|
|
||||||
|
localStorage.setItem("sort_reverse", !(localStorage.getItem("sort_reverse") == "true"));
|
||||||
|
}
|
||||||
|
|
||||||
thead_name.classList.toggle("clickable");
|
thead_name.classList.toggle("clickable");
|
||||||
thead_name.addEventListener('click', e => {
|
thead_name.addEventListener('click', e => {
|
||||||
@ -236,6 +270,7 @@ thead_name.addEventListener('click', e => {
|
|||||||
}, null, null, thead_name, [thead_date, thead_size]);
|
}, null, null, thead_name, [thead_date, thead_size]);
|
||||||
g_first_row = g_tbody.firstChild;
|
g_first_row = g_tbody.firstChild;
|
||||||
g_last_row = g_tbody.lastChild;
|
g_last_row = g_tbody.lastChild;
|
||||||
|
localStorage["sort_column"] = "name";
|
||||||
});
|
});
|
||||||
|
|
||||||
thead_date.classList.toggle("clickable");
|
thead_date.classList.toggle("clickable");
|
||||||
@ -248,6 +283,7 @@ thead_date.addEventListener('click', e => {
|
|||||||
}, null, null, thead_date, [thead_name, thead_size]);
|
}, null, null, thead_date, [thead_name, thead_size]);
|
||||||
g_first_row = g_tbody.firstChild;
|
g_first_row = g_tbody.firstChild;
|
||||||
g_last_row = g_tbody.lastChild;
|
g_last_row = g_tbody.lastChild;
|
||||||
|
localStorage["sort_column"] = "date";
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@ -276,38 +312,12 @@ thead_size.addEventListener('click', e => {
|
|||||||
thead_size, [thead_name, thead_date]);
|
thead_size, [thead_name, thead_date]);
|
||||||
g_first_row = g_tbody.firstChild;
|
g_first_row = g_tbody.firstChild;
|
||||||
g_last_row = g_tbody.lastChild;
|
g_last_row = g_tbody.lastChild;
|
||||||
|
localStorage["sort_column"] = "size";
|
||||||
});
|
});
|
||||||
|
|
||||||
function sortTable(compareFn, filterFn, filterNegFn, target, other) {
|
localStorage.setItem("sort_reverse", !(localStorage.getItem("sort_reverse") == "true"));
|
||||||
let records = Array.from(g_tbody.children);
|
switch (localStorage["sort_column"]) {
|
||||||
|
case "name": thead_name.click(); break;
|
||||||
let dirs = [];
|
case "date": thead_date.click(); break;
|
||||||
if (filterFn != null) {
|
case "size": thead_size.click(); break;
|
||||||
dirs = records.filter(filterFn);
|
|
||||||
records = records.filter(filterNegFn);
|
|
||||||
}
|
|
||||||
|
|
||||||
records.sort(compareFn);
|
|
||||||
|
|
||||||
g_tbody.textContent = "";
|
|
||||||
|
|
||||||
other.forEach(v => {
|
|
||||||
v.classList.remove("sort-up");
|
|
||||||
v.classList.remove("sort-down");
|
|
||||||
});
|
|
||||||
|
|
||||||
if (filterFn != null)
|
|
||||||
g_tbody.append(...dirs);
|
|
||||||
|
|
||||||
if (g_sort_reverse) {
|
|
||||||
g_tbody.append(...records.reverse());
|
|
||||||
target.classList.add("sort-up");
|
|
||||||
target.classList.remove("sort-down");
|
|
||||||
} else {
|
|
||||||
g_tbody.append(...records);
|
|
||||||
target.classList.add("sort-down");
|
|
||||||
target.classList.remove("sort-up");
|
|
||||||
}
|
|
||||||
|
|
||||||
g_sort_reverse = !g_sort_reverse;
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user