feat: operator admin UI + backing endpoints (v0.2.0) #16
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/admin-ui"
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?
Replaces the placeholder admin page (which you hit on aio-demo) with a real operator admin. Bumps to v0.2.0.
Frontend — 4-tab admin (Vue 3 + Quasar 2 UMD, no build)
UMD gotchas honored per workspace rules: no self-closing tags,
${ }interpolation,:stylefor typography,static_url_for(path=...). Follows thespirekeeperadmin pattern.Backend — the endpoints the UI needs (all admin-key + ownership-scoped)
GET /rooms(filtered to caller's wallet),PUT /rooms/{id},DELETE /rooms/{id},POST /rooms/{id}/publish|unpublish,GET /rooms/{id}/bookings,GET /rooms/{id}/blocks,DELETE /blocks/{id},GET|PUT /settings._owned_roomcentralizes the 404/403 guard; publish/unpublish flip status and sync the relay listing.Tests — 28 pass
+5 admin-endpoint tests (call the view functions directly with a fake key, monkeypatched crud):
_owned_room403/404, list-rooms wallet filter, room update applies only mutable fields (wallet/id immutable), settings PUT merges editable fields only.Verified here / needs your eyes
node --checkclean, no self-closing tags, all 15 routes register.After merge (release)
Tag
v0.2.0, sha256 the archive, add a new catalog entry alongside v0.1.0 (don't overwrite — instances on 0.1.0 need it resolvable). I'll carry that through.Why PR
Money-adjacent extension → PR category. Handing off merge to you via the Forgejo UI.
🤖 Generated with Claude Code
Replaces the placeholder page with a real 4-tab admin (Vue 3 + Quasar 2 UMD, no build). Rooms table with create/edit dialog + publish-toggle + delete; per-room bookings view; per-room calendar blocks add/delete; operator settings form (identity, relays, hold, deposit, times, policy). UMD gotchas honored: no self-closing tags, ${ } interpolation, :style for typography, static_url_for(path=...). Follows the spirekeeper admin pattern. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019VUQCfdqiLSsFS2jcGnaFD