remove the 1NFR4 dashboard panel and the now-writer-less audit log
This commit is contained in:
parent
c3cd36bc41
commit
22adfd1451
21 changed files with 61 additions and 983 deletions
|
|
@ -381,66 +381,6 @@ function stopContainerLoadPolling() {
|
|||
if (containerLoadTimer) { clearInterval(containerLoadTimer); containerLoadTimer = null; }
|
||||
}
|
||||
|
||||
// ─── infra containers (start/stop the 4 hive infra containers) ────────────
|
||||
let infraTimer = null;
|
||||
|
||||
function renderInfraContainers(rows) {
|
||||
const root = $('infra-containers-section');
|
||||
if (!root) return;
|
||||
root.replaceChildren();
|
||||
if (!Array.isArray(rows) || !rows.length) {
|
||||
root.append(el('p', { class: 'meta' }, 'no infra container data'));
|
||||
return;
|
||||
}
|
||||
const ul = el('ul', { class: 'containers' });
|
||||
for (const c of rows) {
|
||||
const li = el('li', { class: 'container-row' });
|
||||
const head = el('div', { class: 'head' });
|
||||
head.append(
|
||||
el('span', { class: 'name' }, c.name),
|
||||
el('span', { class: 'hive-pill-sm ' + (c.running ? 'badge-ok' : 'badge-fail') },
|
||||
c.running ? 'running' : 'stopped'),
|
||||
);
|
||||
li.append(head);
|
||||
|
||||
const actions = el('div', { class: 'actions' });
|
||||
const base = '/api/infra-container/' + encodeURIComponent(c.name) + '/';
|
||||
if (c.running) {
|
||||
actions.append(form(base + 'stop', 'btn-stop', '■ ST0P',
|
||||
'stop ' + c.name + '?'));
|
||||
} else {
|
||||
actions.append(form(base + 'start', 'btn-start', '▶ ST4RT',
|
||||
'start ' + c.name + '?'));
|
||||
}
|
||||
li.append(actions);
|
||||
ul.append(li);
|
||||
}
|
||||
root.append(ul);
|
||||
}
|
||||
|
||||
async function refreshInfraContainers() {
|
||||
try {
|
||||
const resp = await fetch('/api/state');
|
||||
if (!resp.ok) throw new Error('http ' + resp.status);
|
||||
const s = await resp.json();
|
||||
renderInfraContainers(s.infra_containers || []);
|
||||
} catch (e) {
|
||||
const root = $('infra-containers-section');
|
||||
if (root) {
|
||||
root.replaceChildren();
|
||||
root.append(el('p', { class: 'meta' }, 'infra container fetch failed: ' + e));
|
||||
}
|
||||
}
|
||||
}
|
||||
function startInfraPolling() {
|
||||
refreshInfraContainers();
|
||||
if (infraTimer) return;
|
||||
infraTimer = setInterval(refreshInfraContainers, 5000);
|
||||
}
|
||||
function stopInfraPolling() {
|
||||
if (infraTimer) { clearInterval(infraTimer); infraTimer = null; }
|
||||
}
|
||||
|
||||
// ─── render-all (cold load + any full re-render) ──────────────────────────
|
||||
function renderAll() {
|
||||
renderTombstones({ tombstones: tombstonesState });
|
||||
|
|
@ -505,14 +445,11 @@ async function init() {
|
|||
tabs: [
|
||||
{ id: 'kept', label: 'K3PT ST4T3' },
|
||||
{ id: 'load', label: 'C0NT41N3R L04D' },
|
||||
{ id: 'infra', label: '1NFR4' },
|
||||
],
|
||||
defaultId: 'kept',
|
||||
onShow: (id) => {
|
||||
if (id === 'load') startContainerLoadPolling();
|
||||
else stopContainerLoadPolling();
|
||||
if (id === 'infra') startInfraPolling();
|
||||
else stopInfraPolling();
|
||||
// Lazy-load stale-perms on first K3PT ST4T3 activation; always
|
||||
// re-fetch on subsequent visits in case perms changed.
|
||||
if (id === 'kept') fetchAndRenderStalePerms();
|
||||
|
|
|
|||
Loading…
Reference in a new issue