Feature-Toggles, Administration, wiederkehrende Events und Event-Serien

- Administration & Rollenmanagement: Neuer Admin-Bereich mit Feature-Toggles
  und Sichtbarkeitseinstellungen pro Rolle (11 Toggles, 24 Visibility-Settings)
- AdministrationController mit eigenem Settings-Tab, aus SettingsController extrahiert
- Feature-Toggle-Guards in Controllers (Invitation, File, ListGenerator, Comment)
  und Views (events/show, events/edit, events/create)
- Setting::isFeatureEnabled() und isFeatureVisibleFor() Hilfsmethoden
- Wiederkehrende Trainings: Täglich/Wöchentlich/2-Wöchentlich mit Ende per
  Datum oder Anzahl (max. 52), Vorschau im Formular
- Event-Serien: Verknüpfung über event_series_id (UUID), Modal-Dialog beim
  Speichern und Löschen mit Optionen "nur dieses" / "alle folgenden"
- Löschen-Button direkt in der Event-Bearbeitung mit Serien-Dialog
- DemoDataSeeder: 4 Trainings als Serie mit gemeinsamer event_series_id
- Übersetzungen in allen 6 Sprachen (de, en, pl, ru, ar, tr)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Rhino
2026-03-03 08:38:45 +01:00
parent 0990e4249c
commit 8ccadbe89f
27 changed files with 1968 additions and 698 deletions

View File

@@ -645,4 +645,57 @@ return [
// Görünürlük
'visibility_feature_finances' => 'Finans',
// Administration
'nav_administration' => 'Yönetim',
'admin_title' => 'Yönetim',
'admin_tab_features' => 'Rol Yönetimi',
'admin_tab_mail' => 'E-posta',
'admin_tab_license' => 'Lisans ve Destek',
'admin_tab_maintenance' => 'Bakım',
'admin_tab_activity' => 'Etkinlik Günlüğü',
'features_description' => 'Özellikleri genel olarak etkinleştirin veya devre dışı bırakın ve rol bazında görünürlüğü kontrol edin. Temel özellikler (etkinlikler, takımlar, oyuncular, kullanıcılar) her zaman aktiftir.',
'feature_enabled' => 'Etkin',
'feature_disabled' => 'Devre dışı',
'feature_statistics' => 'İstatistikler',
'feature_finances' => 'Finans',
'feature_catering' => 'İkram',
'feature_timekeepers' => 'Zaman Tutucular',
'feature_carpools' => 'Araç Paylaşımı',
'feature_comments' => 'Yorumlar',
'feature_files' => 'Dosyalar',
'feature_faqs' => 'SSS',
'feature_list_generator' => 'Liste Oluşturucu',
'feature_invitations' => 'Davetler',
'feature_player_stats' => 'Oyuncu İstatistikleri',
'features_saved' => 'Rol yönetimi kaydedildi.',
'activity_recent' => 'Son Etkinlikler',
// Tekrarlama
'recurrence' => 'Tekrarlama',
'recurrence_none' => 'Tekrarlama yok',
'recurrence_daily' => 'Günlük',
'recurrence_weekly' => 'Haftalık',
'recurrence_biweekly' => 'Her 2 haftada bir',
'recurrence_end_type' => 'Tekrarlama sonu',
'recurrence_end_date' => 'Tarihe kadar',
'recurrence_end_count' => 'Tekrar sayısı',
'recurrence_count_label' => 'Sayı (ilk etkinlik hariç)',
'recurrence_preview' => ':count ek etkinlik oluşturulacak',
'recurrence_max_warning' => 'Maksimum :max etkinlik',
'recurrence_created' => ':count antrenman etkinliği oluşturuldu.',
// Etkinlik Serileri
'save_following' => 'Tüm sonrakileri güncelle',
'series_hint' => 'Bu etkinlik bir serinin parçası. :count adet daha gelecek etkinlik var.',
'save_series_title' => 'Değişiklikleri kaydet',
'save_series_description' => 'Bu etkinlik, :count gelecek etkinliği olan bir serinin parçasıdır. Değişiklikler sonraki etkinliklere de uygulanmalı mı?',
'save_only_this' => 'Yalnızca bu etkinliği kaydet',
'save_this_and_following' => 'Bu ve sonraki tüm etkinlikleri güncelle',
'delete_series_title' => 'Etkinlik serisini sil',
'delete_series_description' => 'Bu etkinlik tekrarlayan bir seriye ait. Ne silmek istiyorsunuz?',
'delete_only_this' => 'Sadece bu etkinliği sil',
'delete_this_and_following' => 'Bu ve sonraki tüm etkinlikleri sil',
'series_events_deleted' => ':count etkinlik silindi.',
'series_events_updated' => 'Bu etkinlik ve :count sonraki etkinlik güncellendi.',
];