From 9fab8ae1ca898bcbd9c66d14c9768281fa8055ad Mon Sep 17 00:00:00 2001 From: Nicolas Drolet Date: Mon, 29 Dec 2025 10:17:18 -0500 Subject: [PATCH] refactor(approvals): more work on filters, table list view tweaks to columns, plug in list view functionalities --- src/i18n/en-ca/index.ts | 2 + src/i18n/fr-ca/index.ts | 2 + .../components/overview-list-item.vue | 17 +- .../components/overview-list.vue | 400 +++++++++--------- .../models/timesheet-overview.models.ts | 18 +- src/pages/dashboard-page.vue | 9 +- src/utils/date-and-time-utils.ts | 26 +- 7 files changed, 247 insertions(+), 227 deletions(-) diff --git a/src/i18n/en-ca/index.ts b/src/i18n/en-ca/index.ts index 1ba8913..13d1ea3 100644 --- a/src/i18n/en-ca/index.ts +++ b/src/i18n/en-ca/index.ts @@ -285,6 +285,8 @@ export default { verified: "approved", unverified: "pending", inactive: "inactive", + filter_active: "show only active employees", + filter_team: "", }, tooltip: { button_detailed_view: "detailed view", diff --git a/src/i18n/fr-ca/index.ts b/src/i18n/fr-ca/index.ts index 698baeb..0bd4799 100644 --- a/src/i18n/fr-ca/index.ts +++ b/src/i18n/fr-ca/index.ts @@ -286,6 +286,8 @@ export default { verified: "approuvé", unverified: "à vérifier", inactive: "inactif", + filter_active: "", + filter_team: "", }, tooltip: { button_detailed_view: "vue détaillée", diff --git a/src/modules/timesheet-approval/components/overview-list-item.vue b/src/modules/timesheet-approval/components/overview-list-item.vue index 30b257b..5e9201b 100644 --- a/src/modules/timesheet-approval/components/overview-list-item.vue +++ b/src/modules/timesheet-approval/components/overview-list-item.vue @@ -3,6 +3,7 @@ lang="ts" > import type { TimesheetApprovalOverview } from 'src/modules/timesheet-approval/models/timesheet-overview.models'; +import { getHoursMinutesStringFromHoursFloat, getMinutes } from 'src/utils/date-and-time-utils'; const modelApproval = defineModel(); @@ -15,18 +16,6 @@ 'clickDetails': [overview: TimesheetApprovalOverview]; 'clickApprovalAll' : [is_approved: boolean]; }>(); - - const getMinutes = (hours: number) => { - const minutes_percent = hours - Math.floor(hours); - const minutes = Math.round(minutes_percent * 60); - return minutes > 1 ? minutes.toString() : '0'; - } - - const getHoursMinutesString = (hours: number): string => { - const flat_hours = Math.floor(hours); - const minutes = Math.round((hours - flat_hours) * 60); - return `${flat_hours}h ${minutes > 1 ? minutes : ''}` - }