diff --git a/templates/base.html b/templates/base.html index ec49357..6da95d0 100644 --- a/templates/base.html +++ b/templates/base.html @@ -324,7 +324,7 @@ lt.init({ bootName: 'GANDALF' }); // Theme toggle - var themeBtn = document.getElementById('lt-theme-btn'); + const themeBtn = document.getElementById('lt-theme-btn'); if (themeBtn) themeBtn.addEventListener('click', function() { lt.theme.toggle(); }); // Command palette @@ -343,9 +343,9 @@ // ── Global footer + key actions ─────────────────────────────────────── document.addEventListener('click', function(e) { - var btn = e.target.closest('[data-action]'); + const btn = e.target.closest('[data-action]'); if (!btn) return; - var action = btn.getAttribute('data-action'); + const action = btn.getAttribute('data-action'); if (action === 'show-keyboard-help' && window.lt) lt.modal.open('lt-keys-help'); if (action === 'open-settings' && window.lt) lt.modal.open('lt-settings-modal'); }); @@ -366,8 +366,8 @@ // ── Settings modal ──────────────────────────────────────────────────── (function() { - var LS_KEY = 'gandalf_settings'; - var DEFAULT = { refreshInterval: 30 }; + const LS_KEY = 'gandalf_settings'; + const DEFAULT = { refreshInterval: 30 }; function loadSettings() { try { return Object.assign({}, DEFAULT, JSON.parse(localStorage.getItem(LS_KEY) || '{}')); } @@ -381,11 +381,11 @@ function applyRefreshPillUI(interval) { document.querySelectorAll('#settings-refresh-pills .pill').forEach(function(p) { - var isActive = parseInt(p.dataset.refreshInterval) === interval; + const isActive = parseInt(p.dataset.refreshInterval) === interval; p.classList.toggle('active', isActive); p.setAttribute('aria-pressed', isActive ? 'true' : 'false'); }); - var hint = document.getElementById('settings-refresh-hint'); + const hint = document.getElementById('settings-refresh-hint'); if (hint) { if (interval === 0) hint.textContent = 'Auto-refresh disabled.'; else if (interval < 60) hint.textContent = 'Refreshes every ' + interval + ' seconds.'; @@ -394,16 +394,16 @@ } // Init pill UI from saved settings - var _settings = loadSettings(); + const _settings = loadSettings(); applyRefreshPillUI(_settings.refreshInterval); // Expose for pages that need to read it (e.g. index.html for autoRefresh) window.gandalfSettings = _settings; document.addEventListener('click', function(e) { - var pill = e.target.closest('#settings-refresh-pills .pill[data-refresh-interval]'); + const pill = e.target.closest('#settings-refresh-pills .pill[data-refresh-interval]'); if (!pill) return; - var interval = parseInt(pill.dataset.refreshInterval); + const interval = parseInt(pill.dataset.refreshInterval); _settings.refreshInterval = interval; saveSettings(_settings); applyRefreshPillUI(interval); @@ -412,16 +412,16 @@ // ── Notification Bell — shows active monitoring alerts ──────────────── (function() { - var bell = document.getElementById('lt-notif-bell'); - var panel = document.getElementById('lt-notif-panel'); - var list = document.getElementById('lt-notif-list'); - var clearBtn = document.getElementById('lt-notif-clear-btn'); - var wrapEl = document.getElementById('lt-notif-wrap'); + const bell = document.getElementById('lt-notif-bell'); + const panel = document.getElementById('lt-notif-panel'); + const list = document.getElementById('lt-notif-list'); + const clearBtn = document.getElementById('lt-notif-clear-btn'); + const wrapEl = document.getElementById('lt-notif-wrap'); if (!bell || !panel) return; - var _open = false; - var _lastEvents = []; - var LS_READ_KEY = 'gandalf_notif_read_before'; + let _open = false; + let _lastEvents = []; + const LS_READ_KEY = 'gandalf_notif_read_before'; function getReadBefore() { try { return parseInt(localStorage.getItem(LS_READ_KEY) || '0'); } catch(_) { return 0; } @@ -440,20 +440,20 @@ } function fmtAgo(dateStr) { - var diff = Math.floor((Date.now() - toMs(dateStr)) / 1000); + const diff = Math.floor((Date.now() - toMs(dateStr)) / 1000); if (diff < 60) return diff + 's ago'; if (diff < 3600) return Math.floor(diff/60) + 'm ago'; if (diff < 86400) return Math.floor(diff/3600) + 'h ago'; return Math.floor(diff/86400) + 'd ago'; } - var SEV_DOT = { critical: 'var(--red)', warning: 'var(--amber)' }; + const SEV_DOT = { critical: 'var(--red)', warning: 'var(--amber)' }; function renderAlerts(events) { _lastEvents = events || []; - var readBefore = getReadBefore(); - var active = _lastEvents.filter(function(e) { return e.severity !== 'info'; }); - var unreadCount = active.filter(function(e) { return toMs(e.last_seen) > readBefore; }).length; + const readBefore = getReadBefore(); + const active = _lastEvents.filter(function(e) { return e.severity !== 'info'; }); + const unreadCount = active.filter(function(e) { return toMs(e.last_seen) > readBefore; }).length; lt.notif.set(bell, unreadCount); if (!active.length) { @@ -461,8 +461,8 @@ return; } list.innerHTML = active.slice(0, 25).map(function(e) { - var isUnread = toMs(e.last_seen) > readBefore; - var dotColor = SEV_DOT[e.severity] || 'var(--text-muted)'; + const isUnread = toMs(e.last_seen) > readBefore; + const dotColor = SEV_DOT[e.severity] || 'var(--text-muted)'; return '