You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[UI] Reorganize navbar: flatten to suite-agnostic links, add API/Test Suites
Replace the three-category navbar (suite-scoped, analysis, admin) and suite
selector dropdown with a simpler flat layout where all links are suite-agnostic:
[LNT] [Test Suites] [Graph] [Compare] [API] <--> [v4 UI] [Admin] [Settings]
- Remove suite selector dropdown from navbar entirely
- Remove suite-scoped links (Dashboard, Regressions, Machines) from navbar
- Add "Test Suites" link (suite-agnostic placeholder page at /v5/test-suites)
- Add "API" link (opens Swagger UI in new tab)
- Add suite-agnostic Dashboard placeholder at /v5/
- Move Admin and v4 UI to right side
- v4 UI link now points to v4 root page instead of suite-specific URL
- Extract buildNavLink() helper to unify link construction
- Pass abort signal to getApiKeys() refresh calls in admin page
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Copy file name to clipboardExpand all lines: docs/design/v5-ui.md
+19-16Lines changed: 19 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,10 +30,12 @@ The v4 UI stays around as-is. The only integration point is a toggle link in eac
30
30
31
31
The v5 API only supports the default DB, so v5 frontend routes do not include `db_<db_name>` prefixes.
32
32
33
-
Suite-agnostic pages (admin, graph, compare) are served at top-level `/v5/` routes with `data-testsuite=""`, while suite-scoped pages use the catch-all route which passes the test suite name as `data-testsuite`.
33
+
Suite-agnostic pages (dashboard, test suites, admin, graph, compare) are served at top-level `/v5/` routes with `data-testsuite=""`, while suite-scoped pages use the catch-all route which passes the test suite name as `data-testsuite`.
@@ -53,14 +55,16 @@ The shell template (`v5_app.html`) is a standalone HTML page (it does NOT extend
53
55
### v4/v5 Toggle
54
56
55
57
- In the v4 navbar (`layout.html`): add a "v5 UI" link in the top-right of the nav bar (next to the "System" dropdown, not inside any dropdown menu) pointing to `/v5/{ts}/`
56
-
- In the v5 SPA navbar: a "v4 UI" link pointing to `/v4/{ts}/recent_activity`
58
+
- In the v5 SPA navbar: a "v4 UI" link pointing to the v4 root page (`/`)
Navigation links fall into three categories based on their routing behavior:
86
+
All navbar links are suite-agnostic. The navbar behavior depends on the page context:
83
87
84
-
- **Suite-scoped links** (Dashboard, Machines, Regressions): In suite context (`/v5/{ts}/...`), these are SPA navigations within the current suite. In suite-agnostic context (`/v5/graph`, `/v5/compare`, `/v5/admin`), these are full-page links that navigate to `/v5/{ts}/...` (using the suite selector's current value).
85
-
- **Analysis links** (Graph, Compare): In suite context, these are full-page links to `/v5/graph?suite={ts}` and `/v5/compare?suite_a={ts}`, pre-filling the current suite. In suite-agnostic context, these are SPA navigations within the agnostic shell.
86
-
- **Admin**: In suite context, this is a full-page link to `/v5/admin`. In suite-agnostic context, this is SPA navigation.
88
+
- **Suite-agnostic context** (`/v5/...` without a suite): All navbar links use SPA navigation. API opens in a new tab. v4 UI is external.
89
+
- **Suite-scoped context** (`/v5/{ts}/...`): All navbar links use full-page navigation (since they target `/v5/...` which is outside the suite basePath `/v5/{ts}`).
90
+
91
+
Graph and Compare links append `?suite={ts}` / `?suite_a={ts}` when navigated from suite-scoped context, pre-filling the current suite.
87
92
88
93
---
89
94
90
95
## Page Details
91
96
92
-
### 1. Dashboard — `/v5/{ts}/`
93
-
94
-
The landing page. Order-centric view answering "what happened with recent commits?"
97
+
### 1. Dashboard — `/v5/`
95
98
96
-
| Section | Shows | API Calls |
97
-
|---------|-------|-----------|
98
-
| Recent Orders | Table of recent orders with two columns: order value with tag suffix when set (e.g. "abc123 (release-18)"), linked to Order Detail; and latest run timestamp, linked to Run Detail. | `GET runs?sort=-start_time&limit=...` (derive orders from runs), then `GET orders/{value}` per unique order to fetch tags |
99
+
Suite-agnostic landing page. Currently a placeholder — content to be designed later.
99
100
100
-
**Links out**: Order Detail, Run Detail.
101
+
The existing suite-specific dashboard content (recent orders table) remains accessible at `/v5/{ts}/` as the suite root page.
0 commit comments