Commit e0119a1d authored by Mahmoud Aglan's avatar Mahmoud Aglan

Add Visual Schedule Builder for drag-drop facility scheduling

Full-featured schedule builder with:
- Facility selection, date navigation, weekly view
- Hourly time slot grid showing existing reservations
- Grid/segment view with drag-drop group assignment
- Trainer drag-drop with overlap support
- Collision detection via SpaceCollisionService
- Single-date save and recurring weekly booking (N weeks, multi-day)
- Cancel single reservation or entire recurring series
- RTL Arabic-first UI with Alpine.js interactivity
Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
parent 71a6c06f
This diff is collapsed.
...@@ -48,6 +48,7 @@ ...@@ -48,6 +48,7 @@
['section' => 'المنشآت', 'items' => [ ['section' => 'المنشآت', 'items' => [
['label' => 'المنشآت', 'route' => 'facilities.list', 'icon' => 'building-office', 'permission' => 'facilities.list'], ['label' => 'المنشآت', 'route' => 'facilities.list', 'icon' => 'building-office', 'permission' => 'facilities.list'],
['label' => 'جدولة المنشآت', 'route' => 'facilities.schedule-builder', 'icon' => 'calendar-days', 'permission' => 'schedules.manage'],
['label' => 'تعيين المساحات', 'route' => 'facilities.space-assignment', 'icon' => 'grid', 'permission' => 'facilities.manage_layouts'], ['label' => 'تعيين المساحات', 'route' => 'facilities.space-assignment', 'icon' => 'grid', 'permission' => 'facilities.manage_layouts'],
]], ]],
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
use App\Livewire\Evaluations\EvaluationShow; use App\Livewire\Evaluations\EvaluationShow;
use App\Livewire\Facilities\FacilityForm; use App\Livewire\Facilities\FacilityForm;
use App\Livewire\Facilities\FacilityList; use App\Livewire\Facilities\FacilityList;
use App\Livewire\Facilities\VisualScheduleBuilder;
use App\Livewire\Financial\FinancialOverview; use App\Livewire\Financial\FinancialOverview;
use App\Livewire\Auth\Login; use App\Livewire\Auth\Login;
use App\Livewire\CashSessions\CashSessionList; use App\Livewire\CashSessions\CashSessionList;
...@@ -202,6 +203,8 @@ ...@@ -202,6 +203,8 @@
->middleware('permission:facilities.manage_layouts'); ->middleware('permission:facilities.manage_layouts');
Route::get('/facilities/space-assignment', \App\Livewire\Facilities\SpaceAssignmentWizard::class)->name('facilities.space-assignment') Route::get('/facilities/space-assignment', \App\Livewire\Facilities\SpaceAssignmentWizard::class)->name('facilities.space-assignment')
->middleware('permission:facilities.manage_layouts'); ->middleware('permission:facilities.manage_layouts');
Route::get('/facilities/schedule-builder', VisualScheduleBuilder::class)->name('facilities.schedule-builder')
->middleware('permission:schedules.manage');
// Attendance // Attendance
Route::get('/attendance', AttendanceList::class)->name('attendance.list') Route::get('/attendance', AttendanceList::class)->name('attendance.list')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment