wiki/assets/js/sort.js
Pk11 163e81a3c7 Initial site
TWiLight wiki + NightScript's DS Index in English
and a couple pages in Japanese for testing
2020-12-20 22:18:48 -06:00

38 lines
1.5 KiB
JavaScript

if(!localStorage.sortDirection)
localStorage.sortDirection = 1;
if(!localStorage.sortProp)
localStorage.sortProp = "updated";
document.getElementById("sort-" + localStorage.sortProp).classList.add("btn-secondary");
document.getElementById("sort-" + localStorage.sortProp).classList.remove("btn-outline-secondary");
document.getElementById("sort-direction").innerText = parseInt(localStorage.sortDirection) ? "Descending" : "Ascending";
sort();
function toggleSortDirection() {
localStorage.sortDirection ^= 1;
document.getElementById("sort-direction").innerText = parseInt(localStorage.sortDirection) ? "Descending" : "Ascending";
sort();
}
function sort(prop) {
if(prop) {
document.getElementById("sort-" + prop).classList.remove("btn-outline-secondary");
document.getElementById("sort-" + prop).classList.add("btn-secondary");
document.getElementById("sort-" + localStorage.sortProp).classList.add("btn-outline-secondary");
document.getElementById("sort-" + localStorage.sortProp).classList.remove("btn-secondary");
localStorage.sortProp = prop;
}
let sorted = Array.from(document.getElementsByClassName("card")).sort(function(l, r) {
return ((l.dataset[localStorage.sortProp].toLowerCase() < r.dataset[localStorage.sortProp].toLowerCase()) ^ localStorage.sortDirection) ? -1 : 1;
});
let container = document.getElementById("card-container");
container.innerHTML = "";
sorted.forEach(function(r) {
let col = document.createElement("div");
col.classList = "col mb-3";
col.appendChild(r);
container.appendChild(col);
});
}