From cc76f09a6e21c65604bc61aa2117f3259242c8ae Mon Sep 17 00:00:00 2001 From: Peter Pfeufer Date: Thu, 25 Sep 2025 08:11:17 +0200 Subject: [PATCH] [CHANGE Move sidebar collapse JS into its own file --- .../allianceauth/js/sidebar-collapse.js | 30 ++++++++++++++ .../templates/allianceauth/base-bs5.html | 39 +------------------ .../bundles/auth-sidebar-collapse-js.html | 3 ++ 3 files changed, 34 insertions(+), 38 deletions(-) create mode 100644 allianceauth/static/allianceauth/js/sidebar-collapse.js create mode 100644 allianceauth/templates/bundles/auth-sidebar-collapse-js.html diff --git a/allianceauth/static/allianceauth/js/sidebar-collapse.js b/allianceauth/static/allianceauth/js/sidebar-collapse.js new file mode 100644 index 00000000..436dfdaa --- /dev/null +++ b/allianceauth/static/allianceauth/js/sidebar-collapse.js @@ -0,0 +1,30 @@ +$(document).ready(() => { + 'use strict'; + + const sidebar = document.getElementById('sidebar'); + const sidebarKey = `sidebar_${sidebar.id}`; + + sidebar.addEventListener('shown.bs.collapse', (event) => { + if (event.target.id === sidebar.id) { + localStorage.removeItem(sidebarKey); + } + }); + + sidebar.addEventListener('hidden.bs.collapse', (event) => { + if (event.target.id === sidebar.id) { + localStorage.setItem(sidebarKey, 'closed'); + } + }); + + sidebar.classList.toggle('show', localStorage.getItem(sidebarKey) !== 'closed'); + + const activeChildMenuItem = document.querySelector('ul#sidebar-menu ul.collapse a.active'); + + if (activeChildMenuItem) { + const activeChildMenuUl = activeChildMenuItem.closest('ul'); + activeChildMenuUl.classList.add('show'); + + document.querySelectorAll(`[data-bs-target^="#${activeChildMenuUl.id}"]`) + .forEach(element => element.setAttribute('aria-expanded', true)); + } +}); diff --git a/allianceauth/templates/allianceauth/base-bs5.html b/allianceauth/templates/allianceauth/base-bs5.html index a3dcd795..b21da87a 100644 --- a/allianceauth/templates/allianceauth/base-bs5.html +++ b/allianceauth/templates/allianceauth/base-bs5.html @@ -102,44 +102,7 @@ - + {% include "bundles/auth-sidebar-collapse-js.html" %} {% theme_js %} diff --git a/allianceauth/templates/bundles/auth-sidebar-collapse-js.html b/allianceauth/templates/bundles/auth-sidebar-collapse-js.html new file mode 100644 index 00000000..0840249a --- /dev/null +++ b/allianceauth/templates/bundles/auth-sidebar-collapse-js.html @@ -0,0 +1,3 @@ +{% load sri %} + +{% sri_static 'allianceauth/js/sidebar-collapse.js' %}