- Lokasi Presensi -
- - -- {{ form.location_tag }} -
diff --git a/resources/js/components/admin/hr/attendances/AttendanceCalendar.vue b/resources/js/pages/admin/hr/attendances/table/AttendanceCalendar.vue similarity index 90% rename from resources/js/components/admin/hr/attendances/AttendanceCalendar.vue rename to resources/js/pages/admin/hr/attendances/table/AttendanceCalendar.vue index fc9b806..f21ebb8 100644 --- a/resources/js/components/admin/hr/attendances/AttendanceCalendar.vue +++ b/resources/js/pages/admin/hr/attendances/table/AttendanceCalendar.vue @@ -7,7 +7,7 @@ import FullCalendar from '@fullcalendar/vue3'; import { router } from '@inertiajs/vue3'; import { ChevronLeft, ChevronRight } from '@lucide/vue'; import { computed, ref, watch } from 'vue'; -import AttendanceDetailDialog from '@/components/admin/hr/attendances/AttendanceDetailDialog.vue'; +import AttendanceDetailDialog from './AttendanceDetailDialog.vue'; import { Badge } from '@/components/ui/badge'; import { Button } from '@/components/ui/button'; import { DatePicker } from '@/components/ui/date-picker'; @@ -142,6 +142,22 @@ function handleEventClick(arg: EventClickArg) { detailOpen.value = true; } +function scrollToToday() { + requestAnimationFrame(() => { + const container = calendarRef.value?.$el?.closest('.overflow-x-auto'); + const todayEl = container?.querySelector('.fc-day-today'); + if (!container || !todayEl) { + return; + } + + const containerRect = container.getBoundingClientRect(); + const todayRect = todayEl.getBoundingClientRect(); + const offset = todayRect.left - containerRect.left - (containerRect.width / 2) + (todayRect.width / 2); + + container.scrollBy({ left: offset, behavior: 'smooth' }); + }); +} + function handleDatesSet(arg: DatesSetArg) { calendarTitle.value = arg.view.title; @@ -149,6 +165,8 @@ function handleDatesSet(arg: DatesSetArg) { pickerDate.value = toISODate(arg.view.currentStart); isSyncingPicker.value = false; + scrollToToday(); + if (isNavigating.value) { return; } @@ -182,6 +200,7 @@ function navigateNext() { function navigateToday() { calendarRef.value?.getApi().today(); + scrollToToday(); } watch(pickerDate, (date) => { @@ -229,7 +248,7 @@ watch( -+ Lokasi Presensi +
+ + +Masuk
+Pulang
+