Skip to content

Commit b5bb70a

Browse files
nextlevelshitclaude
andcommitted
refactor(webui): extract w-nav to partial with icons
Nav extracted to templates/partials/nav_main.html. All 18 standalone pages now use {{template "partials/nav" .}}. ActivePage conditional highlights current link. SVG icons inline per page: Work/Runs/Pipelines/Proposals/Issues/PRs/Onboard/Health. Caveman mode resumed. No separate gap doc — implementing instead. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 58c934e commit b5bb70a

19 files changed

Lines changed: 58 additions & 581 deletions

docs/scope/webui-gap-analysis.md

Lines changed: 0 additions & 208 deletions
This file was deleted.

internal/webui/templates/analytics.html

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,7 @@
99
{{if csrfToken}}<meta name="csrf-token" content="{{csrfToken}}">{{end}}
1010
</head>
1111
<body>
12-
<nav class="w-nav">
13-
<a href="/" class="w-nav-brand">
14-
<svg viewBox="0 0 28 28" fill="none" stroke="currentColor" stroke-width="2.6" stroke-linecap="round" aria-hidden="true">
15-
<path d="M2 14 C6 6, 10 6, 14 14 C18 22, 22 22, 26 14"/>
16-
<path d="M2 14 C6 22, 10 22, 14 14 C18 6, 22 6, 26 14" opacity="0.35"/>
17-
</svg>
18-
Wave
19-
</a>
20-
<div class="w-nav-links">
21-
<a href="/work">Work</a>
22-
<a href="/runs">Runs</a>
23-
<a href="/pipelines">Pipelines</a>
24-
<a href="/proposals">Proposals</a>
25-
<a href="/issues">Issues</a>
26-
<a href="/prs">PRs</a>
27-
<a href="/onboard">Onboard</a>
28-
<a href="/health" style="margin-left: auto;">Health</a>
29-
</div>
30-
</nav>
12+
{{template "partials/nav" .}}
3113

3214
<div class="w-container">
3315
<div class="w-page-header">

internal/webui/templates/compose.html

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,7 @@
99
{{if csrfToken}}<meta name="csrf-token" content="{{csrfToken}}">{{end}}
1010
</head>
1111
<body>
12-
<nav class="w-nav">
13-
<a href="/" class="w-nav-brand">
14-
<svg viewBox="0 0 28 28" fill="none" stroke="currentColor" stroke-width="2.6" stroke-linecap="round" aria-hidden="true">
15-
<path d="M2 14 C6 6, 10 6, 14 14 C18 22, 22 22, 26 14"/>
16-
<path d="M2 14 C6 22, 10 22, 14 14 C18 6, 22 6, 26 14" opacity="0.35"/>
17-
</svg>
18-
Wave
19-
</a>
20-
<div class="w-nav-links">
21-
<a href="/work">Work</a>
22-
<a href="/runs">Runs</a>
23-
<a href="/pipelines">Pipelines</a>
24-
<a href="/proposals">Proposals</a>
25-
<a href="/issues">Issues</a>
26-
<a href="/prs">PRs</a>
27-
<a href="/onboard">Onboard</a>
28-
<a href="/health" style="margin-left: auto;">Health</a>
29-
</div>
30-
</nav>
12+
{{template "partials/nav" .}}
3113

3214
<div class="w-container">
3315
<div class="w-page-header">

internal/webui/templates/contracts.html

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,7 @@
99
{{if csrfToken}}<meta name="csrf-token" content="{{csrfToken}}">{{end}}
1010
</head>
1111
<body>
12-
<nav class="w-nav">
13-
<a href="/" class="w-nav-brand">
14-
<svg viewBox="0 0 28 28" fill="none" stroke="currentColor" stroke-width="2.6" stroke-linecap="round" aria-hidden="true">
15-
<path d="M2 14 C6 6, 10 6, 14 14 C18 22, 22 22, 26 14"/>
16-
<path d="M2 14 C6 22, 10 22, 14 14 C18 6, 22 6, 26 14" opacity="0.35"/>
17-
</svg>
18-
Wave
19-
</a>
20-
<div class="w-nav-links">
21-
<a href="/work">Work</a>
22-
<a href="/runs">Runs</a>
23-
<a href="/pipelines">Pipelines</a>
24-
<a href="/proposals">Proposals</a>
25-
<a href="/issues">Issues</a>
26-
<a href="/prs">PRs</a>
27-
<a href="/onboard">Onboard</a>
28-
<a href="/health" style="margin-left: auto;">Health</a>
29-
</div>
30-
</nav>
12+
{{template "partials/nav" .}}
3113

3214
<div class="w-container">
3315
<div class="w-page-header">

