FossilRepo

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

Keyboard Shortcuts

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