P2R-02 slice 1: host-detail sub-tab skeleton

Extract header/vitals/sub-tabs into a host_chrome partial that every
host-detail tab page renders. Sources / Schedules / Repo go from
inert divs to real <a> links backed by stub pages that share the
chrome and a 'coming next' body — slices 2/3/4 fill them in.

Also re-establishes the version indicator (host_schedule_version vs
agent's applied_schedule_version) in the header.

Drops the legacy fat-schedule list/edit templates that referenced
fields removed by the P2 redesign (Manual / Paths / RetentionPolicy
on Schedule); the new templates land in slice 3.
This commit is contained in:
2026-05-03 11:37:55 +01:00
parent 84914fd6c5
commit 079b4bed70
14 changed files with 336 additions and 411 deletions
+4
View File
@@ -185,6 +185,10 @@ func (s *Server) routes(r chi.Router) {
r.Get("/hosts/pending/{token}/awaiting", s.handleUIPendingAwaiting)
// Host detail (Snapshots tab is the default).
r.Get("/hosts/{id}", s.handleUIHostDetail)
// Sources tab (slice 2 fills in CRUD).
r.Get("/hosts/{id}/sources", s.handleUIHostSources)
// Repo tab (slice 4 fills in body).
r.Get("/hosts/{id}/repo", s.handleUIHostRepo)
// Schedules tab + create/edit/delete forms.
r.Get("/hosts/{id}/schedules", s.handleUISchedulesList)
r.Get("/hosts/{id}/schedules/new", s.handleUIScheduleNewGet)