feat: notifications, audit logging, and admin improvements
- Add centralized notification service with webhook (Discord/Slack) and email (SMTP) support, triggered for trip invites, booking changes, collab messages, and trip reminders - Webhook sends one message per event (group channel); email sends individually per trip member, excluding the actor - Discord invite notifications now include the invited user's name - Add LOG_LEVEL env var (info/debug) controlling console and file output - INFO logs show user email, action, and IP for audit events; errors for HTTP requests - DEBUG logs show every request with full body/query (passwords redacted), audit details, notification params, and webhook payloads - Add persistent trek.log file logging with 10MB rotation (5 files) in /app/data/logs/ - Color-coded log levels in Docker console output - Timestamps without timezone name (user sets TZ via Docker) - Add Test Webhook and Save buttons to admin notification settings - Move notification event toggles to admin panel - Add daily trip reminder scheduler (9 AM, timezone-aware) - Wire up booking create/update/delete and collab message notifications - Add i18n keys for notification UI across all 13 languages Made-with: Cursor
This commit is contained in:
@@ -25,6 +25,7 @@ const hu: Record<string, string | { name: string; category: string }[]> = {
|
||||
'common.email': 'E-mail',
|
||||
'common.password': 'Jelszó',
|
||||
'common.saving': 'Mentés...',
|
||||
'common.saved': 'Mentve',
|
||||
'common.update': 'Frissítés',
|
||||
'common.change': 'Módosítás',
|
||||
'common.uploading': 'Feltöltés…',
|
||||
@@ -149,6 +150,9 @@ const hu: Record<string, string | { name: string; category: string }[]> = {
|
||||
'settings.notifyCollabMessage': 'Csevegés üzenetek (Collab)',
|
||||
'settings.notifyPackingTagged': 'Csomagolási lista: hozzárendelések',
|
||||
'settings.notifyWebhook': 'Webhook értesítések',
|
||||
'settings.notificationsDisabled': 'Az értesítések nincsenek beállítva. Kérje meg a rendszergazdát, hogy engedélyezze az e-mail vagy webhook értesítéseket.',
|
||||
'settings.notificationsActive': 'Aktív csatorna',
|
||||
'settings.notificationsManagedByAdmin': 'Az értesítési eseményeket az adminisztrátor konfigurálja.',
|
||||
'settings.on': 'Be',
|
||||
'settings.off': 'Ki',
|
||||
'settings.mcp.title': 'MCP konfiguráció',
|
||||
@@ -234,8 +238,20 @@ const hu: Record<string, string | { name: string; category: string }[]> = {
|
||||
'settings.mfa.toastEnabled': 'Kétfaktoros hitelesítés engedélyezve',
|
||||
'settings.mfa.toastDisabled': 'Kétfaktoros hitelesítés kikapcsolva',
|
||||
'settings.mfa.demoBlocked': 'Demo módban nem érhető el',
|
||||
'admin.notifications.title': 'Értesítések',
|
||||
'admin.notifications.hint': 'Válasszon értesítési csatornát. Egyszerre csak egy lehet aktív.',
|
||||
'admin.notifications.none': 'Kikapcsolva',
|
||||
'admin.notifications.email': 'E-mail (SMTP)',
|
||||
'admin.notifications.webhook': 'Webhook',
|
||||
'admin.notifications.events': 'Értesítési események',
|
||||
'admin.notifications.eventsHint': 'Válaszd ki, mely események indítsanak értesítéseket minden felhasználó számára.',
|
||||
'admin.notifications.save': 'Értesítési beállítások mentése',
|
||||
'admin.notifications.saved': 'Értesítési beállítások mentve',
|
||||
'admin.notifications.testWebhook': 'Teszt webhook küldése',
|
||||
'admin.notifications.testWebhookSuccess': 'Teszt webhook sikeresen elküldve',
|
||||
'admin.notifications.testWebhookFailed': 'Teszt webhook küldése sikertelen',
|
||||
'admin.smtp.title': 'E-mail és értesítések',
|
||||
'admin.smtp.hint': 'SMTP konfiguráció e-mail értesítésekhez. Opcionális: Webhook URL Discordhoz, Slackhez stb.',
|
||||
'admin.smtp.hint': 'SMTP konfiguráció e-mail értesítések küldéséhez.',
|
||||
'admin.smtp.testButton': 'Teszt e-mail küldése',
|
||||
'admin.smtp.testSuccess': 'Teszt e-mail sikeresen elküldve',
|
||||
'admin.smtp.testFailed': 'Teszt e-mail küldése sikertelen',
|
||||
@@ -296,6 +312,8 @@ const hu: Record<string, string | { name: string; category: string }[]> = {
|
||||
'login.signIn': 'Bejelentkezés',
|
||||
'login.createAdmin': 'Admin fiók létrehozása',
|
||||
'login.createAdminHint': 'Hozd létre az első admin fiókot a TREK-hez.',
|
||||
'login.setNewPassword': 'Új jelszó beállítása',
|
||||
'login.setNewPasswordHint': 'A folytatás előtt meg kell változtatnia a jelszavát.',
|
||||
'login.createAccount': 'Fiók létrehozása',
|
||||
'login.createAccountHint': 'Új fiók regisztrálása.',
|
||||
'login.creating': 'Létrehozás…',
|
||||
|
||||
Reference in New Issue
Block a user