From 1b94e7f081101aa949633c69747b07b9bf59332d Mon Sep 17 00:00:00 2001 From: Matt Young Date: Wed, 19 Jun 2024 13:08:32 -0500 Subject: [PATCH] Seating limits page with dropdown to select Ensemble. Next design limits form. --- .../Controllers/Admin/AuditionController.php | 2 +- .../Controllers/Admin/EnsembleController.php | 6 +++ .../admin/ensembles/seatingLimits.blade.php | 18 +++++++ .../layout/navbar/menus/menu-item.blade.php | 2 + .../layout/navbar/menus/setup.blade.php | 15 +++--- routes/web.php | 50 ++++++++++--------- 6 files changed, 61 insertions(+), 32 deletions(-) create mode 100644 resources/views/admin/ensembles/seatingLimits.blade.php create mode 100644 resources/views/components/layout/navbar/menus/menu-item.blade.php diff --git a/app/Http/Controllers/Admin/AuditionController.php b/app/Http/Controllers/Admin/AuditionController.php index d707a47..cb3a892 100644 --- a/app/Http/Controllers/Admin/AuditionController.php +++ b/app/Http/Controllers/Admin/AuditionController.php @@ -141,7 +141,7 @@ class AuditionController extends Controller if(! Auth::user()->is_admin) abort(403); // if($audition->entries->count() > 0) abort(403, 'Cannot delete an audition with entries.' if($audition->entries->count() > 0) { - return redirect()->route('adminAuditionIndex')->with('error', 'Cannot delete an audition with entries.'); + return redirect()->route('admin.auditions.index')->with('error', 'Cannot delete an audition with entries.'); } $audition->delete(); return redirect('/admin/auditions'); diff --git a/app/Http/Controllers/Admin/EnsembleController.php b/app/Http/Controllers/Admin/EnsembleController.php index 3077164..f340ef5 100644 --- a/app/Http/Controllers/Admin/EnsembleController.php +++ b/app/Http/Controllers/Admin/EnsembleController.php @@ -57,6 +57,12 @@ class EnsembleController extends Controller return redirect()->route('admin.ensembles.index')->with('success','Ensemble updated successfully'); } + public function seatingLimits(Ensemble $ensemble) + { + $ensembles = Ensemble::with('event')->orderBy('event_id')->get(); + return view('admin.ensembles.seatingLimits',compact('ensemble','ensembles')); + } + public function updateEnsembleRank(Request $request) { if(! Auth::user()->is_admin) abort(403); diff --git a/resources/views/admin/ensembles/seatingLimits.blade.php b/resources/views/admin/ensembles/seatingLimits.blade.php new file mode 100644 index 0000000..f236c81 --- /dev/null +++ b/resources/views/admin/ensembles/seatingLimits.blade.php @@ -0,0 +1,18 @@ + + Seating Limits + + Choose Ensemble +
+ + + @foreach($ensembles as $optionEnsemble) + + @endforeach + +
+
+
diff --git a/resources/views/components/layout/navbar/menus/menu-item.blade.php b/resources/views/components/layout/navbar/menus/menu-item.blade.php new file mode 100644 index 0000000..91ba938 --- /dev/null +++ b/resources/views/components/layout/navbar/menus/menu-item.blade.php @@ -0,0 +1,2 @@ +@php($classes = "block p-2 hover:text-indigo-600") +merge(['class' => $classes]) }}>{{ $slot }} diff --git a/resources/views/components/layout/navbar/menus/setup.blade.php b/resources/views/components/layout/navbar/menus/setup.blade.php index 6586a9b..c191594 100644 --- a/resources/views/components/layout/navbar/menus/setup.blade.php +++ b/resources/views/components/layout/navbar/menus/setup.blade.php @@ -21,13 +21,14 @@ {{-- TODO conver to named routes --}}
- Events - Auditions - Ensembles - Scoring - Rooms - Judges - Run Draw + Events + Auditions + Ensembles + Seating Limits + Scoring + Rooms + Judges + Run Draw
diff --git a/routes/web.php b/routes/web.php index 7abb306..7d7bb02 100644 --- a/routes/web.php +++ b/routes/web.php @@ -65,6 +65,8 @@ Route::middleware(['auth','verified',CheckIfAdmin::class])->prefix('admin/')->gr Route::delete('/{ensemble}','destroy')->name('admin.ensembles.destroy'); Route::post('/updateEnsembleRank','updateEnsembleRank')->name('admin.ensembles.updateEnsembleRank'); Route::patch('/{ensemble}','updateEnsemble')->name('admin.ensembles.updateEnsemble'); + Route::get('/seating-limits','seatingLimits')->name('admin.ensembles.seatingLimits'); + Route::get('/seating-limits/{ensemble}','seatingLimits')->name('admin.ensembles.seatingLimits.ensemble'); }); // Admin Event Routes @@ -76,39 +78,39 @@ Route::middleware(['auth','verified',CheckIfAdmin::class])->prefix('admin/')->gr // Admin Rooms Routes Route::prefix('rooms')->controller(\App\Http\Controllers\Admin\RoomController::class)->group(function() { - Route::get('/','index'); - Route::get('/create','create'); - Route::post('/','store'); - Route::post('/{room}/edit','edit'); - Route::patch('/{room}','update'); - Route::delete('/{room}','destroy'); - Route::get('/judging_assignments','judgingAssignment'); // Screen to assign judges to rooms - Route::match(['post', 'delete'], '/{room}/judge', 'updateJudgeAssignment'); + Route::get('/','index')->name('admin.rooms.index'); + Route::get('/create','create')->name('admin.rooms.create'); + Route::post('/','store')->name('admin.rooms.store'); + Route::post('/{room}/edit','edit')->name('admin.rooms.edit'); + Route::patch('/{room}','update')->name('admin.rooms.update'); + Route::delete('/{room}','destroy')->name('admin.rooms.destroy'); + Route::get('/judging_assignments','judgingAssignment')->name('admin.rooms.judgingAssignment'); // Screen to assign judges to rooms + Route::match(['post', 'delete'], '/{room}/judge', 'updateJudgeAssignment')->name('admin.rooms.updateJudgeAssignment'); }); // Admin Scoring Guides Route::prefix('scoring')->controller(\App\Http\Controllers\Admin\ScoringGuideController::class)->group(function() { - Route::get('/','index'); // Scoring Setup Homepage - Route::post('/guides','store'); // Save a new scoring guide - Route::get('/guides/{guide}/edit','edit'); // Edit scoring guide - Route::patch('/guides/{guide}/edit','update'); // Save changes to audition guide (rename) - Route::post('/guides/{guide}/subscore','subscore_store'); // Save a new subscore - Route::post('/reorder-display','reorder_display'); - Route::post('/reorder-tiebreak','reorder_tiebreak'); + Route::get('/','index')->name('admin.scoring.index'); // Scoring Setup Homepage + Route::post('/guides','store')->name('admin.scoring.store'); // Save a new scoring guide + Route::get('/guides/{guide}/edit','edit')->name('admin.scoring.edit'); // Edit scoring guide + Route::patch('/guides/{guide}/edit','update')->name('admin.scoring.update'); // Save changes to audition guide (rename) + Route::post('/guides/{guide}/subscore','subscore_store')->name('admin.scoring.subscore_store'); // Save a new subscore + Route::post('/reorder-display','reorder_display')->name('admin.scoring.reorder_display'); + Route::post('/reorder-tiebreak','reorder_tiebreak')->name('admin.scoring.reorder_tiebreak'); }); // Admin Auditions Routes Route::prefix('auditions')->controller(\App\Http\Controllers\Admin\AuditionController::class)->group(function() { - Route::get('/','index')->name('adminAuditionIndex'); - Route::get('/create','create'); - Route::post('/','store'); - Route::get('/{audition}/edit','edit'); - Route::patch('/{audition}','update'); - Route::post('/reorder','reorder'); - Route::delete('/{audition}','destroy'); - Route::get('/run_draw','prepareDraw'); - Route::post('/run_draw','runDraw'); + Route::get('/','index')->name('admin.auditions.index'); + Route::get('/create','create')->name('admin.auditions.create'); + Route::post('/','store')->name('admin.auditions.store'); + Route::get('/{audition}/edit','edit')->name('admin.auditions.edit'); + Route::patch('/{audition}','update')->name('admin.auditions.update'); + Route::post('/reorder','reorder')->name('admin.auditions.reorder'); + Route::delete('/{audition}','destroy')->name('admin.auditions.destroy'); + Route::get('/run_draw','prepareDraw')->name('admin.auditions.prepareDraw'); + Route::post('/run_draw','runDraw')->name('admin.auditions.runDraw'); }); // Admin Entries Routes