From 33061ef2ab5e68bd321ad41553657fb466c90bc0 Mon Sep 17 00:00:00 2001 From: Nicolas Drolet Date: Wed, 22 Oct 2025 08:59:40 -0400 Subject: [PATCH] BREAKING(timesheet): Overhaul timesheet UI, refactor to increase efficiency, complete OIDC login Change timesheet UI to better fit current app model and avoid adding extra clicks and interactions to add new shifts and expenses. Also refactoring calls to backend to be more efficient and use recently-finalized OIDC implementation and integration. --- src/css/quasar.variables.scss | 4 + .../main-layout-header-bar-notification.vue | 22 ++- .../components/main-layout-left-drawer.vue | 5 +- src/modules/auth/services/services-auth.ts | 3 +- .../components/employee-list-table-item.vue | 2 +- .../components/employee-list-table.vue | 3 +- .../components/employee/menu-employee.vue | 73 +++++++++ ...o-employee.vue => menu-panel-employee.vue} | 58 ++++--- ...o-personal.vue => menu-panel-personal.vue} | 50 +++--- .../{profile-header.vue => menu-header.vue} | 0 ...t-field.vue => menu-panel-input-field.vue} | 0 ...erences.vue => menu-panel-preferences.vue} | 0 ...-field.vue => menu-panel-select-field.vue} | 0 ...ab-menu-template.vue => menu-template.vue} | 4 +- .../pages/employee/profile-employee.vue | 60 ------- .../components/page-header-template.vue | 39 +++-- .../components/pay-period-navigator.vue | 45 +++++- src/modules/shared/models/user.models.ts | 2 - ....vue => details-dialog-chart-expenses.vue} | 36 ++--- ... => details-dialog-chart-hours-worked.vue} | 59 +++---- ...e => details-dialog-chart-shift-types.vue} | 41 ++--- ...ils-crud-dialog.vue => details-dialog.vue} | 3 +- .../components/overview-list.vue | 5 +- .../composables/use-timesheet-approval-api.ts | 14 +- ...ialog-form.vue => expense-dialog-form.vue} | 21 +-- ...g-header.vue => expense-dialog-header.vue} | 10 +- ...-item.vue => expense-dialog-list-item.vue} | 20 +-- ...ialog-list.vue => expense-dialog-list.vue} | 8 +- ... => expense-dialog-supervisor-comment.vue} | 0 ...nse-crud-dialog.vue => expense-dialog.vue} | 18 ++- .../shift-crud-dialog-add-update-shift.vue | 4 +- .../timesheets/components/shift-list-row.vue | 148 ++++++++++-------- .../timesheets/components/shift-list.vue | 127 ++++++++------- .../components/timesheet-wrapper.vue | 24 ++- .../timesheets/composables/use-expense-api.ts | 2 +- .../composables/use-timesheet-api.ts | 39 +---- ...models.ts => expense-validation.models.ts} | 0 .../timesheets/models/expense.models.ts | 30 +++- src/modules/timesheets/models/shift.models.ts | 19 +-- .../timesheets/models/timesheet.models.ts | 80 +++++++++- .../timesheets/services/timesheet-service.ts | 23 ++- src/pages/dashboard-page.vue | 47 ++++++ src/pages/employee-list-page.vue | 2 +- .../auth-login.vue => pages/login-page.vue} | 0 src/pages/profile-page.vue | 22 +-- src/pages/test-page.vue | 73 --------- src/pages/timesheet-approval-page.vue | 10 +- src/pages/timesheet-page.vue | 19 ++- src/router/index.ts | 39 ++--- src/router/router-constants.ts | 2 +- src/router/routes.ts | 8 +- src/stores/auth-store.ts | 46 ++++-- src/stores/expense-store.ts | 47 +++--- src/stores/timesheet-store.ts | 54 +++---- 54 files changed, 809 insertions(+), 661 deletions(-) create mode 100644 src/modules/profile/components/employee/menu-employee.vue rename src/modules/profile/components/employee/{profile-panel-info-employee.vue => menu-panel-employee.vue} (61%) rename src/modules/profile/components/employee/{profile-panel-info-personal.vue => menu-panel-personal.vue} (65%) rename src/modules/profile/components/shared/{profile-header.vue => menu-header.vue} (100%) rename src/modules/profile/components/shared/{profile-panel-input-field.vue => menu-panel-input-field.vue} (100%) rename src/modules/profile/components/shared/{profile-panel-preferences.vue => menu-panel-preferences.vue} (100%) rename src/modules/profile/components/shared/{profile-panel-select-field.vue => menu-panel-select-field.vue} (100%) rename src/modules/profile/components/shared/{profile-tab-menu-template.vue => menu-template.vue} (90%) delete mode 100644 src/modules/profile/pages/employee/profile-employee.vue rename src/modules/timesheet-approval/components/{details-crud-dialog-chart-expenses.vue => details-dialog-chart-expenses.vue} (63%) rename src/modules/timesheet-approval/components/{details-crud-dialog-chart-hours-worked.vue => details-dialog-chart-hours-worked.vue} (56%) rename src/modules/timesheet-approval/components/{details-crud-dialog-chart-shift-types.vue => details-dialog-chart-shift-types.vue} (51%) rename src/modules/timesheet-approval/components/{details-crud-dialog.vue => details-dialog.vue} (94%) rename src/modules/timesheets/components/{expense-crud-dialog-form.vue => expense-dialog-form.vue} (88%) rename src/modules/timesheets/components/{expense-crud-dialog-header.vue => expense-dialog-header.vue} (79%) rename src/modules/timesheets/components/{expense-crud-dialog-list-item.vue => expense-dialog-list-item.vue} (87%) rename src/modules/timesheets/components/{expense-crud-dialog-list.vue => expense-dialog-list.vue} (77%) rename src/modules/timesheets/components/{expense-crud-dialog-supervisor-comment.vue => expense-dialog-supervisor-comment.vue} (100%) rename src/modules/timesheets/components/{expense-crud-dialog.vue => expense-dialog.vue} (66%) rename src/modules/timesheets/models/{expense.validation.models.ts => expense-validation.models.ts} (100%) create mode 100644 src/pages/dashboard-page.vue rename src/{modules/auth/pages/auth-login.vue => pages/login-page.vue} (100%) delete mode 100644 src/pages/test-page.vue diff --git a/src/css/quasar.variables.scss b/src/css/quasar.variables.scss index 643d864..5a114d6 100644 --- a/src/css/quasar.variables.scss +++ b/src/css/quasar.variables.scss @@ -25,6 +25,10 @@ $elevation-dark-ambient : rgba($dark-shadow-color, 0.2); $dark-shadow-2 : 0 3px 5px -1px $elevation-dark-umbra, 0 5px 8px $elevation-dark-penumbra, 0 1px 14px $elevation-dark-ambient; $layout-shadow-dark : 0 0 10px 5px rgba($dark-shadow-color, 0.5); +$input-text-color : #455A64; +$input-autofill-color : #AAD5C4; + + $dark : #42444b; $dark-page : #343434; diff --git a/src/layouts/components/main-layout-header-bar-notification.vue b/src/layouts/components/main-layout-header-bar-notification.vue index fbef392..521989d 100644 --- a/src/layouts/components/main-layout-header-bar-notification.vue +++ b/src/layouts/components/main-layout-header-bar-notification.vue @@ -9,25 +9,21 @@ \ No newline at end of file diff --git a/src/layouts/components/main-layout-left-drawer.vue b/src/layouts/components/main-layout-left-drawer.vue index e8c1259..da98d0d 100644 --- a/src/layouts/components/main-layout-left-drawer.vue +++ b/src/layouts/components/main-layout-left-drawer.vue @@ -32,7 +32,8 @@