Add customer names on the ledger, staff session login, and exclusive jobs.events.
Some checks are pending
offline / test (push) Waiting to run
Some checks are pending
offline / test (push) Waiting to run
Account-balance stores display names and looks up by name. Edge writes names on customer create/edit; staff UIs join from edge when needed. New verae-staff-session issues a host cookie; department HTML redirects when STAFF_AUTH=1. JOBS_EVENTS_EXCLUSIVE lets jobs-events own the durable consumer. Catalog index is cards; disabled fleet machines are grey.
This commit is contained in:
parent
cb07f5b321
commit
9cc0018708
38 changed files with 533 additions and 68 deletions
|
|
@ -47,6 +47,7 @@
|
|||
.card.operational { background:var(--ok-bg); border-color:#c8efd4; }
|
||||
.card.degraded { background:var(--warn-bg); border-color:#ffe08a; }
|
||||
.card.down { background:var(--err-bg); border-color:#f3c0c0; }
|
||||
.card.disabled { background:#f1f5f9; border-color:#e5e7f0; }
|
||||
.card h3 { margin:0 0 .25rem; font-size:14px; }
|
||||
.muted { color:var(--muted); font-size:12px; }
|
||||
.pill { font:700 10px system-ui; letter-spacing:.06em; text-transform:uppercase; padding:.12rem .4rem; border-radius:999px; }
|
||||
|
|
@ -258,8 +259,8 @@ function spark(r) {
|
|||
<div class="muted">RTT ms ${r.minMs} / ${r.avgMs} / ${r.p50Ms} / ${r.p90Ms} n=${r.count}</div>`;
|
||||
}
|
||||
function pill(health) {
|
||||
const label = health === 'operational' ? 'operational' : health === 'degraded' ? 'degraded' : 'not operational';
|
||||
const cls = health === 'operational' ? 'good' : health === 'degraded' ? 'warn' : 'bad';
|
||||
const label = health === 'operational' ? 'operational' : health === 'degraded' ? 'degraded' : health === 'disabled' ? 'disabled' : 'not operational';
|
||||
const cls = health === 'operational' ? 'good' : health === 'degraded' ? 'warn' : health === 'disabled' ? '' : 'bad';
|
||||
return `<span class="pill ${cls}">${label}</span>`;
|
||||
}
|
||||
function moreMenu(items) {
|
||||
|
|
@ -303,7 +304,7 @@ async function drawFleet() {
|
|||
$('meta').textContent = 'probe ' + (s.monitor?.t || '—') + ' · NATS ' + (s.nats?.url || '') + ' · HTTP 0.0.0.0:3850';
|
||||
const machines = s.machines || [];
|
||||
$('machines').innerHTML = machines.length ? machines.map((m) => {
|
||||
const health = !m.enabled ? 'down' : m.running > 0 ? 'operational' : 'degraded';
|
||||
const health = !m.enabled ? 'disabled' : m.running > 0 ? 'operational' : 'degraded';
|
||||
return `<article class="card ${health}">
|
||||
<h3>${m.id} ${pill(health)}</h3>
|
||||
<div class="muted">${m.title || ''}</div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue