diff --git a/app/Http/Controllers/ScheduleController.php b/app/Http/Controllers/ScheduleController.php index b44da9a..f4106d8 100644 --- a/app/Http/Controllers/ScheduleController.php +++ b/app/Http/Controllers/ScheduleController.php @@ -21,17 +21,23 @@ class ScheduleController extends Controller public function index(Request $request) { $date = CarbonImmutable::now()->startOfWeek(); - $nbweek = 2; - $users = User::where('role', Role::developper())->get(); + $nbweeks = 2; if ($request->p) { $date = CarbonImmutable::createFromFormat('d/m/Y', $request->p)->startOfWeek(); } + + $dbusers = User::where('role', Role::developper())->get(); + $users = []; + foreach ($dbusers as $user) { + $users[$user->id] = ['name' => $user->name]; + } + $schedules = Schedule::whereDate('date', '>=', $date) - ->whereDate('date', '<=', $date->addDays($nbweek * 7)) + ->whereDate('date', '<=', $date->addDays($nbweeks * 7 - 1)) ->orderBy('user_id') - ->orderBy('date') ->orderBy('slot') + ->orderBy('date') ->get(); $arSchedules = array(); @@ -42,8 +48,8 @@ class ScheduleController extends Controller if ($prevUserId != $schedule->user_id) { //nouveau user $arSchedules[$schedule->user_id] = array( - $schedule->date->format('d/m/Y') => array( - $schedule->slot => array( + $schedule->slot => array( + $schedule->date->format('d/m/Y') => array( 'type' => $schedule->activity, 'text' => $schedule->description, 'id_lie' => $schedule->id_lie, @@ -53,10 +59,10 @@ class ScheduleController extends Controller ); } else { //same user - if ($prevDate != $schedule->date) { - //new date - $arSchedules[$schedule->user_id][$schedule->date->format('d/m/Y')] = array( - $schedule->slot => array( + if ($prevSlot != $schedule->slot) { + //new slot + $arSchedules[$schedule->user_id][$schedule->slot] = array( + $schedule->date->format('d/m/Y') => array( 'type' => $schedule->activity, 'text' => $schedule->description, 'id_lie' => $schedule->id_lie, @@ -64,28 +70,37 @@ class ScheduleController extends Controller ), ); } else { - //same date - if ($prevSlot != $schedule->slot) { - //new slot - $arSchedules[$schedule->user_id][$schedule->date->format('d/m/Y')][$schedule->slot] = array( + //same slot + if ($prevDate != $schedule->date) { + //new date + $arSchedules[$schedule->user_id][$schedule->slot][$schedule->date->format('d/m/Y')] = array( 'type' => $schedule->activity, 'text' => $schedule->description, 'id_lie' => $schedule->id_lie, 'model_lie' => $schedule->model_lie, ); } else { - //same slot ? - //should never en here + //same date + //should never be here } } - } $prevUserId = $schedule->user_id; $prevDate = $schedule->date; $prevSlot = $schedule->slot; } - return view('schedule.index', compact('users', 'date', 'nbweek', 'arSchedules')); + $weekCells = array(); + for ($i=0; $i < $nbweeks; $i++) { + $weekCells[] = array( + "num" => $date->addDays($i * 7)->weekOfYear, + "month" => $date->addDays($i * 7)->shortLocaleMonth, + "year" => $date->addDays($i * 7)->format('Y') + ); + } + + + return view('schedule.index', compact('users', 'date', 'weekCells', 'arSchedules')); } /** diff --git a/resources/js/components/ScheduleComponent.vue b/resources/js/components/ScheduleComponent.vue new file mode 100644 index 0000000..8cb1532 --- /dev/null +++ b/resources/js/components/ScheduleComponent.vue @@ -0,0 +1,168 @@ + + + + + ← + + + + + + S {{item.num}} - {{item.month}} {{item.year}} + + + + {{day.day}} {{day.num}} + + + {{users[index].name}} + + + {{user[key][day.key]['text']}} + + + + + + → + + + + + + + + diff --git a/resources/views/schedule/index.blade.php b/resources/views/schedule/index.blade.php index 4f11575..b21b5ff 100644 --- a/resources/views/schedule/index.blade.php +++ b/resources/views/schedule/index.blade.php @@ -2,6 +2,7 @@ @push('customCss')