fix(journey): fix issue #704 — active logic, archive, places rename, search, trip reminders

- Derive journey lifecycle from linked trip dates (live/upcoming/completed/draft)
  instead of relying solely on status field; status=archived always wins
- Add Archive/Restore Journey action in journey settings dialog
- Rename cities → places end-to-end (SQL alias, TS types, stats field, all locales)
- Wire up search icon: toggles inline input, filters by title+subtitle client-side
- Fix channelConfigured check: trip reminders enabled by default since inapp is
  always available; remove channel check, controlled solely by admin setting
- Expose notify_trip_reminder toggle in Admin → Settings → Notifications
- Add trip_date_min/trip_date_max to listJourneys SQL for client-side lifecycle
- Add archived status to Journey type (server + client)
- Update all 15 locale files with new keys (search, archive, places, trip reminders)
This commit is contained in:
jubnl
2026-04-17 16:59:23 +02:00
parent 4a5a461d25
commit 3b94727c07
31 changed files with 507 additions and 89 deletions
+2 -2
View File
@@ -8,7 +8,7 @@ export interface Journey {
subtitle?: string | null
cover_gradient?: string | null
cover_image?: string | null
status: 'draft' | 'active' | 'completed'
status: 'draft' | 'active' | 'completed' | 'archived'
created_at: number
updated_at: number
}
@@ -81,7 +81,7 @@ export interface JourneyDetail extends Journey {
entries: JourneyEntry[]
trips: JourneyTrip[]
contributors: JourneyContributor[]
stats: { entries: number; photos: number; cities: number }
stats: { entries: number; photos: number; places: number }
hide_skeletons?: boolean
}