diff --git a/app/Domain/Notifications/VacationRequestStatusChangedNotification.php b/app/Domain/Notifications/VacationRequestStatusChangedNotification.php index 04e9321..1f0329e 100644 --- a/app/Domain/Notifications/VacationRequestStatusChangedNotification.php +++ b/app/Domain/Notifications/VacationRequestStatusChangedNotification.php @@ -42,7 +42,7 @@ class VacationRequestStatusChangedNotification extends Notification protected function buildMailMessage(string $url): MailMessage { - $user = $this->user - profile->first_name; + $user = $this->user->profile->first_name; $title = $this->vacationRequest->name; $type = $this->vacationRequest->type->label(); $status = $this->vacationRequest->state->label(); diff --git a/app/Infrastructure/Http/Middleware/HandleInertiaRequests.php b/app/Infrastructure/Http/Middleware/HandleInertiaRequests.php index 864a94e..6ebadd2 100644 --- a/app/Infrastructure/Http/Middleware/HandleInertiaRequests.php +++ b/app/Infrastructure/Http/Middleware/HandleInertiaRequests.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace Toby\Infrastructure\Http\Middleware; +use Closure; use Illuminate\Http\Request; use Inertia\Middleware; use Toby\Domain\VacationRequestStatesRetriever; @@ -20,32 +21,54 @@ class HandleInertiaRequests extends Middleware public function share(Request $request): array { - $user = $request->user(); - return array_merge(parent::share($request), [ - "auth" => fn() => [ - "user" => $user ? new UserResource($user) : null, - "can" => [ - "manageVacationLimits" => $user ? $user->can("manageVacationLimits") : false, - "manageUsers" => $user ? $user->can("manageUsers") : false, - "listAllVacationRequests" => $user ? $user->can("listAll", VacationRequest::class) : false, - "listMonthlyUsage" => $user ? $user->can("listMonthlyUsage") : false, - ], - ], - "flash" => fn() => [ - "success" => $request->session()->get("success"), - "error" => $request->session()->get("error"), - "info" => $request->session()->get("info"), - ], - "years" => fn() => $user ? $this->yearPeriodRetriever->links() : [], - "vacationRequestsCount" => fn() => $user->can("listAll", VacationRequest::class) - ? VacationRequest::query() - ->whereBelongsTo($this->yearPeriodRetriever->selected()) - ->states( - VacationRequestStatesRetriever::waitingForUserActionStates($user), - ) - ->count() - : null + "auth" => $this->getAuthData($request), + "flash" => $this->getFlashData($request), + "years" => $this->getYearsData($request), + "vacationRequestsCount" => $this->getVacationRequestsCount($request), ]); } + + protected function getAuthData(Request $request): Closure + { + $user = $request->user(); + + return fn() => [ + "user" => $user ? new UserResource($user) : null, + "can" => [ + "manageVacationLimits" => $user ? $user->can("manageVacationLimits") : false, + "manageUsers" => $user ? $user->can("manageUsers") : false, + "listAllVacationRequests" => $user ? $user->can("listAll", VacationRequest::class) : false, + "listMonthlyUsage" => $user ? $user->can("listMonthlyUsage") : false, + ], + ]; + } + + protected function getFlashData(Request $request): Closure + { + return fn() => [ + "success" => $request->session()->get("success"), + "error" => $request->session()->get("error"), + "info" => $request->session()->get("info"), + ]; + } + + protected function getYearsData(Request $request): Closure + { + return fn() => $request->user() ? $this->yearPeriodRetriever->links() : []; + } + + protected function getVacationRequestsCount(Request $request): Closure + { + $user = $request->user(); + + return fn() => $user && $user->can("listAll", VacationRequest::class) + ? VacationRequest::query() + ->whereBelongsTo($this->yearPeriodRetriever->selected()) + ->states( + VacationRequestStatesRetriever::waitingForUserActionStates($user), + ) + ->count() + : null; + } } diff --git a/resources/js/Composables/vacationTypeInfo.js b/resources/js/Composables/vacationTypeInfo.js index 1091b25..4f154cb 100644 --- a/resources/js/Composables/vacationTypeInfo.js +++ b/resources/js/Composables/vacationTypeInfo.js @@ -14,8 +14,8 @@ const types = [ text: 'Urlop wypoczynkowy', value: 'vacation', icon: WhiteBalanceSunnyIcon, - color: 'text-amber-300', - border: 'border-amber-300', + color: 'text-yellow-500', + border: 'border-yellow-500', }, { text: 'Urlop na żądanie', diff --git a/resources/js/Pages/AnnualSummary.vue b/resources/js/Pages/AnnualSummary.vue index 72b7dba..46f434b 100644 --- a/resources/js/Pages/AnnualSummary.vue +++ b/resources/js/Pages/AnnualSummary.vue @@ -39,7 +39,7 @@ offset-distance="0" >