diff --git a/app/Infrastructure/Http/Controllers/HolidayController.php b/app/Infrastructure/Http/Controllers/HolidayController.php index e69a8ff..d22e39b 100644 --- a/app/Infrastructure/Http/Controllers/HolidayController.php +++ b/app/Infrastructure/Http/Controllers/HolidayController.php @@ -7,9 +7,11 @@ namespace Toby\Infrastructure\Http\Controllers; use Illuminate\Http\RedirectResponse; use Inertia\Response; use Toby\Eloquent\Models\Holiday; +use Toby\Eloquent\Models\User; use Toby\Infrastructure\Http\Requests\HolidayRequest; use Toby\Infrastructure\Http\Resources\HolidayFormDataResource; use Toby\Infrastructure\Http\Resources\HolidayResource; +use Toby\Infrastructure\Http\Resources\UserResource; class HolidayController extends Controller { @@ -62,4 +64,19 @@ class HolidayController extends Controller ->route("holidays.index") ->with("success", __("Holiday has been deleted")); } + + public function showCalendar(): Response + { + $users = User::query() + ->withTrashed() + ->orderBy("last_name") + ->orderBy("first_name") + ->paginate() + ->withQueryString(); + + return inertia("Holidays/Calendar", [ + "users" => UserResource::collection($users), + ]); + } + } diff --git a/resources/js/Pages/Holidays/Calendar.vue b/resources/js/Pages/Holidays/Calendar.vue new file mode 100644 index 0000000..281eb8a --- /dev/null +++ b/resources/js/Pages/Holidays/Calendar.vue @@ -0,0 +1,97 @@ + + + diff --git a/resources/js/Shared/Layout/AppLayout.vue b/resources/js/Shared/Layout/AppLayout.vue index 71cdcaa..f03367c 100644 --- a/resources/js/Shared/Layout/AppLayout.vue +++ b/resources/js/Shared/Layout/AppLayout.vue @@ -3,7 +3,8 @@
-
+ +
diff --git a/resources/js/Shared/MainMenu.vue b/resources/js/Shared/MainMenu.vue index d446ab4..88a4819 100644 --- a/resources/js/Shared/MainMenu.vue +++ b/resources/js/Shared/MainMenu.vue @@ -311,6 +311,7 @@ import { UserGroupIcon, XIcon, SunIcon, + StarIcon, CalendarIcon, } from '@heroicons/vue/outline'; import { @@ -349,6 +350,7 @@ export default { OfficeBuildingIcon, SearchIcon, XIcon, + StarIcon, HomeIcon, UserGroupIcon, SunIcon, @@ -362,7 +364,8 @@ export default { {name: 'Strona główna', href: '/', icon: HomeIcon, current: true}, {name: 'Użytkownicy', href: '/users', icon: UserGroupIcon, current: false}, {name: 'Dostępne urlopy', href: '/vacation-limits', icon: SunIcon, current: false}, - {name: 'Dni wolne', href: '/holidays', icon: CalendarIcon, current: false}, + {name: 'Dni wolne', href: '/holidays', icon: StarIcon, current: false}, + {name: 'Kalendarz', href: '/calendar', icon: CalendarIcon, current: false}, ]; const userNavigation = [ {name: 'Your Profile', href: '#'}, diff --git a/routes/web.php b/routes/web.php index b30c103..f3f3920 100644 --- a/routes/web.php +++ b/routes/web.php @@ -3,6 +3,7 @@ declare(strict_types=1); use Illuminate\Support\Facades\Route; +use Illuminate\Support\Facades\View; use Toby\Infrastructure\Http\Controllers\GoogleController; use Toby\Infrastructure\Http\Controllers\HolidayController; use Toby\Infrastructure\Http\Controllers\LogoutController; @@ -19,6 +20,8 @@ Route::middleware("auth")->group(function (): void { Route::resource("holidays", HolidayController::class); + Route::get("/calendar", [HolidayController::class,"showCalendar"]); + Route::get("/vacation-limits", [VacationLimitController::class, "edit"])->name("vacation.limits"); Route::put("/vacation-limits", [VacationLimitController::class, "update"]); diff --git a/tailwind.config.js b/tailwind.config.js index d48c4d3..99b5aeb 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -23,6 +23,9 @@ module.exports = { '800': '#1C2D47', '900': '#0C141F' }, + }, + gridTemplateColumns: { + '38': 'repeat(38, minmax(0, 1fr))', } }, },