Updated 19-06-2026, 12:32
Commit: de695a8 Show on GitHub
- Author: Alex
- Date: 6/5/2026, 10:56:55 AM
- Message: feat: Support multiple cities (Routing) issue #30 Resolve a city from the [city] URL slug via apa_cities and scope all pages, navigation, downloads and APIs to it; add a root city picker. Sampling points and tubes are now per-city, with admin create and deactivate for tubes.
- Stats: 879 total changes (+636 / -243)
Changed Files
src/hooks.server.js— +3 / -2 (5 changes)src/lib/server/services/cityService.js— +68 / -0 (68 changes)src/routes/(public)/data/+page.server.js— +0 / -0 (0 changes)src/routes/+layout.svelte— +1 / -16 (17 changes)src/routes/+page.server.js— +8 / -8 (16 changes)src/routes/+page.svelte— +78 / -111 (189 changes)src/routes/[city]/(public)/about-us/+page.svelte— +0 / -0 (0 changes)src/routes/[city]/(public)/api-key/request/+page.server.js— +2 / -2 (4 changes)src/routes/[city]/(public)/api-key/request/+page.svelte— +0 / -0 (0 changes)src/routes/[city]/(public)/api-key/success/+page.server.js— +3 / -3 (6 changes)src/routes/[city]/(public)/api-key/success/+page.svelte— +1 / -1 (2 changes)src/routes/[city]/(public)/api-key/verify/+page.server.js— +5 / -5 (10 changes)src/routes/[city]/(public)/api-key/verify/+page.svelte— +0 / -0 (0 changes)src/routes/[city]/(public)/data/+page.server.js— +5 / -0 (5 changes)src/routes/[city]/(public)/data/+page.svelte— +20 / -17 (37 changes)src/routes/[city]/(public)/info/+page.svelte— +0 / -0 (0 changes)src/routes/[city]/+error.svelte— +0 / -0 (0 changes)src/routes/[city]/+layout.server.js— +20 / -0 (20 changes)src/routes/[city]/+layout.svelte— +22 / -0 (22 changes)src/routes/[city]/+page.server.js— +17 / -0 (17 changes)src/routes/[city]/+page.svelte— +119 / -0 (119 changes)src/routes/[city]/admin/+layout.server.js— +14 / -0 (14 changes)src/routes/[city]/admin/+layout.svelte— +2 / -2 (4 changes)src/routes/[city]/admin/+page.server.js— +9 / -8 (17 changes)src/routes/[city]/admin/+page.svelte— +77 / -6 (83 changes)src/routes/[city]/admin/login/+page.server.js— +4 / -4 (8 changes)src/routes/[city]/admin/login/+page.svelte— +0 / -0 (0 changes)src/routes/[city]/admin/logout/+page.server.js— +2 / -2 (4 changes)src/routes/[city]/api/admin/data/+server.js— +10 / -2 (12 changes)src/routes/[city]/api/admin/keuzes/+server.js— +28 / -0 (28 changes)src/routes/[city]/api/admin/measurements/+server.js— +0 / -0 (0 changes)src/routes/[city]/api/admin/measurements/[id]/+server.js— +0 / -0 (0 changes)src/routes/[city]/api/admin/measurements/batch/+server.js— +0 / -0 (0 changes)src/routes/[city]/api/admin/points/+server.js— +9 / -3 (12 changes)src/routes/[city]/api/admin/points/[id]/+server.js— +0 / -0 (0 changes)src/routes/[city]/api/admin/points/[id]/active/+server.js— +0 / -0 (0 changes)src/routes/[city]/api/admin/tubes/+server.js— +30 / -0 (30 changes)src/routes/[city]/api/admin/tubes/[id]/active/+server.js— +29 / -0 (29 changes)src/routes/[city]/api/admin/users/+server.js— +0 / -0 (0 changes)src/routes/[city]/api/admin/users/[id]/+server.js— +0 / -0 (0 changes)src/routes/[city]/api/public/data/+server.js— +20 / -1 (21 changes)src/routes/[city]/downloads/data.csv/+server.js— +6 / -3 (9 changes)src/routes/[city]/downloads/data.json/+server.js— +18 / -0 (18 changes)src/routes/[city]/downloads/data.xlsx/+server.js— +6 / -3 (9 changes)src/routes/admin/+layout.server.js— +0 / -11 (11 changes)src/routes/api/admin/keuzes/+server.js— +0 / -14 (14 changes)src/routes/downloads/data.json/+server.js— +0 / -15 (15 changes)static/keuzes.json— +0 / -4 (4 changes)