ON/OFF: WorldMonitor group toggle — controller supports multi-target groups (aggregate state, one switch for 4 containers), console card wired (admin), partial-state pill
This commit is contained in:
@@ -401,6 +401,7 @@ button.button, input[type="submit"].button { font-family: inherit; }
|
||||
.svc-dot.svc-off { background: var(--ink-faint, #a39e98); }
|
||||
.svc-dot.svc-trans { background: var(--accent-orange, #dd5b00); animation: pulse 1.2s ease-in-out infinite; }
|
||||
.svc-dot.svc-fail { background: #d33a2b; }
|
||||
.svc-dot.svc-part { background: var(--accent-orange, #dd5b00); } /* partial: some group members running */
|
||||
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: .35; } }
|
||||
.svc-ram { margin-left: auto; font: var(--type-caption); color: var(--ink-faint); white-space: nowrap; }
|
||||
.button-sm { padding: 4px 10px; font-size: 12px; }
|
||||
|
||||
@@ -126,8 +126,10 @@
|
||||
var can = svcState[id] && svcState[id].can_toggle;
|
||||
var transitional = st === "starting" || st === "stopping";
|
||||
if (ram && svcState[id] && svcState[id].ram_mb) ram.textContent = "~" + svcState[id].ram_mb + "MB";
|
||||
dot.className = "svc-dot svc-" + (st === "running" ? "on" : st === "stopped" ? "off" : st === "failed" ? "fail" : "trans");
|
||||
if (lab) lab.textContent = st === "running" ? "Running" : st === "stopped" ? "Stopped" : st === "failed" ? (svcState[id].error || "Failed") : (st[0].toUpperCase() + st.slice(1));
|
||||
var cls = st === "running" ? "on" : st === "stopped" ? "off" : (st === "failed" ? "fail" : st === "partial" ? "part" : "trans");
|
||||
dot.className = "svc-dot svc-" + cls;
|
||||
if (lab) lab.textContent = st === "running" ? "Running" : st === "stopped" ? "Stopped" : st === "failed" ? (svcState[id].error || "Failed") : st === "partial" ? "Partial" : (st[0].toUpperCase() + st.slice(1));
|
||||
// partial behaves like running for the button (offered action: stop the rest)
|
||||
// failed -> offer the logs deep link (dozzle)
|
||||
var logs = strip.querySelector("[data-svc-logs]");
|
||||
if (logs) {
|
||||
|
||||
@@ -282,7 +282,9 @@ def _cat() -> list[Tool]:
|
||||
Tool("ntfy", "Ntfy", "infra",
|
||||
"Push notifications (LAN)", "https://ntfy.home.lab", login=True, lan=True),
|
||||
Tool("worldmonitor", "World Monitor", "infra",
|
||||
"Global monitoring", "https://worldmonitor.lab.audasmedia.com.au", login=True, admin=True),
|
||||
"Global monitoring", "https://worldmonitor.lab.audasmedia.com.au", login=True, admin=True,
|
||||
service_id="worldmonitor", ram_mb=120, togglable=True,
|
||||
admin_service=True),
|
||||
Tool("homepage", "Homepage", "infra",
|
||||
"Start page", "https://homepage.lab.audasmedia.com.au", login=True),
|
||||
Tool("librenms", "LibreNMS", "network",
|
||||
|
||||
Reference in New Issue
Block a user