All checks were successful
Deploy Beta (NATIVE) / deploy (push) Successful in 33s
89 lines
3.1 KiB
JavaScript
89 lines
3.1 KiB
JavaScript
"use strict";
|
|
{
|
|
const toggleNavSidebar = document.getElementById("toggle-nav-sidebar");
|
|
if (toggleNavSidebar !== null) {
|
|
const navSidebar = document.getElementById("nav-sidebar");
|
|
const main = document.getElementById("main");
|
|
let navSidebarIsOpen = localStorage.getItem(
|
|
"django.admin.navSidebarIsOpen",
|
|
);
|
|
if (navSidebarIsOpen === null) {
|
|
navSidebarIsOpen = "true";
|
|
}
|
|
main.classList.toggle("shifted", navSidebarIsOpen === "true");
|
|
navSidebar.setAttribute("aria-expanded", navSidebarIsOpen);
|
|
|
|
toggleNavSidebar.addEventListener("click", function () {
|
|
if (navSidebarIsOpen === "true") {
|
|
navSidebarIsOpen = "false";
|
|
} else {
|
|
navSidebarIsOpen = "true";
|
|
}
|
|
localStorage.setItem(
|
|
"django.admin.navSidebarIsOpen",
|
|
navSidebarIsOpen,
|
|
);
|
|
main.classList.toggle("shifted");
|
|
navSidebar.setAttribute("aria-expanded", navSidebarIsOpen);
|
|
});
|
|
}
|
|
|
|
function initSidebarQuickFilter() {
|
|
const options = [];
|
|
const navSidebar = document.getElementById("nav-sidebar");
|
|
if (!navSidebar) {
|
|
return;
|
|
}
|
|
navSidebar.querySelectorAll("th[scope=row] a").forEach((container) => {
|
|
options.push({ title: container.innerHTML, node: container });
|
|
});
|
|
|
|
function checkValue(event) {
|
|
let filterValue = event.target.value;
|
|
if (filterValue) {
|
|
filterValue = filterValue.toLowerCase();
|
|
}
|
|
if (event.key === "Escape") {
|
|
filterValue = "";
|
|
event.target.value = ""; // clear input
|
|
}
|
|
let matches = false;
|
|
for (const o of options) {
|
|
let displayValue = "";
|
|
if (filterValue) {
|
|
if (o.title.toLowerCase().indexOf(filterValue) === -1) {
|
|
displayValue = "none";
|
|
} else {
|
|
matches = true;
|
|
}
|
|
}
|
|
// show/hide parent <TR>
|
|
o.node.parentNode.parentNode.style.display = displayValue;
|
|
}
|
|
if (!filterValue || matches) {
|
|
event.target.classList.remove("no-results");
|
|
} else {
|
|
event.target.classList.add("no-results");
|
|
}
|
|
sessionStorage.setItem(
|
|
"django.admin.navSidebarFilterValue",
|
|
filterValue,
|
|
);
|
|
}
|
|
|
|
const nav = document.getElementById("nav-filter");
|
|
nav.addEventListener("change", checkValue, false);
|
|
nav.addEventListener("input", checkValue, false);
|
|
nav.addEventListener("keyup", checkValue, false);
|
|
|
|
const storedValue = sessionStorage.getItem(
|
|
"django.admin.navSidebarFilterValue",
|
|
);
|
|
if (storedValue) {
|
|
nav.value = storedValue;
|
|
checkValue({ target: nav, key: "" });
|
|
}
|
|
}
|
|
window.initSidebarQuickFilter = initSidebarQuickFilter;
|
|
initSidebarQuickFilter();
|
|
}
|