36 lines
1.7 KiB
JavaScript
36 lines
1.7 KiB
JavaScript
(function() {
|
|
window.onload = function() {
|
|
for (let moduleEl of document.querySelectorAll('.admin-interface.foldable-apps [class^="app-"].module')) {
|
|
// apply collapsed value from localstorage value
|
|
let moduleAppClass = null;
|
|
let moduleCollapsedClass = 'collapsed';
|
|
moduleEl.classList.forEach(function(className) {
|
|
if (className.startsWith('app-')) {
|
|
moduleAppClass = className;
|
|
}
|
|
});
|
|
if (moduleAppClass) {
|
|
let moduleAppKey = 'admin-interface.foldable-apps_' + moduleAppClass + '_collapsed';
|
|
let moduleCollapsed = Boolean(parseInt((localStorage.getItem(moduleAppKey) || 0)) || 0);
|
|
if (moduleCollapsed === true) {
|
|
moduleEl.classList.add(moduleCollapsedClass);
|
|
} else {
|
|
moduleEl.classList.remove(moduleCollapsedClass);
|
|
}
|
|
// attach click for togggle collapsed class
|
|
for (let captionEl of moduleEl.querySelectorAll('caption')) {
|
|
captionEl.onclick = function(event) {
|
|
// only when not clicking on the app name link
|
|
if (event.target.tagName.toLowerCase() === 'caption') {
|
|
moduleEl.classList.toggle(moduleCollapsedClass);
|
|
moduleCollapsed = moduleEl.classList.contains(moduleCollapsedClass);
|
|
localStorage.setItem(moduleAppKey, (moduleCollapsed ? 1 : 0));
|
|
}
|
|
};
|
|
}
|
|
}
|
|
moduleEl.classList.add('foldable-apps-ready');
|
|
}
|
|
};
|
|
})();
|