feat(admin): shared page-header component (LC-572) #540
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/lc572-admin-page-header"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Delivers the outstanding acceptance criterion from LC-561 / LC-UI-08 (Admin console visual system), carved out as follow-up LC-572: a shared admin page-header. The status-chip AC shipped earlier (PR #531); the header pattern was never built, so
admin_layout.htmlrendered a title-only header and pages hand-rolled intro/action rows inconsistently.What changed
admin_layout.htmlstill derives the page title fromsectionand now exposes three optional slots via nested Askama block overrides:admin_header_desc,admin_header_actions,admin_header_filters. Each defaults to empty, so title-only pages (users, modlog, reports, settings, ...) render exactly as before.Migrated every admin page that hand-rolled a header onto the slots: description-only (rooms, enclaves, bots, quarantine, outgoing_webhooks, slash_commands, link_filter); description + action (bridges); action-only (invites); the two detail sub-pages (bridge_avatars, outgoing_webhook_deliveries); and analytics, whose duplicate in-body
<h1>is dropped and whose date-range + recompute controls move into the filter slot.Adopts the two previously-dead LC-555 helpers (closing R5):
.lc-action-rowwraps the header action clusters,.lc-toolbarwraps the analytics filter strip. Inactive analytics date pills go ghost (no fill) so the active accent reads correctly on the toolbar's sunken background. New CSS is.lc-admin-header-bar/.lc-admin-header-heading/.lc-admin-descinmain.css, tokens only, no raw hex.Verification
dev/cargo checkcompiles cleanly, which validates every template (block overrides and Fluent keys resolve). The production-shape dev-web image was rebuilt and serves the admin surfaces (/admin303s to SSO with no render error). Diff is templates + CSS only, no Rust.Acceptance criteria
.lc-action-rowand.lc-toolbarhave a real usage (R5 satisfied). ✅analyticsno longer renders a second title; its date range lives in the filter slot. ✅🤖 Generated with Claude Code
https://claude.ai/code/session_01GJbJChgMXj7m1Q8GdnTPyT