diff --git a/app/Infrastructure/Http/Controllers/VacationRequestController.php b/app/Infrastructure/Http/Controllers/VacationRequestController.php index 3ae5187..7d8b543 100644 --- a/app/Infrastructure/Http/Controllers/VacationRequestController.php +++ b/app/Infrastructure/Http/Controllers/VacationRequestController.php @@ -92,19 +92,16 @@ class VacationRequestController extends Controller } $yearPeriod = $yearPeriodRetriever->selected(); - $status = $request->get("status"); + $status = $request->get("status", "all"); $user = $request->get("user"); + $type = $request->get("type"); $vacationRequests = VacationRequest::query() ->with(["user", "vacations"]) ->whereBelongsTo($yearPeriod) ->when($user !== null, fn(Builder $query): Builder => $query->where("user_id", $user)) - ->when( - $status !== null, - fn(Builder $query): Builder => $query->states( - VacationRequestStatesRetriever::filterByStatusGroup($status, $request->user()), - ), - ) + ->when($type !== null, fn(Builder $query): Builder => $query->where("type", $type)) + ->states(VacationRequestStatesRetriever::filterByStatusGroup($status, $request->user())) ->latest() ->paginate(); @@ -116,9 +113,11 @@ class VacationRequestController extends Controller return inertia("VacationRequest/IndexForApprovers", [ "requests" => VacationRequestResource::collection($vacationRequests), "users" => SimpleUserResource::collection($users), + "types" => VacationType::casesToSelect(), "filters" => [ "status" => $status, "user" => (int)$user, + "type" => $type, ], ]); } diff --git a/resources/js/Pages/VacationRequest/IndexForApprovers.vue b/resources/js/Pages/VacationRequest/IndexForApprovers.vue index 21481bb..7f746d8 100644 --- a/resources/js/Pages/VacationRequest/IndexForApprovers.vue +++ b/resources/js/Pages/VacationRequest/IndexForApprovers.vue @@ -17,7 +17,7 @@