From e37ec79827949c813f95a1e93497e39e874bd3d1 Mon Sep 17 00:00:00 2001 From: Nic D Date: Wed, 18 Mar 2026 09:18:06 -0400 Subject: [PATCH 1/4] fix(many): refactor timesheet approval download menu, details window fixes, store refactor - Timesheet Approval's download menu has had its UI overhauled and the script has been streamlined to better match backend structure and logic - Details window in timesheet approval has a few bug and oversight fixes. - Refactored UI store to work with camelCase instead of snake_case --- src/i18n/en-ca/index.ts | 4 + src/i18n/fr-ca/index.ts | 4 + .../components/main-layout-left-drawer.vue | 20 +- src/layouts/main-layout.vue | 8 +- .../components/employee-list-table.vue | 6 +- .../shared/menu-panel-preferences.vue | 4 +- .../shared/components/language-switch.vue | 6 +- .../details-dialog-chart-shift-types.vue | 10 +- .../components/details-dialog.vue | 4 +- .../components/overview-list-top.vue | 2 +- .../components/overview-list.vue | 4 +- .../components/overview-report-option.vue | 37 +++ .../components/overview-report.vue | 246 ++++++++------- .../composables/use-timesheet-approval-api.ts | 62 ++-- .../timesheet-approval-csv-report.models.ts | 40 ++- .../services/timesheet-approval-service.ts | 12 +- .../components/expense-dialog-form.vue | 3 - .../mobile/expense-dialog-form-mobile.vue | 5 +- .../mobile/shift-list-day-row-mobile.vue | 35 ++- .../timesheets/components/new-shift-list.vue | 287 ++++++++++++++++++ .../components/shift-list-date-widget.vue | 4 +- .../components/shift-list-day-row.vue | 18 +- .../timesheets/components/shift-list.vue | 51 ++-- .../components/timesheet-wrapper.vue | 11 +- .../timesheets/models/timesheet.models.ts | 5 + src/stores/timesheet-store.ts | 17 +- src/stores/ui-store.ts | 56 ++-- src/utils/translator.ts | 13 + 28 files changed, 666 insertions(+), 308 deletions(-) create mode 100644 src/modules/timesheet-approval/components/overview-report-option.vue create mode 100644 src/modules/timesheets/components/new-shift-list.vue create mode 100644 src/utils/translator.ts diff --git a/src/i18n/en-ca/index.ts b/src/i18n/en-ca/index.ts index 9af138a..c462be4 100644 --- a/src/i18n/en-ca/index.ts +++ b/src/i18n/en-ca/index.ts @@ -401,10 +401,14 @@ export default { title: "Download options", description: "Choose what to include in the report", company: "companies", + targo: "Targo", + solucom: "Solucom", type: "type", shifts: "shifts", expenses: "expenses", options: "options", + download_failed: "download failed", + download_failed_caption: "an unexpected error occured", }, table: { full_name: "full name", diff --git a/src/i18n/fr-ca/index.ts b/src/i18n/fr-ca/index.ts index a76fdd9..2509717 100644 --- a/src/i18n/fr-ca/index.ts +++ b/src/i18n/fr-ca/index.ts @@ -401,10 +401,14 @@ export default { title: "options de téléchargement", description: "Choisissez ce qui sera inclu dans le rapport", company: "compagnies", + targo: "Targo", + solucom: "Solucom", type: "types de données", shifts: "quarts de travail", expenses: "dépenses", options: "options", + download_failed: "téléchargement échoué", + download_failed_caption: "une erreur inconnue est survenue", }, table: { full_name: "nom complet", diff --git a/src/layouts/components/main-layout-left-drawer.vue b/src/layouts/components/main-layout-left-drawer.vue index 5c567bb..e480402 100644 --- a/src/layouts/components/main-layout-left-drawer.vue +++ b/src/layouts/components/main-layout-left-drawer.vue @@ -21,14 +21,14 @@ import { useAuthApi } from 'src/modules/auth/composables/use-auth-api'; ] const q = useQuasar(); - const auth_store = useAuthStore(); + const authStore = useAuthStore(); const authApi = useAuthApi(); - const ui_store = useUiStore(); + const uiStore = useUiStore(); const router = useRouter(); - const is_mini = ref(true); + const isMini = ref(true); const onClickDrawerPage = (page_name: RouteNames) => { - is_mini.value = true; + isMini.value = true; router.push({ name: page_name }).catch(error => { console.error('failed to reach page: ', error); @@ -41,21 +41,21 @@ import { useAuthApi } from 'src/modules/auth/composables/use-auth-api'; onMounted(() => { if (q.platform.is.mobile) { - ui_store.is_left_drawer_open = false; + uiStore.isLeftDrawerOpen = false; } })