diff options
| author | Dan Engelbrecht <[email protected]> | 2026-03-23 14:09:46 +0100 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2026-03-23 14:09:46 +0100 |
| commit | d336e5937019dbab1924419624faa6ffc776cd7f (patch) | |
| tree | cee312dc86f8404bbd4f987cbcf2f4d96124fc19 /src/zenserver/frontend/html | |
| parent | Unique session/client tracking using HyperLogLog (#884) (diff) | |
| download | zen-d336e5937019dbab1924419624faa6ffc776cd7f.tar.xz zen-d336e5937019dbab1924419624faa6ffc776cd7f.zip | |
add hub instance crash recovery (#885)
* add hub instance crash recovery
Diffstat (limited to 'src/zenserver/frontend/html')
| -rw-r--r-- | src/zenserver/frontend/html/pages/hub.js | 2 | ||||
| -rw-r--r-- | src/zenserver/frontend/html/zen.css | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/zenserver/frontend/html/pages/hub.js b/src/zenserver/frontend/html/pages/hub.js index 3a5b67483..149a5c79c 100644 --- a/src/zenserver/frontend/html/pages/hub.js +++ b/src/zenserver/frontend/html/pages/hub.js @@ -8,7 +8,7 @@ import { Friendly } from "../util/friendly.js" import { Modal } from "../util/modal.js" //////////////////////////////////////////////////////////////////////////////// -const STABLE_STATES = new Set(["provisioned", "hibernated"]); +const STABLE_STATES = new Set(["provisioned", "hibernated", "crashed"]); function _is_actionable(state) { diff --git a/src/zenserver/frontend/html/zen.css b/src/zenserver/frontend/html/zen.css index 5ce60d2d2..49a1e6d21 100644 --- a/src/zenserver/frontend/html/zen.css +++ b/src/zenserver/frontend/html/zen.css @@ -1099,6 +1099,12 @@ tr:last-child td { .module-state-dot[data-state="provisioned"] { background: var(--theme_ok); } .module-state-dot[data-state="hibernated"] { background: var(--theme_warn); } .module-state-dot[data-state="unprovisioned"] { background: var(--theme_g1); } +.module-state-dot[data-state="crashed"] { background: var(--theme_fail); } + +@keyframes module-dot-recovering { + 0%, 59.9% { background: var(--theme_fail); } + 60%, 100% { background: var(--theme_ok); } +} @keyframes module-dot-hibernating { 0%, 59.9% { background: var(--theme_warn); } @@ -1124,6 +1130,7 @@ tr:last-child td { .module-state-dot[data-state="hibernating"] { animation: module-dot-hibernating 1s steps(1, end) infinite; } .module-state-dot[data-state="waking"] { animation: module-dot-waking 1s steps(1, end) infinite; } .module-state-dot[data-state="provisioning"] { animation: module-dot-provisioning 1s steps(1, end) infinite; } +.module-state-dot[data-state="recovering"] { animation: module-dot-recovering 1s steps(1, end) infinite; } .module-state-dot[data-state="deprovisioning"][data-prev-state="provisioned"] { animation: module-dot-deprovisioning-from-provisioned 1s steps(1, end) infinite; } |