CP_EHRENAMT/app/static/sidebar.js
2026-06-25 18:58:44 +02:00

24 lines
1 KiB
JavaScript

/* Admin-Sidebar: mobiles Off-Canvas-Verhalten (zweite v1-JS-Ausnahme, CLAUDE.md).
Togglet die Klasse cp-sidebar-open am <body>; das CSS schiebt die Sidebar ein.
Schließt bei Klick auf das Overlay oder auf einen Menüpunkt. Kein Framework. */
(function () {
var oeffner = document.querySelector("[data-sidebar-open]");
var overlay = document.querySelector("[data-sidebar-close]");
var sidebar = document.getElementById("cp-sidebar");
if (!oeffner || !sidebar) return;
function setOffen(offen) {
document.body.classList.toggle("cp-sidebar-open", offen);
oeffner.setAttribute("aria-expanded", offen ? "true" : "false");
if (overlay) overlay.hidden = !offen;
}
oeffner.addEventListener("click", function () { setOffen(true); });
if (overlay) overlay.addEventListener("click", function () { setOffen(false); });
sidebar.addEventListener("click", function (e) {
if (e.target.closest("a")) setOffen(false);
});
document.addEventListener("keydown", function (e) {
if (e.key === "Escape") setOffen(false);
});
})();