summaryrefslogtreecommitdiffstats
path: root/media/admin/js/nav_sidebar.js
diff options
context:
space:
mode:
Diffstat (limited to 'media/admin/js/nav_sidebar.js')
-rw-r--r--media/admin/js/nav_sidebar.js39
1 files changed, 39 insertions, 0 deletions
diff --git a/media/admin/js/nav_sidebar.js b/media/admin/js/nav_sidebar.js
new file mode 100644
index 0000000..efaa721
--- /dev/null
+++ b/media/admin/js/nav_sidebar.js
@@ -0,0 +1,39 @@
+'use strict';
+{
+ const toggleNavSidebar = document.getElementById('toggle-nav-sidebar');
+ if (toggleNavSidebar !== null) {
+ const navLinks = document.querySelectorAll('#nav-sidebar a');
+ function disableNavLinkTabbing() {
+ for (const navLink of navLinks) {
+ navLink.tabIndex = -1;
+ }
+ }
+ function enableNavLinkTabbing() {
+ for (const navLink of navLinks) {
+ navLink.tabIndex = 0;
+ }
+ }
+
+ const main = document.getElementById('main');
+ let navSidebarIsOpen = localStorage.getItem('django.admin.navSidebarIsOpen');
+ if (navSidebarIsOpen === null) {
+ navSidebarIsOpen = 'true';
+ }
+ if (navSidebarIsOpen === 'false') {
+ disableNavLinkTabbing();
+ }
+ main.classList.toggle('shifted', navSidebarIsOpen === 'true');
+
+ toggleNavSidebar.addEventListener('click', function() {
+ if (navSidebarIsOpen === 'true') {
+ navSidebarIsOpen = 'false';
+ disableNavLinkTabbing();
+ } else {
+ navSidebarIsOpen = 'true';
+ enableNavLinkTabbing();
+ }
+ localStorage.setItem('django.admin.navSidebarIsOpen', navSidebarIsOpen);
+ main.classList.toggle('shifted');
+ });
+ }
+}