diff --git a/dashboard.html b/dashboard.html index d61e61f..bfa5bca 100644 --- a/dashboard.html +++ b/dashboard.html @@ -54,7 +54,7 @@ background-color: rgba(107, 114, 128, 0.8); border-width: 2px; } - + /* Ochrona przed skakaniem interfejsu */ body { overflow-y: scroll; } @@ -65,13 +65,13 @@
- +
UniView WebAdmin
- +
- +
- +
@@ -366,7 +369,7 @@ pop.classList.add('opacity-100', 'visible', 'scale-100'); } } - + function closePopover(locId) { if(state.openPopoverId === locId) state.openPopoverId = null; const pop = document.getElementById(`popover-${locId}`); @@ -390,15 +393,15 @@ if (!locationsMap.has(locId)) locationsMap.set(locId, { id: locId, label: t.location_name || locId, terminals: [] }); locationsMap.get(locId).terminals.push(t); }); - + let locations = Array.from(locationsMap.values()).sort((a,b) => String(a.label).localeCompare(String(b.label), 'pl', {numeric: true})); - + // Filtrowanie if(state.filter) { locations = locations.filter(loc => { const matchLoc = loc.label.toLowerCase().includes(state.filter); - const matchTerminals = loc.terminals.some(t => - (t.name || "").toLowerCase().includes(state.filter) || + const matchTerminals = loc.terminals.some(t => + (t.name || "").toLowerCase().includes(state.filter) || (t.ip || "").includes(state.filter) ); return matchLoc || matchTerminals; @@ -406,7 +409,7 @@ } renderGlobalExhibition(locations); - + const grid = document.getElementById("nscLocationGrid"); grid.innerHTML = locations.map(renderLocationCard).join(""); @@ -417,7 +420,7 @@ // Usuwamy klasy animacji tymczasowo, by nie "wjeżdżał" co 5 sekund pop.classList.remove('transition-all', 'duration-300', 'opacity-0', 'invisible', 'scale-95', 'pointer-events-none'); pop.classList.add('opacity-100', 'visible', 'scale-100'); - + const scrollArea = pop.querySelector('.custom-scrollbar'); if (scrollArea) scrollArea.scrollTop = currentScroll; // Przywracamy przewijanie! @@ -438,7 +441,7 @@ const onT = allT.filter(t => t.status?.toLowerCase() === 'running').length; const total = allT.length; const pct = total ? Math.round((onT/total)*100) : 0; - + let colorCls = "bg-slate-100 text-slate-500 border-slate-200 dark:bg-slate-800 dark:text-slate-400 dark:border-slate-700"; let fillCls = "bg-slate-400"; if(total > 0 && onT === total) { colorCls = "bg-emerald-50 text-emerald-700 border-emerald-200 dark:bg-emerald-900/20 dark:text-emerald-400 dark:border-emerald-800/50"; fillCls = "bg-emerald-500"; } @@ -455,7 +458,7 @@

Zarządzanie całą wystawą (Galerie: ${locations.length})

- +
Uruchomione @@ -478,10 +481,10 @@ const total = loc.terminals.length; const on = loc.terminals.filter(t => t.status?.toLowerCase() === 'running').length; const pct = total ? Math.round((on/total)*100) : 0; - + const pcs = loc.terminals.filter(t => t.player === 'PC'); const onPcs = pcs.filter(t => t.status?.toLowerCase() === 'running').length; - + const lights = loc.terminals.filter(t => t.player === 'CTRL'); const onLights = lights.filter(t => t.status?.toLowerCase() === 'running').length; @@ -491,17 +494,17 @@ return `
- -
- -
-

${escapeHtml(loc.label)}

-
${loc.id}
+ + +
+ +
+

${escapeHtml(loc.label)}

- -
- + +
+
- +
@@ -560,12 +566,12 @@
- +