Admin page /admin/jersey-orders — review and reconcile #244
Labels
No labels
domain:backend
domain:devops
domain:frontend
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ldraney/westside-app#244
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Type
Feature
Lineage
Depends on
basketball-api#432(GET admin endpoint). Part of System B production rollout. Architecture inarch-jersey-intake.Repo
forgejo_admin/westside-landingUser Story
As Marcus (admin)
I want an admin page listing public jersey submissions with filters
So that I can review new submissions, reconcile them against existing parents/players, and track fulfillment status
Context
Admin-facing counterpart to
(app)/jersey-public. Lives inside(app)/admin/to inherit the existing admin-role guard in(app)/+layout.svelte(if (path.startsWith('/admin') && !hasRole('admin')) → redirect to role dashboard).Read-only in this ticket. Write actions (status updates, reconciliation) are a follow-up once Marcus confirms the read-only view is the right shape.
File Targets
Files to create:
src/routes/(app)/admin/jersey-orders/+page.svelte— list viewsrc/routes/(app)/admin/jersey-orders/+page.js— client loader that calls basketball-api with the admin's JWT via$lib/keycloak.js::getToken()Files the agent should NOT touch:
src/routes/(app)/jersey-public/*— that's T1 (issue #243), hands offsrc/routes/(app)/+layout.svelte— auth guard lives here, read-only referenceAcceptance Criteria
/admin/jersey-ordersas an unauthenticated user redirects to/signin(existing layout guard)Test Expectations
Constraints
(app)/+layout.svelte) — do NOT build new auth$staterunesAuthorization: Bearer <token>header; read token from$lib/keycloak.jsChecklist
westside-landingmainfeedback_funnel_requires_auth.mdRelated
westside-basketball— projectstory:WS-S31— admin public jersey intake linkarch-jersey-intake— architecture docbasketball-api#432feedback_funnel_requires_auth.mdScope Review: APPROVED
Review note:
review-951-2026-04-10Scope is solid and fits a single agent pass (<5 min). All file targets verified against the repo on Forgejo:
src/routes/(app)/+layout.sveltecontains the exact guardif (authenticated && path.startsWith('/admin') && !hasRole('admin'))- no modification needed.src/lib/keycloak.jsexportsgetToken(verified).src/routes/(app)/admin/jersey-orders/does not exist yet (correct - this ticket creates it). Sibling admin routes (commerce/players/schedule/teams/users) confirmed present.basketball-api#432(T5) verified open on Forgejo.Traceability:
story:WS-S31verified inproject-westside-basketballstories-admin section.arch:jersey-intakelabel present but backing note missing.One tracking gap (not a code blocker):
[SCOPE]Create architecture notearch-jersey-intakein pal-e-docs. Referenced by the ticket and the board label, but the note does not exist. Create in parallel; does not block dev.No
[BODY]or[LABEL]fixes required. Ready to advance tonext_uponce T5 merges.