From e681226ab5b6a493d9fd9584b7db2f3ef694bb70 Mon Sep 17 00:00:00 2001 From: Adrian Hopek Date: Wed, 11 May 2022 14:43:32 +0200 Subject: [PATCH 1/3] vacation type filter --- .../Controllers/VacationRequestController.php | 13 ++- .../VacationRequest/IndexForApprovers.vue | 89 ++++++++++++++++++- 2 files changed, 92 insertions(+), 10 deletions(-) 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..a6f98b1 100644 --- a/resources/js/Pages/VacationRequest/IndexForApprovers.vue +++ b/resources/js/Pages/VacationRequest/IndexForApprovers.vue @@ -17,7 +17,7 @@
-
+
{{ status.name }} + + + + + + + +
+ + + + Typ + +
+ + + + + Wszystkie + + + + + + + + + +
  • + Wszystkie + + + + +
  • +
    + +
  • + + user.id === props.filters.user) ?? null, status: statuses.find(status => status.value === props.filters.status) ?? statuses[0], + type: props.types.find(type => type.value === props.filters.type) ?? null, }) watch(form, debounce(() => { - Inertia.get('/vacation/requests', { user: form.user?.id, status: form.status.value }, { + Inertia.get('/vacation/requests', { + user: form.user?.id, + status: form.status.value, + type: form.type?.value, + }, { preserveState: true, replace: true, }) -}, 300)) +}, 150)) -- 2.50.1 From d9fb362f9efc86f60a20ca90bcf9b9f1265d6cb4 Mon Sep 17 00:00:00 2001 From: Adrian Hopek Date: Wed, 11 May 2022 14:46:02 +0200 Subject: [PATCH 2/3] fix --- resources/js/Pages/VacationRequest/IndexForApprovers.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/js/Pages/VacationRequest/IndexForApprovers.vue b/resources/js/Pages/VacationRequest/IndexForApprovers.vue index a6f98b1..5b083a7 100644 --- a/resources/js/Pages/VacationRequest/IndexForApprovers.vue +++ b/resources/js/Pages/VacationRequest/IndexForApprovers.vue @@ -164,7 +164,7 @@ as="div" > - Typ + Rodzaj wniosku
    Date: Wed, 11 May 2022 14:50:11 +0200 Subject: [PATCH 3/3] fix --- resources/js/Pages/VacationRequest/IndexForApprovers.vue | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/resources/js/Pages/VacationRequest/IndexForApprovers.vue b/resources/js/Pages/VacationRequest/IndexForApprovers.vue index 5b083a7..7f746d8 100644 --- a/resources/js/Pages/VacationRequest/IndexForApprovers.vue +++ b/resources/js/Pages/VacationRequest/IndexForApprovers.vue @@ -215,7 +215,7 @@ @@ -223,9 +223,8 @@ :class="[active ? 'bg-gray-100' : 'text-gray-900', 'cursor-default truncate select-none relative py-2 pl-3 pr-9']" > - -- 2.50.1