feat(admin): standardize People/Spaces tables (LC-510, PR2) #478

Merged
longjacksonle merged 3 commits from feat/LC-510-admin-people-spaces-tables into main 2026-06-28 05:33:50 +02:00

PR2 of the Admin panel redesign (LC-510). Standardizes the People + Spaces list pages on the shell shipped in PR1 (#477).

Scope: Users, Invites, Rooms, Enclaves

  • Shared .lc-table component: card-wrapped, edge-to-edge cells, muted header row, row hover (surface-sunken). Reused by the remaining list pages in PR3/PR4.
  • Page headers removed from each template (the shell renders the title from section, so the old per-page <h1> was duplicated). Intro copy kept as a muted line.
  • Empty states via the shared partials/empty_state.html (no users / no invite codes / no rooms / no enclaves).
  • Buttons moved to the standardized .btn vocabulary: inline saves -> btn-secondary, restorative actions (unban/unmute/regen) -> btn-ghost.
  • Destructive actions get confirmation + destructive styling. Ban, mute, delete (user), archive (room), and revoke (invite) now carry hx-confirm and a danger/caution outline button. Previously only user-delete and room-archive were confirmed; ban/mute/revoke saved silently.

Row fragments (user_row.html, room_row.html) keep their ids + hx-swap-oob so the live admin-topic OOB updates still work; only the markup/styling changed.

i18n

New keys (en+es): admin-userrow-ban-confirm, admin-userrow-mute-confirm, admin-invites-revoke-confirm, and the four admin-*-empty states.

Checks

just check, just test, just test-saas (incl. en/es i18n parity), just build-css all pass.

Next (LC-510)

PR3 Safety (Quarantine, Mod log, Anti-spam, Link filter, Reports); PR4 Integrations + Branding/Backup.

PR2 of the Admin panel redesign (LC-510). Standardizes the People + Spaces list pages on the shell shipped in PR1 (#477). ## Scope: Users, Invites, Rooms, Enclaves - **Shared `.lc-table`** component: card-wrapped, edge-to-edge cells, muted header row, row hover (`surface-sunken`). Reused by the remaining list pages in PR3/PR4. - **Page headers** removed from each template (the shell renders the title from `section`, so the old per-page `<h1>` was duplicated). Intro copy kept as a muted line. - **Empty states** via the shared `partials/empty_state.html` (no users / no invite codes / no rooms / no enclaves). - **Buttons** moved to the standardized `.btn` vocabulary: inline saves -> `btn-secondary`, restorative actions (unban/unmute/regen) -> `btn-ghost`. - **Destructive actions get confirmation + destructive styling.** Ban, mute, delete (user), archive (room), and revoke (invite) now carry `hx-confirm` and a danger/caution outline button. Previously only user-delete and room-archive were confirmed; ban/mute/revoke saved silently. Row fragments (`user_row.html`, `room_row.html`) keep their ids + `hx-swap-oob` so the live admin-topic OOB updates still work; only the markup/styling changed. ## i18n New keys (en+es): `admin-userrow-ban-confirm`, `admin-userrow-mute-confirm`, `admin-invites-revoke-confirm`, and the four `admin-*-empty` states. ## Checks `just check`, `just test`, `just test-saas` (incl. en/es i18n parity), `just build-css` all pass. ## Next (LC-510) PR3 Safety (Quarantine, Mod log, Anti-spam, Link filter, Reports); PR4 Integrations + Branding/Backup.
Reusable card-wrapped table (header, row hover, edge-to-edge cells) and compact
destructive/caution outline buttons, shared by the admin list pages (PR2-4).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Card-wrapped .lc-table with row hover; drop the per-page <h1> (the shell header
renders it); shared empty states; .btn-styled actions. Destructive actions
(ban, mute, delete, archive, revoke) now carry hx-confirm + danger/caution
outline styling. Inline saves use btn-secondary; restorative actions btn-ghost.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
i18n(admin): ban/mute/revoke confirmations + table empty states (LC-510) (en+es)
All checks were successful
check-secrets / TruffleHog (push) Successful in 4s
check-secrets / Nosey parker (push) Successful in 4s
check-secrets / Kingfisher (push) Successful in 5s
check-secrets / Nosey parker (pull_request) Successful in 3s
Check / clippy + fmt + tests (pull_request) Successful in 5m30s
check-secrets / Kingfisher (pull_request) Successful in 5s
check-secrets / TruffleHog (pull_request) Successful in 5s
Create release / Create release from merged PR (pull_request) Has been skipped
27dc8ad43c
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
longjacksonle scheduled this pull request to auto merge when all checks succeed 2026-06-28 05:28:37 +02:00
longjacksonle deleted branch feat/LC-510-admin-people-spaces-tables 2026-06-28 05:33:50 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/lets-chat!478
No description provided.