Monitor partner card: onboard phase indicator per remote host

vv_partner_state() now reads setup.db and adds onboard_phase (0/1/2/null)
to each host entry.

Partner card JS renders a badge under the hostname for remote hosts that
haven't completed Phase 2: amber "Awaiting onboard" (phase 1) or grey
"Not provisioned" (phase 0). Phase 2 complete shows nothing extra.
This commit is contained in:
Gmer4Lfe
2026-05-30 20:04:32 -04:00
parent 7d4994f317
commit c97a30b9c4
2 changed files with 21 additions and 6 deletions
+9
View File
@@ -632,6 +632,14 @@ function vvPollMonitor() {
h.is_owner ? `<span style="background:#1a2a3a;color:#4a9eff;font-size:8px;padding:1px 5px;border-radius:3px;margin-left:4px;">OWNER</span>` : '',
].join('');
// Onboard phase indicator for remote hosts waiting to complete setup
const phase = h.onboard_phase ?? null;
const onboardBadge = (!h.is_me && phase !== null && phase < 2)
? (phase === 1
? `<div style="font-size:9px;color:#ff9800;margin-top:3px;padding:2px 5px;background:#1a1200;border:1px solid #3a2800;border-radius:3px;display:inline-block;">⏳ Awaiting onboard</div>`
: `<div style="font-size:9px;color:#444;margin-top:3px;padding:2px 5px;background:#111;border:1px solid #222;border-radius:3px;display:inline-block;">○ Not provisioned</div>`)
: '';
// Remote stats from Unraid API (only available for non-self hosts with an API key)
const rs = !h.is_me ? (ptRemote[h.id] ?? null) : null;
let statsHtml = '';
@@ -677,6 +685,7 @@ function vvPollMonitor() {
<span style="font-size:10px;color:#555;margin-right:4px;">${h.id}</span>
<span style="font-size:12px;color:#ccc;font-weight:500;">${h.owner || h.hostname}</span>${tags}
<div style="font-size:10px;color:#555;margin-top:1px;">${h.hostname}</div>
${onboardBadge}
</div>
<span style="color:${dot};font-size:10px;white-space:nowrap;">● ${label}</span>
</div>