From 1668a8c01763c39dd91c39f98ffe36670ba8c612 Mon Sep 17 00:00:00 2001 From: Raúl Benencia Date: Thu, 4 Jun 2026 12:24:08 -0300 Subject: 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. --- web/js/local.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'web/js/local.js') 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: { -- cgit v1.2.3