nav_sidebar.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. 'use strict';
  2. {
  3. const toggleNavSidebar = document.getElementById('toggle-nav-sidebar');
  4. if (toggleNavSidebar !== null) {
  5. const navLinks = document.querySelectorAll('#nav-sidebar a');
  6. function disableNavLinkTabbing() {
  7. for (const navLink of navLinks) {
  8. navLink.tabIndex = -1;
  9. }
  10. }
  11. function enableNavLinkTabbing() {
  12. for (const navLink of navLinks) {
  13. navLink.tabIndex = 0;
  14. }
  15. }
  16. const main = document.getElementById('main');
  17. let navSidebarIsOpen = localStorage.getItem('django.admin.navSidebarIsOpen');
  18. if (navSidebarIsOpen === null) {
  19. navSidebarIsOpen = 'true';
  20. }
  21. if (navSidebarIsOpen === 'false') {
  22. disableNavLinkTabbing();
  23. }
  24. main.classList.toggle('shifted', navSidebarIsOpen === 'true');
  25. toggleNavSidebar.addEventListener('click', function() {
  26. if (navSidebarIsOpen === 'true') {
  27. navSidebarIsOpen = 'false';
  28. disableNavLinkTabbing();
  29. } else {
  30. navSidebarIsOpen = 'true';
  31. enableNavLinkTabbing();
  32. }
  33. localStorage.setItem('django.admin.navSidebarIsOpen', navSidebarIsOpen);
  34. main.classList.toggle('shifted');
  35. });
  36. }
  37. }