out_of_schedule jako włączone
This commit is contained in:
+10
-5
@@ -93,6 +93,7 @@
|
|||||||
const COMMAND_WAKE = "WakeUp";
|
const COMMAND_WAKE = "WakeUp";
|
||||||
const COMMAND_SHUTDOWN = "ShutDown";
|
const COMMAND_SHUTDOWN = "ShutDown";
|
||||||
const COMMAND_RESTART = "Restart";
|
const COMMAND_RESTART = "Restart";
|
||||||
|
const ON_STATUSES = new Set(["running", "out_of_schedule"]);
|
||||||
|
|
||||||
// Application state
|
// Application state
|
||||||
const state = {
|
const state = {
|
||||||
@@ -145,6 +146,10 @@
|
|||||||
restartAutoRefresh();
|
restartAutoRefresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isTerminalOn(terminal) {
|
||||||
|
return ON_STATUSES.has(String(terminal?.status || "").toLowerCase());
|
||||||
|
}
|
||||||
|
|
||||||
function setupListeners() {
|
function setupListeners() {
|
||||||
document.getElementById("nscRefreshInterval").addEventListener("change", (e) => {
|
document.getElementById("nscRefreshInterval").addEventListener("change", (e) => {
|
||||||
let val = parseInt(e.target.value);
|
let val = parseInt(e.target.value);
|
||||||
@@ -362,7 +367,7 @@
|
|||||||
function renderGlobalExhibition(allLocations, visibleLocations) {
|
function renderGlobalExhibition(allLocations, visibleLocations) {
|
||||||
const container = document.getElementById("nscExhibitionCard");
|
const container = document.getElementById("nscExhibitionCard");
|
||||||
const allT = state.terminals;
|
const allT = state.terminals;
|
||||||
const onT = allT.filter(t => t.status?.toLowerCase() === 'running').length;
|
const onT = allT.filter(isTerminalOn).length;
|
||||||
const total = allT.length;
|
const total = allT.length;
|
||||||
const pct = total ? Math.round((onT/total)*100) : 0;
|
const pct = total ? Math.round((onT/total)*100) : 0;
|
||||||
const visibleLocationCount = visibleLocations.length;
|
const visibleLocationCount = visibleLocations.length;
|
||||||
@@ -408,14 +413,14 @@
|
|||||||
|
|
||||||
function renderLocationCard(loc) {
|
function renderLocationCard(loc) {
|
||||||
const total = loc.terminals.length;
|
const total = loc.terminals.length;
|
||||||
const on = loc.terminals.filter(t => t.status?.toLowerCase() === 'running').length;
|
const on = loc.terminals.filter(isTerminalOn).length;
|
||||||
const pct = total ? Math.round((on/total)*100) : 0;
|
const pct = total ? Math.round((on/total)*100) : 0;
|
||||||
|
|
||||||
const pcs = loc.terminals.filter(t => t.player === 'PC');
|
const pcs = loc.terminals.filter(t => t.player === 'PC');
|
||||||
const onPcs = pcs.filter(t => t.status?.toLowerCase() === 'running').length;
|
const onPcs = pcs.filter(isTerminalOn).length;
|
||||||
|
|
||||||
const lights = loc.terminals.filter(t => t.player === 'CTRL');
|
const lights = loc.terminals.filter(t => t.player === 'CTRL');
|
||||||
const onLights = lights.filter(t => t.status?.toLowerCase() === 'running').length;
|
const onLights = lights.filter(isTerminalOn).length;
|
||||||
|
|
||||||
let dotCls = "bg-slate-400";
|
let dotCls = "bg-slate-400";
|
||||||
if(total > 0 && on === total) dotCls = "bg-emerald-500 shadow-glow";
|
if(total > 0 && on === total) dotCls = "bg-emerald-500 shadow-glow";
|
||||||
@@ -506,7 +511,7 @@
|
|||||||
if(!terminals.length) return '';
|
if(!terminals.length) return '';
|
||||||
|
|
||||||
const rows = terminals.map(t => {
|
const rows = terminals.map(t => {
|
||||||
const isRun = t.status?.toLowerCase() === 'running';
|
const isRun = isTerminalOn(t);
|
||||||
const statusCls = isRun ? "text-emerald-500" : "text-slate-400 dark:text-slate-500";
|
const statusCls = isRun ? "text-emerald-500" : "text-slate-400 dark:text-slate-500";
|
||||||
const dotCls = isRun ? "bg-emerald-500" : "bg-slate-300 dark:bg-slate-600";
|
const dotCls = isRun ? "bg-emerald-500" : "bg-slate-300 dark:bg-slate-600";
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user