Spielerpositionen, Statistiken, Fahrgemeinschaften, Spielfeld-Visualisierung
- PlayerPosition Enum (7 Handball-Positionen) mit Label/ShortLabel - Spielerstatistik pro Spiel (Tore, Würfe, TW-Paraden, Bemerkung) - Position-Dropdown in Spieler-Editor und Event-Stats-Formular - Statistik-Seite: TW zuerst, Trennlinie, Feldspieler, Position-Badges - Spielfeld-SVG mit Ampel-Performance (grün/gelb/rot) - Anklickbare Spieler im Spielfeld öffnen Detail-Modal - Fahrgemeinschaften (Anbieten, Zuordnen, Zurückziehen) - Übersetzungen in allen 6 Sprachen (de, en, pl, ru, ar, tr) - .gitignore für Laravel hinzugefügt - Demo-Daten mit Positionen und Statistiken Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -4,6 +4,7 @@ use App\Http\Controllers\Auth\ForgotPasswordController;
|
||||
use App\Http\Controllers\Auth\LoginController;
|
||||
use App\Http\Controllers\Auth\RegisterController;
|
||||
use App\Http\Controllers\Auth\ResetPasswordController;
|
||||
use App\Http\Controllers\CarpoolController;
|
||||
use App\Http\Controllers\CateringController;
|
||||
use App\Http\Controllers\TimekeeperController;
|
||||
use App\Http\Controllers\CommentController;
|
||||
@@ -129,6 +130,10 @@ Route::middleware(['auth'])->group(function () {
|
||||
Route::post('/events/{event}/catering', [CateringController::class, 'update'])->name('catering.update')->middleware(['throttle:user-actions', 'dsgvo']);
|
||||
Route::post('/events/{event}/timekeeper', [TimekeeperController::class, 'update'])->name('timekeeper.update')->middleware(['throttle:user-actions', 'dsgvo']);
|
||||
Route::post('/events/{event}/comments', [CommentController::class, 'store'])->name('comments.store')->middleware(['throttle:user-actions', 'dsgvo']);
|
||||
Route::post('/events/{event}/carpool/offer', [CarpoolController::class, 'offer'])->name('carpool.offer')->middleware(['throttle:user-actions', 'dsgvo']);
|
||||
Route::post('/events/{event}/carpool/withdraw', [CarpoolController::class, 'withdraw'])->name('carpool.withdraw')->middleware(['throttle:user-actions', 'dsgvo']);
|
||||
Route::post('/events/{event}/carpool/join', [CarpoolController::class, 'join'])->name('carpool.join')->middleware(['throttle:user-actions', 'dsgvo']);
|
||||
Route::post('/events/{event}/carpool/leave', [CarpoolController::class, 'leave'])->name('carpool.leave')->middleware(['throttle:user-actions', 'dsgvo']);
|
||||
|
||||
Route::get('/files', [FileController::class, 'index'])->name('files.index');
|
||||
Route::get('/files/{file}/download', [FileController::class, 'download'])->name('files.download');
|
||||
@@ -152,6 +157,7 @@ Route::middleware(['auth', 'admin'])->prefix('admin')->name('admin.')->group(fun
|
||||
// --- Fuer alle Admin-Panel-Nutzer (Admin, Coach, ParentRep) ---
|
||||
Route::get('/', [AdminDashboardController::class, 'index'])->name('dashboard');
|
||||
Route::get('statistics', [StatisticsController::class, 'index'])->name('statistics.index');
|
||||
Route::get('statistics/player/{player}', [StatisticsController::class, 'playerDetail'])->name('statistics.player-detail');
|
||||
|
||||
// Events (Leseansicht fuer alle Admin-Panel-Nutzer)
|
||||
Route::get('events', [AdminEventController::class, 'index'])->name('events.index');
|
||||
@@ -168,6 +174,7 @@ Route::middleware(['auth', 'admin'])->prefix('admin')->name('admin.')->group(fun
|
||||
Route::put('events/{event}', [AdminEventController::class, 'update'])->name('events.update');
|
||||
Route::delete('events/{event}', [AdminEventController::class, 'destroy'])->name('events.destroy');
|
||||
Route::patch('events/{event}/participant', [AdminEventController::class, 'updateParticipant'])->name('events.update-participant');
|
||||
Route::post('events/{event}/stats', [AdminEventController::class, 'updateStats'])->name('events.update-stats');
|
||||
Route::put('events/{event}/restore', [AdminEventController::class, 'restore'])->name('events.restore');
|
||||
|
||||
// Aktivitaetslog (Staff-Level + canViewActivityLog-Pruefung im Controller)
|
||||
|
||||
Reference in New Issue
Block a user