Files
nuzlocke-tracker/.beans/nuzlocke-tracker-ru96--admin-run-slide-over-panel-with-metadata-editing.md
2026-03-22 08:56:06 +01:00

51 lines
2.2 KiB
Markdown

---
# nuzlocke-tracker-ru96
title: Admin run slide-over panel with metadata editing
status: draft
type: feature
priority: normal
created_at: 2026-03-21T21:59:20Z
updated_at: 2026-03-21T22:04:08Z
parent: nuzlocke-tracker-9i9m
---
Replace the current click-to-delete behavior on the runs page with a slide-over panel that shows run details and allows editing metadata.
## Current problem
Clicking any run row in AdminRuns immediately opens a delete confirmation modal. There is no way to view or edit run metadata (name, status, owner, visibility).
## Approach
- Replace `onRowClick` from opening delete modal to opening a slide-over panel
- Panel slides in from the right over the runs list
- Panel shows all run metadata with inline editing:
- Name (text input)
- Status (dropdown: active/completed/failed — matches `RunStatus` type)
- Owner (user search/select — requires new admin endpoint)
- Visibility (dropdown: public/private/unlisted)
- Rules, Naming Scheme (if applicable)
- Started At, Completed At (read-only)
- Save button to persist changes
- Delete button at bottom of panel (with confirmation)
- New admin-only backend endpoint: PUT /admin/runs/:id for owner reassignment and other admin-only fields\n- New admin-only endpoint: GET /admin/users for user search/select (currently no list-users endpoint exists — only /users/me)
## Files to modify
- `frontend/src/pages/admin/AdminRuns.tsx` — Replace delete-on-click with slide-over
- `frontend/src/components/admin/RunSlideOver.tsx` — New slide-over component
- `frontend/src/hooks/useRuns.ts` — Add admin update mutation
- `backend/app/routes/admin.py` — Add admin run update endpoint
- `backend/app/schemas/run.py` — Add admin-specific update schema (with owner_id)
## Checklist
- [ ] SlideOver component (reusable, slides from right)
- [ ] RunSlideOver with editable fields
- [ ] AdminRuns opens slide-over on row click (not delete modal)
- [ ] Save functionality with optimistic updates
- [ ] Delete button inside slide-over with confirmation
- [ ] Admin backend endpoint for run updates (including owner reassignment)
- [ ] Admin run update schema with owner_id field
- [ ] User search/select for owner reassignment