From 74dfd9fbf31927bbb252acce0ac205b3db12ef08 Mon Sep 17 00:00:00 2001 From: Adrian Hopek Date: Wed, 6 Apr 2022 08:14:37 +0200 Subject: [PATCH] wip --- app/Eloquent/Models/Vacation.php | 8 ++ resources/js/Composables/vacationTypeInfo.js | 36 ++++++ resources/js/Composables/yearPeriodInfo.js | 2 + resources/js/Pages/Test.vue | 111 +++++++++++-------- resources/js/Shared/VacationBar.vue | 2 +- routes/web.php | 35 +++++- 6 files changed, 146 insertions(+), 48 deletions(-) diff --git a/app/Eloquent/Models/Vacation.php b/app/Eloquent/Models/Vacation.php index 65ac662..6313d07 100644 --- a/app/Eloquent/Models/Vacation.php +++ b/app/Eloquent/Models/Vacation.php @@ -50,4 +50,12 @@ class Vacation extends Model fn(Builder $query) => $query->states(VacationRequestStatesRetriever::successStates()), ); } + + public function scopePending(Builder $query): Builder + { + return $query->whereRelation( + "vacationRequest", + fn(Builder $query) => $query->states(VacationRequestStatesRetriever::pendingStates()), + ); + } } diff --git a/resources/js/Composables/vacationTypeInfo.js b/resources/js/Composables/vacationTypeInfo.js index 6594ab7..c19730e 100644 --- a/resources/js/Composables/vacationTypeInfo.js +++ b/resources/js/Composables/vacationTypeInfo.js @@ -14,54 +14,90 @@ const types = [ value: 'vacation', icon: WhiteBalanceSunnyIcon, color: 'text-amber-500', + border: { + approved: 'border-amber-500', + pending: 'border-amber-300', + }, }, { text: 'Urlop na żądanie', value: 'vacation_on_request', icon: CommentAlertIcon, color: 'text-slate-500', + border: { + approved: 'border-slate-500', + pending: 'border-slate-300', + }, }, { text: 'Urlop okolicznościowy', value: 'special_vacation', icon: StarShootingIcon, color: 'text-orange-500', + border: { + approved: 'border-orange-500', + pending: 'border-orange-300', + }, }, { text: 'Opieka nad dzieckiem art 188 kp', value: 'childcare_vacation', icon: BabyCarriageIcon, color: 'text-purple-500', + border: { + approved: 'border-purple-500', + pending: 'border-purple-300', + }, }, { text: 'Urlop szkoleniowy', value: 'training_vacation', icon: HumanMaleBoardIcon, color: 'text-blumilk-500', + border: { + approved: 'border-blumilk-500', + pending: 'border-blumilk-300', + }, }, { text: 'Urlop bezpłatny', value: 'unpaid_vacation', icon: CurrencyUsdOffIcon, color: 'text-emerald-500', + border: { + approved: 'border-emerald-500', + pending: 'border-emerald-300', + }, }, { text: 'Wolontariat', value: 'volunteering_vacation', icon: HandHeartOutlineIcon, color: 'text-pink-500', + border: { + approved: 'border-pink-500', + pending: 'border-pink-300', + }, }, { text: 'Odbiór za święto', value: 'time_in_lieu', icon: CalendarCheckIcon, color: 'text-stone-500', + border: { + approved: 'border-stone-500', + pending: 'border-stone-300', + }, }, { text: 'Zwolnienie lekarskie', value: 'sick_vacation', icon: MedicalBagIcon, color: 'text-rose-500', + border: { + approved: 'border-rose-500', + pending: 'border-rose-300', + }, }, ] diff --git a/resources/js/Composables/yearPeriodInfo.js b/resources/js/Composables/yearPeriodInfo.js index b62eb05..ede213c 100644 --- a/resources/js/Composables/yearPeriodInfo.js +++ b/resources/js/Composables/yearPeriodInfo.js @@ -4,9 +4,11 @@ import { usePage } from '@inertiajs/inertia-vue3' export default function useCurrentYearPeriodInfo() { const minDate = computed(() => new Date(usePage().props.value.years.selected.year, 0, 1)) const maxDate = computed(() => new Date(usePage().props.value.years.selected.year, 11, 31)) + const year = computed(() => usePage().props.value.years.selected.year) return { minDate, maxDate, + year, } } diff --git a/resources/js/Pages/Test.vue b/resources/js/Pages/Test.vue index 4ba6969..eb7c03d 100644 --- a/resources/js/Pages/Test.vue +++ b/resources/js/Pages/Test.vue @@ -1,11 +1,9 @@