feat(profile): add username + preferred_locale; wire to Inertia + middleware

- DB: users.username (unique), users.preferred_locale (default from app.locale)
- Backend: validation, model fillable; share supportedLocales; SetLocaleFromUser
- Frontend: profile page fields + types
- Filament: SuperAdmin profile page with username/language

feat(admin-nav): move Tasks to Bibliothek and add menu labels

fix(tasks-table): show localized title/emotion/event type; add translated headers

feat(l10n): add missing table headers for emotions and event types; normalize en/de files

refactor: tidy translations for tasks/emotions/event types
This commit is contained in:
2025-09-11 21:17:19 +02:00
parent 40aa5fc188
commit fc1e64fea3
33 changed files with 960 additions and 161 deletions

View File

@@ -4,11 +4,10 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>Tenant Admin</title>
<title>{{ __('admin.shell.tenant_admin_title') }}</title>
@vite('resources/js/admin/main.tsx')
</head>
<body>
<div id="root"></div>
</body>
</html>

View File

@@ -1,15 +1,16 @@
<div class="space-y-3">
<div class="text-sm">Join Link</div>
<div class="text-sm">{{ __('admin.events.join_link.link_label') }}</div>
<div class="rounded border bg-gray-50 p-2 text-sm dark:bg-gray-900">
<a href="{{ $link }}" target="_blank" class="underline">
{{ $link }}
</a>
</div>
<div class="text-sm">QR Code</div>
<div class="text-sm">{{ __('admin.events.join_link.qr_code_label') }}</div>
<div class="flex items-center justify-center">
{!! \SimpleSoftwareIO\QrCode\Facades\QrCode::size(300)->generate($link) !!}
</div>
<div class="text-xs text-muted-foreground">
Hinweis: Der QR-Code wird über einen externen QR-Service generiert. Für eine selbst gehostete Lösung können wir später eine interne QR-Generierung ergänzen.
{!! __('admin.events.join_link.note_html') !!}
</div>
</div>

View File

@@ -8,7 +8,7 @@
]"
/>
<x-filament::button type="submit" >
Import
{{ __('admin.common.import') }}
</x-filament::button>
</x-filament-panels::form>
</x-filament-panels::page>

View File

@@ -8,7 +8,7 @@
]"
/>
<x-filament::button type="submit" >
Import
{{ __('admin.common.import') }}
</x-filament::button>
</x-filament-panels::form>
</x-filament-panels::page>

View File

@@ -3,11 +3,10 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Fotospiel</title>
<title>{{ config('app.name', 'Fotospiel') }}</title>
@vite('resources/js/guest/main.tsx')
</head>
<body>
<div id="root"></div>
</body>
</html>