shippingservice/staticfiles/admin/js/nav_sidebar.js
2026-09-25 21:50:41 +05:30

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();
}