Files
TDI-Dashboard/static/js/page_dashboard.js
T
2026-05-14 15:57:18 +02:00

35 lines
1.3 KiB
JavaScript

(function () {
// ── Section collapse (visible by default) ────────────────────────────────
document.querySelectorAll('section:not(.page-header)').forEach(function (sec, idx) {
var grid = sec.querySelector('.grid');
if (!grid) return;
var h2 = sec.querySelector('h2');
if (!h2) return;
var key = 'dash_sec_' + idx;
var isOpen = (sessionStorage.getItem(key) !== 'closed');
grid.classList.toggle('dash-grid-hidden', !isOpen);
var btn = document.createElement('button');
btn.className = 'sec-toggle-btn';
btn.title = 'Espandi / Comprimi';
btn.innerHTML = (
'<svg class="sec-toggle-arrow' + (isOpen ? ' open' : '') + '"'
+ ' viewBox="0 0 24 24" fill="none" stroke="currentColor"'
+ ' stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">'
+ '<polyline points="6 9 12 15 18 9"/></svg>'
);
h2.appendChild(btn);
btn.addEventListener('click', function (e) {
e.preventDefault();
e.stopPropagation();
var hidden = grid.classList.toggle('dash-grid-hidden');
var arrow = btn.querySelector('.sec-toggle-arrow');
if (arrow) arrow.classList.toggle('open', !hidden);
try { sessionStorage.setItem(key, hidden ? 'closed' : 'open'); } catch(e2) {}
});
});
})();