refactor(dashboard): drop FL0W/L0GS/M4TR1X page-links from the tab strip (#1464)
Follow-up to the route swap (#1501): now that every separate page is reachable from the H0M3 hub, the dashboard tab strip should hold only real in-page tabs, not the "→" links out to other pages (mara: "remove links to the pages from dashboard - only actual tabs stay here"). - dashboard.html: remove the `tab-matrix`, `tab-flow`, and `tab-logs` `.tab-link` entries (and the stale `tab-count-flow` pill slot — the operator inbox moved to Y3R C4LL). The dashboard strip is now SW4RM / Y3R C4LL / SYST3M / P3RM1SS10NS / SCH3DUL3S / P33RS / ST4TS / S3TT1NGS. - tabs.js: drop the now-dead `tab-matrix` matrix_gui_enabled gate (the H0M3 Matrix tile is gated by home.js instead) and the obsolete `#tab-count-flow` comment. Kept the contextual deep-links into the log viewer (an agent's logs, a build entry's log) — those are functional content links, not navigation chrome. - flow.css: remove the dead `.dashboard-chrome.flow-chrome` + `.tabbar .tab.active.tab-link` rules — the flow page uses a slim back-link header, not the dashboard tabbar, and `.tab-link` no longer exists anywhere. npm run build green (flow.css 1.8kb). No residual references.
This commit is contained in:
parent
7059ebdebf
commit
91fff60c34
3 changed files with 15 additions and 76 deletions
|
|
@ -81,40 +81,15 @@
|
|||
<span class="tab-count" id="tab-count-peers" hidden></span>
|
||||
</a>
|
||||
|
||||
<!-- M4TR1X: optional matrix web client (fluffychat-web by
|
||||
default) mounted at /matrix/ by the gateway when
|
||||
`hyperhive.matrix.gui.enable = true`. Same-origin
|
||||
navigation (the static dist is its own SPA). Hidden in
|
||||
JS when `state.matrix_gui_enabled === false` so operators
|
||||
without matrix-gui on don't see a dead link. See
|
||||
docs/web-ui.md::Tab strip for the gating model and
|
||||
docs/gateway.md for the matrix vhost + .well-known
|
||||
auto-discovery. -->
|
||||
<a class="tab tab-link" id="tab-matrix" href="/matrix/" hidden
|
||||
title="open the matrix chat client (fluffychat-web)">
|
||||
<span class="tab-label">◆ M4TR1X ◆ →</span>
|
||||
</a>
|
||||
<!-- FL0W, L0GS, and M4TR1X are separate pages reachable from the
|
||||
H0M3 hub (served at /), not from the dashboard tab strip — the
|
||||
strip holds only real in-page tabs now. Contextual deep-links
|
||||
into the log viewer (an agent's logs, a build entry's log)
|
||||
still live inside the relevant dashboard content. -->
|
||||
|
||||
<!-- FL0W is its own page (`/flow.html`), not a tab. The link
|
||||
lives in the tab strip so it reads as a peer surface;
|
||||
clicking navigates rather than swapping panes in place.
|
||||
Count pill mirrors the dashboard's operator-inbox length
|
||||
and is hidden when zero. See docs/web-ui.md::FL0W page. -->
|
||||
<a class="tab tab-link" id="tab-flow" href="/flow.html"
|
||||
title="open the all-agents chat in a dedicated full-page terminal">
|
||||
<span class="tab-label">◆ FL0W ◆ →</span>
|
||||
<span class="tab-count" id="tab-count-flow" hidden></span>
|
||||
</a>
|
||||
|
||||
<!-- L0GS and S3TT1NGS: default-overflow — always live in the ⋮
|
||||
dropdown, never in the main strip. `data-overflow="default"`
|
||||
marks them so JS keeps them out of the bar regardless of
|
||||
available width. -->
|
||||
<a class="tab tab-link" id="tab-logs" href="/logs.html"
|
||||
data-overflow="default"
|
||||
title="open the log viewer">
|
||||
<span class="tab-label">◆ L0GS ◆ →</span>
|
||||
</a>
|
||||
<!-- S3TT1NGS: default-overflow — always lives in the ⋮ dropdown,
|
||||
never in the main strip. `data-overflow="default"` marks it so
|
||||
JS keeps it out of the bar regardless of available width. -->
|
||||
<a class="tab" id="tab-settings" href="#settings" role="tab"
|
||||
aria-controls="tab-pane-settings"
|
||||
data-tab="settings"
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@
|
|||
composer, full-viewport terminal). */
|
||||
|
||||
:root {
|
||||
/* Approximate height of the flow chrome (tabbar + dashboard-chrome
|
||||
padding). The slug banner lives at the page footer on /, omitted
|
||||
/* Approximate height of the flow chrome (the slim back-link header).
|
||||
The slug banner lives at the page footer on the dashboard, omitted
|
||||
on /flow.html since the full-viewport terminal has no normal-flow
|
||||
footer position. */
|
||||
--flow-header-h: 3.6em;
|
||||
|
|
@ -29,35 +29,6 @@ body.flow-shell {
|
|||
var(--bg);
|
||||
}
|
||||
|
||||
/* Flow chrome reuses the dashboard's `.dashboard-chrome` + tabbar
|
||||
so the operator can switch tabs from the flow page without
|
||||
navigating back first. The chrome must be fixed-position (vs
|
||||
sticky on the dashboard) since flow-shell has `overflow: hidden`
|
||||
on body and the main area absolute-positions the terminal. */
|
||||
body.flow-shell .dashboard-chrome.flow-chrome {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 30;
|
||||
margin: 0;
|
||||
padding: 0.4em 0 0;
|
||||
background: var(--flow-frost-bg);
|
||||
-webkit-backdrop-filter: var(--flow-frost-blur);
|
||||
backdrop-filter: var(--flow-frost-blur);
|
||||
border-bottom: 1px solid var(--purple-dim);
|
||||
box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35);
|
||||
}
|
||||
/* Active tab on the flow page is FL0W. Its `.tab-link` styling (the
|
||||
tab strip's right-most entry on the dashboard, where it represents
|
||||
the *link out* to /flow.html) needs to read as the active tab here.
|
||||
`aria-current="page"` flags it semantically. */
|
||||
body.flow-shell .tabbar .tab.active.tab-link {
|
||||
color: var(--purple);
|
||||
background: var(--bg);
|
||||
border-color: var(--purple-dim);
|
||||
box-shadow: 0 -2px 12px -4px rgba(203, 166, 247, 0.4);
|
||||
}
|
||||
.flow-main {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
|
|
|
|||
|
|
@ -3901,10 +3901,8 @@ window.marked = marked;
|
|||
const peers = s.peer_hives || [];
|
||||
if (peersTab) peersTab.hidden = peers.length === 0;
|
||||
renderPeerHives(peers);
|
||||
// Gate the M4TR1X → tab strip entry — see
|
||||
// docs/web-ui.md::Tab strip for the matrix_gui_enabled rationale.
|
||||
const matrixTab = $('tab-matrix');
|
||||
if (matrixTab) matrixTab.hidden = !s.matrix_gui_enabled;
|
||||
// (The M4TR1X surface is reachable from the H0M3 hub now, not the
|
||||
// dashboard tab strip — home.js gates its tile on matrix_gui_enabled.)
|
||||
// Hive identity: update the chrome banner + page title once the
|
||||
// server-side display names are known. `hive_name` / `swarm_name`
|
||||
// come from HYPERHIVE_HIVE_NAME / HYPERHIVE_SWARM_NAME env vars
|
||||
|
|
@ -4604,11 +4602,6 @@ window.marked = marked;
|
|||
// target (whole-schedule cancellation or all-targets-cancelled
|
||||
// means "not waiting on the worker"; those don't pull attention).
|
||||
setTabCount('schedules', activeScheduleCount());
|
||||
// FL0W pill count: lives in ./flow.js now (it has the inbox
|
||||
// derived store). Dashboard tab strip's `#tab-count-flow` slot
|
||||
// stays hidden by default; future plumbing could broadcast the
|
||||
// count via localStorage / BroadcastChannel if both pages are
|
||||
// open.
|
||||
|
||||
// Re-render overflow dropdown so badges stay in sync.
|
||||
updateTabbarOverflow();
|
||||
|
|
@ -4620,6 +4613,6 @@ window.marked = marked;
|
|||
refreshTabCounts();
|
||||
setInterval(refreshTabCounts, 1000);
|
||||
|
||||
// Flow-specific code (inbox-pill wiring, broker terminal init, the
|
||||
// @-mention composer) lives in ./flow.js — loaded only by /flow.html.
|
||||
// Flow-specific code (broker terminal init + the @-mention composer)
|
||||
// lives in ./flow.js — loaded only by /flow.html.
|
||||
})();
|
||||
|
|
|
|||
Loading…
Reference in a new issue