Maurice
6444b2b4ce
feat: add Brazilian Portuguese (pt-BR) language support — thanks @fgbona
2026-03-29 23:55:46 +02:00
Maurice
12f8b6eb55
feat: add missing French translation keys for memories and weekend days
2026-03-29 23:38:51 +02:00
quentinClaudel
202cfb6a63
feat: improve French translations — thanks @quentinClaudel
2026-03-29 23:36:56 +02:00
Maurice
b6f9664ec2
feat: multi-link files to multiple bookings and places — closes #23
...
Files can now be linked to multiple bookings and places simultaneously
via a new file_links junction table. Booking modal includes a file picker
to link existing uploads. Unlinking removes the association without
deleting the file.
2026-03-29 23:32:04 +02:00
Maurice
9f8075171d
feat: Immich photo integration — Photos addon with sharing, filters, lightbox
...
- Immich connection per user (Settings → Immich URL + API Key)
- Photos addon (admin-toggleable, trip tab)
- Manual photo selection from Immich library (date filter + all photos)
- Photo sharing with consent popup, per-photo privacy toggle
- Lightbox with liquid glass EXIF info panel (camera, lens, location, settings)
- Location filter + date sort in gallery
- WebSocket live sync when photos are added/removed/shared
- Proxy endpoints for thumbnails and originals with token auth
2026-03-29 22:41:39 +02:00
Maurice
e05e021f41
fix: prevent duplicate packing category names from merging — auto-append number — closes #100
2026-03-29 22:37:21 +02:00
Maurice
62fbc26811
fix: GitHub panel blank screen — add missing releases endpoint, fix NOMAD→TREK URL — closes #107
2026-03-29 22:37:21 +02:00
Maurice
2171203a4c
feat: configurable weekend days in Vacay — closes #97
...
Users can now select which days are weekends (default: Sat+Sun).
Useful for countries like Bangladesh (Fri+Sat) or others with
different work weeks. Settings appear under "Block weekends" toggle.
2026-03-29 19:46:24 +02:00
Maurice
020cafade1
feat: auto-redirect to OIDC when password auth is disabled — closes #94
2026-03-29 18:25:51 +02:00
Maurice
d2efd960b5
v2.7.0
2026-03-29 17:42:11 +02:00
Maurice
252d2d22a8
i18n: sync all 8 languages to 1086 keys — remove ES extras, complete AR
2026-03-29 17:23:19 +02:00
Maurice
80c2486570
i18n: add missing translation keys for all features across ES, FR, RU, ZH, NL, AR
2026-03-29 17:09:33 +02:00
Maurice
7dcd89fb71
fix: pan to clicked marker without zoom reset — closes #86
2026-03-29 16:55:27 +02:00
Maurice
8458481950
feat: atlas country marking, bucket list, trip creation UX — closes #49
...
Atlas:
- Click any country to mark as visited or add to bucket list
- Bucket list with country flags, planned month/year, horizontal layout
- Confirm popup with two options (mark visited / bucket list)
- Full A2/A3 country code mapping for all countries
Trip creation:
- Drag & drop cover image support
- Add travel buddies via CustomSelect dropdown when creating a trip
- Manual date entry via double-click on date picker (supports DD.MM.YYYY, ISO, etc.)
2026-03-29 16:51:35 +02:00
Maurice
808b7f7a72
fix: map pins update immediately when category filter is cleared
2026-03-29 15:27:56 +02:00
Maurice
f4ee7b868d
feat: sync category filter to map pins — closes #81
2026-03-29 15:26:47 +02:00
Maurice
c39d242cfb
feat: bag tracking with weight distribution, packing UX overhaul — closes #13
...
- Bag tracking: optional admin setting under Packing addon, weight per item,
bag assignment with inline creation, iOS-style weight sidebar + mobile modal
- Admin: merged Categories + Packing Templates into "Configuration" tab
- Packing UI: category-first workflow, mobile-friendly action buttons,
stable category ordering, responsive button labels
2026-03-29 15:08:56 +02:00
Maurice
2f8a189319
feat: packing templates with category-based workflow — closes #14
...
- Admin: create/edit/delete packing templates with categories and items
- Trip packing: category-first workflow (add category → add items inside)
- Apply template button adds items additively (preserves existing)
- Replaces old item+category freetext input
2026-03-29 14:19:06 +02:00
Maurice
44138af11a
feat: assign trip members to packing list categories — closes #71
2026-03-29 13:37:48 +02:00
mauriceboe
bc6c59f358
Merge pull request #72 from Summerfeeling/main
...
fix: prioritize ADM0_A3 over ISO_A3 in atlas area resolution to support France, Norway and Israel
2026-03-29 13:23:15 +02:00
Maurice
54804d0e5f
style: unify language button size with other settings buttons
2026-03-29 13:21:24 +02:00
Maurice
631e47944b
style: increase spacing between password/MFA sections in settings
2026-03-29 13:20:08 +02:00
Maurice
3abcc0ec76
feat: fix MFA integration — migration, otplib compat, branding, and add MFA translations for all languages
2026-03-29 13:18:53 +02:00
Maurice
530f233b7d
Merge PR #76 : feat/mfa — multifactor authentication ( closes #46 )
2026-03-29 13:01:05 +02:00
Maurice
fbb3bb862c
i18n: add missing Arabic translations for grid/list toggle, accommodation rename, and invite links
2026-03-29 12:58:18 +02:00
mauriceboe
3c3b7b9136
Merge pull request #76 from mansourSaleh/add-arabic-language-support
...
feat(client): add Arabic language support
2026-03-29 12:56:45 +02:00
Maurice
99514ddce1
feat: add invite registration links with configurable usage limits
...
Admins can create one-time registration links (1–5× or unlimited uses)
with optional expiry (1d–14d or never). Recipients can register even
when public registration is disabled. Atomic usage counting prevents
race conditions, all endpoints are rate-limited.
2026-03-29 12:49:15 +02:00
Mansour Almohsen
b0ffb63d67
feat(client): add Arabic language support
...
Add Arabic to the client i18n system, expose it in the language selectors, and enable RTL document handling. Also localize the remaining language-specific UI bits used by the login, demo, Vacay, and GitHub panels.
2026-03-29 12:47:45 +03:00
Maurice
d909aac751
i18n: rename "Hotel" booking type to "Accommodation" — closes #75
2026-03-29 11:14:33 +02:00
Maurice
e91b79ebfc
feat: add list/grid view toggle on dashboard — closes #73
2026-03-29 11:10:33 +02:00
Summerfeeling | Timo
2d7babcba3
fix: prioritize ADM0_A3 over ISO_A3 in atlas area resolution to support France, Norway and Israel
2026-03-29 03:40:57 +02:00
Fernando Bona
e56ea068ef
Merge branch 'main' into feat/mfa
2026-03-28 22:12:26 -03:00
mauriceboe
df3e62af5c
Merge pull request #70 from Summerfeeling/main
...
fix: use correct uploads path as src for avatars in day plan sidebar
2026-03-29 01:50:58 +01:00
Maurice
7a445583d7
style: replace native color picker and text input with TREK-style components in holiday calendars
2026-03-29 01:41:57 +01:00
Summerfeeling | Timo
1d9d628e2d
fix: use correct uploads path for avatars in day plan sidebar
2026-03-29 01:39:15 +01:00
Maurice
005c08dcea
Merge PR #68 : multiple holiday calendars per vacay plan ( closes #36 )
2026-03-29 01:33:06 +01:00
Maurice
1d57eacfa4
fix: wrap language buttons in settings to prevent overflow
2026-03-29 01:05:40 +01:00
Maurice
ecf7433980
i18n: add French, Russian, Chinese Simplified, and Dutch translations
2026-03-29 01:02:41 +01:00
Maurice
27f8856e9b
i18n: add addon catalog translations for EN and DE — fixes missing collab tab name
2026-03-28 23:46:15 +01:00
Maurice
83d256ebac
feat: custom timezones in timezone widget — closes #21
2026-03-28 23:23:52 +01:00
Stephen Wheet
3c4f5f7193
feat: multiple holiday calendars per vacay plan
...
- Add vacay_holiday_calendars table (region, label, color, sort_order)
- Lazy migration of existing holidays_region to first calendar row
- Extract applyHolidayCalendars() helper; replace inline holiday logic
- GET /vacay/plan now includes holiday_calendars array
- Add POST/PUT/DELETE /vacay/plan/holiday-calendars/:id endpoints
- Client VacayPlan/VacayEntry/HolidayInfo types updated
- loadHolidays() loops over all calendars; per-calendar color on HolidayInfo
- VacayMonthCard uses holiday.color instead of hardcoded red
- VacaySettings replaced single country picker with calendar list UI
- VacayPage legend renders one item per calendar
- i18n: addCalendar, calendarLabel, calendarColor, noCalendars (en + de)
- Fix pre-existing TS errors: VacayPlan/VacayEntry missing fields,
SettingToggleProps icon/onChange types, packing.suggestions.items array type
Closes #36
2026-03-28 22:16:12 +00:00
Maurice
31124a604a
feat: auto-split pasted lat,lng coordinates in place form — closes #22
2026-03-28 23:11:47 +01:00
Maurice
0d9dbb6286
i18n: consolidate es.js into es.ts, add missing 2.6.2 Spanish translations
2026-03-28 23:00:53 +01:00
Fernando Bona
66ae577b7b
Merge branch 'main' into feat/mfa
2026-03-28 18:59:06 -03:00
Joaquin
706548c45d
feat: add full Spanish translation ( #57 )
...
* feat(i18n): add spanish translation support
* refactor(i18n): refine spanish copy for es-es
* refactor(i18n): translate addon titles to spanish
2026-03-28 22:56:17 +01:00
Stephen Wheet
77f2c616de
fix: type error in AdminPage handleSaveUser payload, install deps
2026-03-28 19:41:06 +00:00
Stephen Wheet
9f8d3f8d99
feat: add OIDC-only mode to disable password authentication
...
When OIDC is configured, admins can now enable 'Disable password
authentication' in Admin → Settings → SSO. This blocks all password-
based login and registration, forcing users through the SSO identity
provider instead.
Backend:
- routes/admin.ts: expose oidc_only flag on GET /admin/oidc and accept
it on PUT /admin/oidc (persisted to app_settings)
- routes/auth.ts: add isOidcOnlyMode() helper; block POST /auth/login,
POST /auth/register (for non-first-user), and PUT /auth/me/password
with HTTP 403 when OIDC-only mode is active
- routes/auth.ts: expose oidc_only_mode boolean in GET /auth/app-config
Frontend:
- AdminPage: toggle in OIDC/SSO settings section (oidc_only saved with
rest of OIDC config on same Save button)
- LoginPage: when oidc_only_mode is active, replace form with a
single-button OIDC redirect; hide register toggle
- SettingsPage: hide password change section when oidc_only_mode is on
- i18n (en/de): admin.oidcOnlyMode, admin.oidcOnlyModeHint,
login.oidcOnly
2026-03-28 19:33:18 +00:00
Maurice
e78c2a97bd
v2.6.2 — TREK Rebrand, OSM Enrichment, File Management, Hotel Bookings & Bug Fixes
...
Rebrand:
- NOMAD → TREK branding across all UI, translations, server, PWA manifest
- New TREK logos (dark/light, with/without icon)
- Liquid glass toast notifications
Bugs Fixed:
- HTTPS redirect now opt-in only (FORCE_HTTPS=true), fixes #33 #43 #52 #54 #55
- PDF export "Tag" fallback uses i18n, fixes #15
- Vacay sharing color collision detection, fixes #25
- Backup settings import fix (PR #47 )
- Atlas country detection uses smallest bounding box, fixes #31
- JPY and zero-decimal currencies formatted correctly, fixes #32
- HTML lang="en" instead of hardcoded "de", fixes #34
- Duplicate translation keys removed
- setSelectedAssignmentId crash fixed
New Features:
- OSM enrichment: Overpass API for opening hours, Wikimedia Commons for photos
- Reverse geocoding on map right-click to add places
- OIDC config via environment variables (OIDC_ISSUER, OIDC_CLIENT_ID, etc.), fixes #48
- Multi-arch Docker build (ARM64 + AMD64), fixes #11
- File management: star, trash/restore, upload owner, assign to places/bookings, notes
- Markdown rendering in Collab Notes with expand modal, fixes #17
- Type-specific booking fields (flight: airline/number/airports, hotel: check-in/out/days, train: number/platform/seat), fixes #35
- Hotel bookings auto-create accommodations, bidirectional sync
- Multiple hotels per day with check-in/check-out color coding
- Ko-fi and Buy Me a Coffee support cards
- GitHub releases proxy with server-side caching
2026-03-28 16:38:08 +01:00
fgbona
b6d927a3d6
feat/mfa: Added multifactor authentication.
2026-03-27 23:29:37 -03:00
Maurice
8396a75223
refactoring: TypeScript migration, security fixes,
2026-03-27 18:40:18 +01:00