FossilRepo

fossilrepo / assets / admin / js / nav_sidebar.3b9190d420b1.js
Source Blame History 79 lines
afe42d0… ragelink 1 'use strict';
afe42d0… ragelink 2 {
afe42d0… ragelink 3 const toggleNavSidebar = document.getElementById('toggle-nav-sidebar');
afe42d0… ragelink 4 if (toggleNavSidebar !== null) {
afe42d0… ragelink 5 const navSidebar = document.getElementById('nav-sidebar');
afe42d0… ragelink 6 const main = document.getElementById('main');
afe42d0… ragelink 7 let navSidebarIsOpen = localStorage.getItem('django.admin.navSidebarIsOpen');
afe42d0… ragelink 8 if (navSidebarIsOpen === null) {
afe42d0… ragelink 9 navSidebarIsOpen = 'true';
afe42d0… ragelink 10 }
afe42d0… ragelink 11 main.classList.toggle('shifted', navSidebarIsOpen === 'true');
afe42d0… ragelink 12 navSidebar.setAttribute('aria-expanded', navSidebarIsOpen);
afe42d0… ragelink 13
afe42d0… ragelink 14 toggleNavSidebar.addEventListener('click', function() {
afe42d0… ragelink 15 if (navSidebarIsOpen === 'true') {
afe42d0… ragelink 16 navSidebarIsOpen = 'false';
afe42d0… ragelink 17 } else {
afe42d0… ragelink 18 navSidebarIsOpen = 'true';
afe42d0… ragelink 19 }
afe42d0… ragelink 20 localStorage.setItem('django.admin.navSidebarIsOpen', navSidebarIsOpen);
afe42d0… ragelink 21 main.classList.toggle('shifted');
afe42d0… ragelink 22 navSidebar.setAttribute('aria-expanded', navSidebarIsOpen);
afe42d0… ragelink 23 });
afe42d0… ragelink 24 }
afe42d0… ragelink 25
afe42d0… ragelink 26 function initSidebarQuickFilter() {
afe42d0… ragelink 27 const options = [];
afe42d0… ragelink 28 const navSidebar = document.getElementById('nav-sidebar');
afe42d0… ragelink 29 if (!navSidebar) {
afe42d0… ragelink 30 return;
afe42d0… ragelink 31 }
afe42d0… ragelink 32 navSidebar.querySelectorAll('th[scope=row] a').forEach((container) => {
afe42d0… ragelink 33 options.push({title: container.innerHTML, node: container});
afe42d0… ragelink 34 });
afe42d0… ragelink 35
afe42d0… ragelink 36 function checkValue(event) {
afe42d0… ragelink 37 let filterValue = event.target.value;
afe42d0… ragelink 38 if (filterValue) {
afe42d0… ragelink 39 filterValue = filterValue.toLowerCase();
afe42d0… ragelink 40 }
afe42d0… ragelink 41 if (event.key === 'Escape') {
afe42d0… ragelink 42 filterValue = '';
afe42d0… ragelink 43 event.target.value = ''; // clear input
afe42d0… ragelink 44 }
afe42d0… ragelink 45 let matches = false;
afe42d0… ragelink 46 for (const o of options) {
afe42d0… ragelink 47 let displayValue = '';
afe42d0… ragelink 48 if (filterValue) {
afe42d0… ragelink 49 if (o.title.toLowerCase().indexOf(filterValue) === -1) {
afe42d0… ragelink 50 displayValue = 'none';
afe42d0… ragelink 51 } else {
afe42d0… ragelink 52 matches = true;
afe42d0… ragelink 53 }
afe42d0… ragelink 54 }
afe42d0… ragelink 55 // show/hide parent <TR>
afe42d0… ragelink 56 o.node.parentNode.parentNode.style.display = displayValue;
afe42d0… ragelink 57 }
afe42d0… ragelink 58 if (!filterValue || matches) {
afe42d0… ragelink 59 event.target.classList.remove('no-results');
afe42d0… ragelink 60 } else {
afe42d0… ragelink 61 event.target.classList.add('no-results');
afe42d0… ragelink 62 }
afe42d0… ragelink 63 sessionStorage.setItem('django.admin.navSidebarFilterValue', filterValue);
afe42d0… ragelink 64 }
afe42d0… ragelink 65
afe42d0… ragelink 66 const nav = document.getElementById('nav-filter');
afe42d0… ragelink 67 nav.addEventListener('change', checkValue, false);
afe42d0… ragelink 68 nav.addEventListener('input', checkValue, false);
afe42d0… ragelink 69 nav.addEventListener('keyup', checkValue, false);
afe42d0… ragelink 70
afe42d0… ragelink 71 const storedValue = sessionStorage.getItem('django.admin.navSidebarFilterValue');
afe42d0… ragelink 72 if (storedValue) {
afe42d0… ragelink 73 nav.value = storedValue;
afe42d0… ragelink 74 checkValue({target: nav, key: ''});
afe42d0… ragelink 75 }
afe42d0… ragelink 76 }
afe42d0… ragelink 77 window.initSidebarQuickFilter = initSidebarQuickFilter;
afe42d0… ragelink 78 initSidebarQuickFilter();
afe42d0… ragelink 79 }

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button