ab15c17ffb
- Users can pin/unpin any available service on their home page via a Customize mode; preferences persisted via PATCH /api/users/me/preferences - Time-aware greeting renders the user's display name through React JSX (HTML-escaped by design — no dangerouslySetInnerHTML used) - Added dashboard_app_ids JSON column to users table (migration c7e8f9a0b1d2) - /settings now routes to a placeholder page Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
24 lines
1.6 KiB
Markdown
24 lines
1.6 KiB
Markdown
# 2026-04-17 — Customizable home dashboard and settings placeholder
|
|
|
|
**Timestamp:** 2026-04-17T14:00:00+00:00
|
|
|
|
## Summary
|
|
|
|
Replaced the static dashboard page with a per-user customizable home screen. Each user can pin and unpin apps from the available services list. A time-aware greeting shows the user's display name (XSS-safe via React JSX text rendering). The Settings navigation item now routes to a placeholder page.
|
|
|
|
## Files Added / Modified / Deleted
|
|
|
|
### Added
|
|
- `backend/alembic/versions/c7e8f9a0b1d2_add_dashboard_app_ids_to_users.py` — Migration adding `dashboard_app_ids` JSON column to `users` table (default `[]`; non-nullable)
|
|
- `frontend/src/pages/SettingsPage.tsx` — Placeholder settings page at `/settings`
|
|
|
|
### Modified
|
|
- `backend/app/models/user.py` — Added `dashboard_app_ids: Mapped[list]` JSON column
|
|
- `backend/app/schemas/user.py` — Added `DashboardPrefsOut` and `DashboardPrefsUpdate` schemas; `app_ids` validated as safe slugs (regex, max 50, max 64 chars each)
|
|
- `backend/app/routers/users.py` — Added `GET /api/users/me/preferences` and `PATCH /api/users/me/preferences` endpoints
|
|
- `frontend/src/api/client.ts` — Added `DashboardPrefs` interface, `getDashboardPrefs()`, `updateDashboardPrefs()`
|
|
- `frontend/src/pages/DashboardPage.tsx` — Full rewrite: greeting, pinned app cards grid, customize/edit mode with add/remove toggles, save via TanStack Query mutation
|
|
- `frontend/src/App.tsx` — Imported `SettingsPage`, registered `/settings` route
|
|
- `backend/STATUS.md` — Updated Users endpoints table and models table
|
|
- `frontend/STATUS.md` — Added home dashboard section, added `/settings` to routes table
|