diff options
| author | Raúl Benencia <id@rbenencia.name> | 2026-06-04 12:24:08 -0300 |
|---|---|---|
| committer | Raul Benencia <46945030+raul-te@users.noreply.github.com> | 2026-06-04 16:54:47 -0300 |
| commit | 1668a8c01763c39dd91c39f98ffe36670ba8c612 (patch) | |
| tree | 4aa0726cdfc20a2cbe85369c64f7d6444e65343c /web/js/local.js | |
| parent | 3907fcb858ccd85ada9255d0eabefb5f41f9da50 (diff) | |
refactor: drop jquery and bootstrap js
The heavy JS libraries are only used for a simple navbar. It doesn't
make sense to keep them. Instead, a lightweight local version has been
implemented.
Diffstat (limited to 'web/js/local.js')
| -rw-r--r-- | web/js/local.js | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/web/js/local.js b/web/js/local.js index e6dbb5c..aac60ca 100644 --- a/web/js/local.js +++ b/web/js/local.js @@ -17,6 +17,7 @@ 'use strict'; document.addEventListener('DOMContentLoaded', function () { + setupNavbarCollapse(); setVisible(document.getElementById('systems'), false); updateHostnames(); updateEventHistory(); @@ -34,6 +35,28 @@ document.addEventListener('DOMContentLoaded', function () { window.setInterval(updateEventHistory, 5000); }); +function setupNavbarCollapse() { + document.querySelectorAll('[data-toggle="collapse"][data-target]').forEach(function (button) { + var target = document.querySelector(button.getAttribute('data-target')); + if (!target) { + return; + } + + updateCollapseButton(button, target.classList.contains('show')); + + button.addEventListener('click', function () { + var expanded = !target.classList.contains('show'); + target.classList.toggle('show', expanded); + updateCollapseButton(button, expanded); + }); + }); +} + +function updateCollapseButton(button, expanded) { + button.setAttribute('aria-expanded', expanded ? 'true' : 'false'); + button.classList.toggle('collapsed', !expanded); +} + function fetchJSON(url) { return fetch(url, { headers: { |
