Commit Graph

30 Commits

Author SHA1 Message Date
Matthias Hochmeister
5032e1593b new features 2026-03-23 13:08:19 +01:00
Matthias Hochmeister
515f14956e rights system 2026-03-23 10:50:52 +01:00
Matthias Hochmeister
2bb22850f4 rights system 2026-03-23 10:07:53 +01:00
Matthias Hochmeister
f3ad989a9e update 2026-03-16 15:01:09 +01:00
Matthias Hochmeister
215528a521 update 2026-03-16 14:41:08 +01:00
Matthias Hochmeister
d31f139d9a update 2026-03-13 15:27:21 +01:00
Matthias Hochmeister
ff72daa55e update 2026-03-13 15:22:58 +01:00
Matthias Hochmeister
68586b01dc resolve issues with new features 2026-03-12 16:42:21 +01:00
Matthias Hochmeister
5aa309b97a resolve issues with new features 2026-03-12 16:05:01 +01:00
Matthias Hochmeister
a5cd78f01f feat: bug fixes, layout improvements, and new features
Bug fixes:
- Remove non-existent `role` column from admin users SQL query (A1)
- Fix Nextcloud Talk chat API path v4 → v1 for messages/send/read (A2)
- Fix ServiceModeTab sync: useState → useEffect to reflect DB state (A3)
- Guard BookStack book_slug with book_id fallback to avoid broken URLs (A4)

Layout & UI:
- Chat panel: sticky full-height positioning, main content scrolls independently (B1)
- Vehicle booking datetime inputs: explicit text color for dark mode (B2)
- AnnouncementBanner moved into grid with full-width span (B3)

Features:
- Per-user widget visibility preferences stored in users.preferences JSONB (C1)
- Link collections: grouped external links in admin UI and dashboard widget (C2)
- Admin ping history: migration 026, checked_at timestamps, expandable history rows (C4)
- Service mode end date picker with scheduled deactivation display (C5)
- Vikunja startup config logging and configured:false warnings (C7)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-12 14:57:54 +01:00
Matthias Hochmeister
cd68bd3795 annoucement banners, calendar pdf export, vehicle booking quck-add, even quick-add 2026-03-12 11:47:08 +01:00
Matthias Hochmeister
31f1414e06 adding chat features, admin features and bug fixes 2026-03-12 08:16:34 +01:00
Matthias Hochmeister
e9463c1c66 add vikunja integration 2026-03-05 18:07:18 +01:00
Matthias Hochmeister
d3561c1109 new features, bookstack 2026-03-03 21:30:38 +01:00
Matthias Hochmeister
5a6fc85a75 add features 2026-03-03 17:01:53 +01:00
Matthias Hochmeister
92b05726d4 permission changes 2026-03-03 15:38:17 +01:00
Matthias Hochmeister
b3a2fd9ff9 feat: responsive widgets, atemschutz permission UX, event hard-delete
- fix dashboard grid: use auto-fill instead of auto-fit for equal-width widgets
- atemschutz: skip stats/members API calls for non-privileged users, hide
  empty Aktionen column, add personal status subtitle
- kalender: add permanent delete option for events with confirmation dialog

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-03 14:59:08 +01:00
Matthias Hochmeister
5dfaf7db54 bug fixes 2026-03-03 14:45:46 +01:00
Matthias Hochmeister
004b141cab bug fixes 2026-03-03 13:27:27 +01:00
Matthias Hochmeister
02cf5138cf fix: dashboard layout, widget caching, and backend stability
Layout:
- Remove Container maxWidth cap so widgets scale fluidly on wide screens
- Fix ActivityFeed Card missing height:100% and overflow:hidden that caused
  the timeline connector pseudo-element to bleed outside the card boundary

Performance (frontend):
- Migrate VehicleDashboardCard, EquipmentDashboardCard, AtemschutzDashboardCard,
  UpcomingEventsWidget, and PersonalWarningsBanner from useEffect+useState to
  TanStack Query — cached for 5 min, so navigating back to the dashboard no
  longer re-fires all 9 API requests
- Add gcTime:10min and refetchOnWindowFocus:false to QueryClient defaults to
  prevent spurious refetches on tab-switch

Backend stability:
- Raise default RATE_LIMIT_MAX from 100 to 300 req/15min — the previous limit
  was easily exceeded by a single active user during normal dashboard navigation
- Increase DB connectionTimeoutMillis from 2s to 5s to handle burst-load
  scenarios where multiple requests compete for pool slots simultaneously

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-03 12:55:16 +01:00
Matthias Hochmeister
d91f757f34 bug fixes 2026-03-03 11:45:08 +01:00
Matthias Hochmeister
2306741c4d feat: dashboard widgets, auth fix, profile names, dynamic groups
- Add VehicleDashboardCard: self-contained widget modelled after
  AtemschutzDashboardCard, shows einsatzbereit ratio and inspection
  warnings inline; replaces StatsCard + InspectionAlerts in Dashboard

- Add EquipmentDashboardCard: consolidated equipment status widget
  showing only aggregated counts (no per-item listing); replaces
  EquipmentAlerts component in Dashboard

- Fix auth race condition: add authInitialized flag to api.ts so 401
  responses during initial token validation no longer trigger a
  spurious redirect to /login; save intended destination before login
  redirect and restore it after successful auth callback

- Fix profile firstname/lastname: add extractNames() helper to
  auth.controller.ts that falls back to splitting userinfo.name when
  Authentik does not provide separate given_name/family_name fields;
  applied on both create and update paths

- Dynamic groups endpoint: replace hardcoded KNOWN_GROUPS array in
  events.controller.ts with a DB query (SELECT DISTINCT unnest
  (authentik_groups) FROM users); known slugs get German labels via
  lookup map, unknown slugs are humanized automatically

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-03 10:28:31 +01:00
Matthias Hochmeister
64b23bae5c featuer change for calendar 2026-03-03 09:53:23 +01:00
Matthias Hochmeister
d9af34b744 featuer change for calendar 2026-03-03 09:52:10 +01:00
Matthias Hochmeister
146f79cf00 featuer change for calendar 2026-03-03 08:57:32 +01:00
Matthias Hochmeister
5b8f40ab9a add now features 2026-03-01 14:41:45 +01:00
Matthias Hochmeister
681acd8203 add now features 2026-03-01 11:50:27 +01:00
Matthias Hochmeister
1e478479be rework vehicle handling 2026-02-28 13:57:41 +01:00
Matthias Hochmeister
c5e8337a69 add features 2026-02-27 19:47:20 +01:00
Matthias Hochmeister
f09748f4a1 inital 2026-02-23 17:08:58 +01:00