internal/webui/templates/health.html

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,7 @@
99
{{if csrfToken}}<meta name="csrf-token" content="{{csrfToken}}">{{end}}
1010
</head>
1111
<body>
12-
<nav class="w-nav">
13-
<a href="/" class="w-nav-brand">
14-
<svg viewBox="0 0 28 28" fill="none" stroke="currentColor" stroke-width="2.6" stroke-linecap="round" aria-hidden="true">
15-
<path d="M2 14 C6 6, 10 6, 14 14 C18 22, 22 22, 26 14"/>
16-
<path d="M2 14 C6 22, 10 22, 14 14 C18 6, 22 6, 26 14" opacity="0.35"/>
17-
</svg>
18-
Wave
19-
</a>
20-
<div class="w-nav-links">
21-
<a href="/work">Work</a>
22-
<a href="/runs">Runs</a>
23-
<a href="/pipelines">Pipelines</a>
24-
<a href="/proposals">Proposals</a>
25-
<a href="/issues">Issues</a>
26-
<a href="/prs">PRs</a>
27-
<a href="/onboard">Onboard</a>
28-
<a href="/health" class="active" style="margin-left: auto;">Health</a>
29-
</div>
30-
</nav>
12+
{{template "partials/nav" .}}
3113

3214
<div class="w-container">
3315
<div class="w-page-header" style="display: flex; align-items: center; justify-content: space-between;">

internal/webui/templates/issues.html

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,7 @@
99
{{if csrfToken}}<meta name="csrf-token" content="{{csrfToken}}">{{end}}
1010
</head>
1111
<body>
12-
<nav class="w-nav">
13-
<a href="/" class="w-nav-brand">
14-
<svg viewBox="0 0 28 28" fill="none" stroke="currentColor" stroke-width="2.6" stroke-linecap="round" aria-hidden="true">
15-
<path d="M2 14 C6 6, 10 6, 14 14 C18 22, 22 22, 26 14"/>
16-
<path d="M2 14 C6 22, 10 22, 14 14 C18 6, 22 6, 26 14" opacity="0.35"/>
17-
</svg>
18-
Wave
19-
</a>
20-
<div class="w-nav-links">
21-
<a href="/work">Work</a>
22-
<a href="/runs">Runs</a>
23-
<a href="/pipelines">Pipelines</a>
24-
<a href="/proposals">Proposals</a>
25-
<a href="/issues" class="active">Issues</a>
26-
<a href="/prs">PRs</a>
27-
<a href="/onboard">Onboard</a>
28-
<a href="/health" style="margin-left: auto;">Health</a>
29-
</div>
30-
</nav>
12+
{{template "partials/nav" .}}
3113

3214
<div class="w-container">
3315
<div class="w-page-header">

internal/webui/templates/notfound.html

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,7 @@
88
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg">
99
</head>
1010
<body>
11-
<nav class="w-nav">
12-
<a href="/" class="w-nav-brand">
13-
<svg viewBox="0 0 28 28" fill="none" stroke="currentColor" stroke-width="2.6" stroke-linecap="round" aria-hidden="true">
14-
<path d="M2 14 C6 6, 10 6, 14 14 C18 22, 22 22, 26 14"/>
15-
<path d="M2 14 C6 22, 10 22, 14 14 C18 6, 22 6, 26 14" opacity="0.35"/>
16-
</svg>
17-
Wave
18-
</a>
19-
<div class="w-nav-links">
20-
<a href="/work">Work</a>
21-
<a href="/runs">Runs</a>
22-
<a href="/pipelines">Pipelines</a>
23-
<a href="/proposals">Proposals</a>
24-
<a href="/issues">Issues</a>
25-
<a href="/prs">PRs</a>
26-
<a href="/onboard">Onboard</a>
27-
<a href="/health" style="margin-left: auto;">Health</a>
28-
</div>
29-
</nav>
11+
{{template "partials/nav" .}}
3012

3113
<div class="w-container">
3214
<div class="w-empty" style="padding: 80px 20px;">

internal/webui/templates/onboard/index.html

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,7 @@
77
<link rel="stylesheet" href="/static/style.css">
88
</head>
99
<body>
10-
<nav class="w-nav">
11-
<a href="/" class="w-nav-brand">
12-
<svg viewBox="0 0 28 28" fill="none" stroke="currentColor" stroke-width="2.6" stroke-linecap="round" aria-hidden="true">
13-
<path d="M2 14 C6 6, 10 6, 14 14 C18 22, 22 22, 26 14"/>
14-
<path d="M2 14 C6 22, 10 22, 14 14 C18 6, 22 6, 26 14" opacity="0.35"/>
15-
</svg>
16-
Wave
17-
</a>
18-
<div class="w-nav-links">
19-
<a href="/work">Work</a>
20-
<a href="/runs">Runs</a>
21-
<a href="/pipelines">Pipelines</a>
22-
<a href="/proposals">Proposals</a>
23-
<a href="/issues">Issues</a>
24-
<a href="/prs">PRs</a>
25-
<a href="/onboard" class="active">Onboard</a>
26-
<a href="/health" style="margin-left: auto;">Health</a>
27-
</div>
28-
</nav>
10+
{{template "partials/nav" .}}
2911

3012
<div class="w-container">
3113
<div class="onboard-shell" data-session-id="{{.SessionID}}">

0 commit comments

Comments
 (0)