diff --git a/src/assets/links/facturation-transparent.png b/src/assets/links/facturation-transparent.png new file mode 100644 index 0000000..550e260 Binary files /dev/null and b/src/assets/links/facturation-transparent.png differ diff --git a/src/assets/links/facturation_bg.png b/src/assets/links/facturation_bg.png new file mode 100644 index 0000000..a728c78 Binary files /dev/null and b/src/assets/links/facturation_bg.png differ diff --git a/src/assets/links/google_bg.png b/src/assets/links/google_bg.png new file mode 100644 index 0000000..50e1e13 Binary files /dev/null and b/src/assets/links/google_bg.png differ diff --git a/src/assets/google_thumbnail.png b/src/assets/links/google_thumbnail.png similarity index 100% rename from src/assets/google_thumbnail.png rename to src/assets/links/google_thumbnail.png diff --git a/src/assets/links/hydroQC_bg.png b/src/assets/links/hydroQC_bg.png new file mode 100644 index 0000000..bb18418 Binary files /dev/null and b/src/assets/links/hydroQC_bg.png differ diff --git a/src/assets/links/hydroQC_icon.png b/src/assets/links/hydroQC_icon.png new file mode 100644 index 0000000..63f77be Binary files /dev/null and b/src/assets/links/hydroQC_icon.png differ diff --git a/src/assets/info-pannes.png b/src/assets/links/info-pannes.png similarity index 100% rename from src/assets/info-pannes.png rename to src/assets/links/info-pannes.png diff --git a/src/assets/links/intranet_logo.png b/src/assets/links/intranet_logo.png new file mode 100644 index 0000000..4ebcccf Binary files /dev/null and b/src/assets/links/intranet_logo.png differ diff --git a/src/assets/links/intranet_targo_bg.png b/src/assets/links/intranet_targo_bg.png new file mode 100644 index 0000000..77569ff Binary files /dev/null and b/src/assets/links/intranet_targo_bg.png differ diff --git a/src/assets/links/logo_gmail.png b/src/assets/links/logo_gmail.png new file mode 100644 index 0000000..9882513 Binary files /dev/null and b/src/assets/links/logo_gmail.png differ diff --git a/src/assets/links/logo_gmail_lockup_default_1x_r5.png b/src/assets/links/logo_gmail_lockup_default_1x_r5.png new file mode 100644 index 0000000..743b1ea Binary files /dev/null and b/src/assets/links/logo_gmail_lockup_default_1x_r5.png differ diff --git a/src/assets/links/map-icon.png b/src/assets/links/map-icon.png new file mode 100644 index 0000000..c622bc4 Binary files /dev/null and b/src/assets/links/map-icon.png differ diff --git a/src/assets/links/map_targo_banner.png b/src/assets/links/map_targo_banner.png new file mode 100644 index 0000000..d302826 Binary files /dev/null and b/src/assets/links/map_targo_banner.png differ diff --git a/src/assets/map_targo_banner.png b/src/assets/map_targo_banner.png deleted file mode 100644 index 3077661..0000000 Binary files a/src/assets/map_targo_banner.png and /dev/null differ diff --git a/src/modules/dashboard/components/employee/shortcut-card.vue b/src/modules/dashboard/components/employee/shortcut-card.vue index 90ee54e..d71b696 100644 --- a/src/modules/dashboard/components/employee/shortcut-card.vue +++ b/src/modules/dashboard/components/employee/shortcut-card.vue @@ -2,10 +2,10 @@ setup lang="ts" > - const { imageSource = "", title = "", description = "", route = "" } = defineProps<{ - imageSource?: string, - title?: string, - description?: string, + const { route = "" } = defineProps<{ + iconImageSource: string, + bgImageSource: string, + name: string, route?: string, }>(); @@ -15,28 +15,50 @@ - - - {{ title }} - + {{ name }} + - - {{ description }} - - + + + + + {{ name }} + + + \ No newline at end of file diff --git a/src/modules/dashboard/components/main-carousel.vue b/src/modules/dashboard/components/main-carousel.vue index 5b44748..8f3c5b0 100644 --- a/src/modules/dashboard/components/main-carousel.vue +++ b/src/modules/dashboard/components/main-carousel.vue @@ -2,10 +2,18 @@ setup lang="ts" > + import { ref } from 'vue'; import { RouteNames } from 'src/router/router-constants'; -import { ref } from 'vue'; const slide = ref('welcome'); + const autoplayTimer = ref(9001); + + const onCarouselMouseEvent = (state: 'enter' | 'exit') => { + if (state === 'enter') + autoplayTimer.value = 0 + else + autoplayTimer.value = 9001 + } @@ -17,10 +25,12 @@ import { ref } from 'vue'; animated infinite arrows - :autoplay="9001" + :autoplay="autoplayTimer" control-color="accent" control-type="outline" - class="bg-dark full-width rounded-15 shadow-18" + class="bg-dark fit rounded-15 shadow-18" + @mouseenter="onCarouselMouseEvent('enter')" + @mouseleave="onCarouselMouseEvent('exit')" > - + {{ $t('dashboard.carousel.welcome_message') }} @@ -63,7 +73,7 @@ import { ref } from 'vue'; - + {{ $t('dashboard.carousel.help_message') }} diff --git a/src/modules/timesheets/components/shift-list-weekly-overview.vue b/src/modules/timesheets/components/shift-list-weekly-overview.vue index 11bd417..27791df 100644 --- a/src/modules/timesheets/components/shift-list-weekly-overview.vue +++ b/src/modules/timesheets/components/shift-list-weekly-overview.vue @@ -10,6 +10,7 @@ const { mode = 'totals', timesheetMode = 'normal', totalHours = 0, totalExpenses = 0 } = defineProps<{ mode: 'total-hours' | 'off-hours'; timesheetMode: 'approval' | 'normal'; + weeklyHours?: number[]; totalHours?: number; totalExpenses?: number; }>(); @@ -18,8 +19,8 @@ const timesheetStore = useTimesheetStore(); const is_management = auth_store.user?.user_module_access.includes('timesheets_approval'); - const vacationHours = computed(() => timesheetStore.paid_time_off_totals.vacation_hours); - const sickHours = computed(() => timesheetStore.paid_time_off_totals.sick_hours); + const vacationHours = computed(() => timesheetStore.paid_time_off_totals.vacation_hours); + const sickHours = computed(() => timesheetStore.paid_time_off_totals.sick_hours); const bankedHours = computed(() => timesheetStore.paid_time_off_totals.banked_hours); onMounted(async () => { @@ -37,6 +38,18 @@ v-if="mode === 'total-hours'" class="col column full-width" > + + + {{ $t(`timesheet_approvals.table.weekly_hours_${index + 1}`) }} + + + {{ getHoursMinutesStringFromHoursFloat(hours) }} + + {{ $t('timesheet.total_hours') }} diff --git a/src/modules/timesheets/components/timesheet-wrapper.vue b/src/modules/timesheets/components/timesheet-wrapper.vue index 80e3f89..68d34a4 100644 --- a/src/modules/timesheets/components/timesheet-wrapper.vue +++ b/src/modules/timesheets/components/timesheet-wrapper.vue @@ -41,10 +41,15 @@ import { RouteNames } from 'src/router/router-constants'; const hasShiftErrors = computed(() => timesheetStore.all_current_shifts.filter(shift => shift.has_error === true).length > 0); const isTimesheetsApproved = computed(() => timesheetStore.timesheets.every(timesheet => timesheet.is_approved)); + const weeklyHours = computed(() => timesheetStore.timesheets.map(timesheet => + Object.values(timesheet.weekly_hours).reduce((sum, hoursPerType) => sum += hoursPerType, 0) - timesheet.weekly_hours.sick + )); const totalHours = computed(() => timesheetStore.timesheets.reduce((sum, timesheet) => sum += timesheet.weekly_hours.regular + timesheet.weekly_hours.evening + timesheet.weekly_hours.emergency + + timesheet.weekly_hours.vacation + + timesheet.weekly_hours.holiday + timesheet.weekly_hours.overtime, 0 //initial value )); @@ -124,6 +129,7 @@ import { RouteNames } from 'src/router/router-constants'; diff --git a/src/pages/dashboard-page.vue b/src/pages/dashboard-page.vue index 448e56c..2dc185c 100644 --- a/src/pages/dashboard-page.vue +++ b/src/pages/dashboard-page.vue @@ -12,68 +12,84 @@ class="q-pa-md justify-center items-stretch bg-secondary" :class="$q.platform.is.mobile ? 'column' : 'row'" > - - - - - - - + + - - {{ $t('dashboard.useful_links') }} - - - - - - - - - - - - - - - - - - - + + + {{ $t('dashboard.useful_links') }} + + + + + + + + + + + + + + + + + + + + + + + +