From ac6744ff18080011ef03eba6029973c23f014afa Mon Sep 17 00:00:00 2001 From: Nicolas Drolet Date: Fri, 7 Nov 2025 17:02:54 -0500 Subject: [PATCH] refactor(timesheet): rework appearance and functionality removed modal for shift creation/update to better match current timesheet app and avoid adding superfluous user actions. Tweaked appearance of timesheet and overall theme to remove overcrowding of colors/elements --- src/css/app.scss | 14 +- src/css/quasar.variables.scss | 9 +- src/i18n/en-ca/index.ts | 14 +- src/i18n/fr-ca/index.ts | 14 +- .../components/main-layout-header-bar.vue | 48 ++-- .../components/main-layout-left-drawer.vue | 25 +- .../components/employee/menu-employee.vue | 7 +- .../profile/components/shared/menu-header.vue | 14 +- .../shared/menu-panel-input-field.vue | 2 +- .../shared/menu-panel-select-field.vue | 2 +- .../components/shared/menu-template.vue | 6 +- .../components/page-header-template.vue | 4 +- .../components/pay-period-navigator.vue | 6 +- .../components/expense-dialog-form.vue | 133 +++++---- .../components/expense-dialog-header.vue | 108 +++++-- .../components/expense-dialog-list-item.vue | 89 +++--- .../components/expense-dialog-list.vue | 2 +- .../timesheets/components/expense-dialog.vue | 23 +- .../components/shift-list-date-widget.vue | 53 ++++ .../components/shift-list-day-row.vue | 266 ++++++++++++++++++ .../timesheets/components/shift-list-day.vue | 44 +++ .../timesheets/components/shift-list-row.vue | 208 -------------- .../timesheets/components/shift-list.vue | 200 +++++++------ .../components/timesheet-error-widget.vue | 56 ++++ .../components/timesheet-wrapper.vue | 13 +- .../timesheets/composables/use-shift-api.ts | 11 +- src/modules/timesheets/models/shift.models.ts | 26 +- .../timesheets/services/shift-service.ts | 19 +- .../timesheets/services/timesheet-service.ts | 4 +- src/pages/dashboard-page.vue | 101 +++++-- src/stores/shift-store.ts | 29 +- src/stores/timesheet-store.ts | 13 +- 32 files changed, 994 insertions(+), 569 deletions(-) create mode 100644 src/modules/timesheets/components/shift-list-date-widget.vue create mode 100644 src/modules/timesheets/components/shift-list-day-row.vue create mode 100644 src/modules/timesheets/components/shift-list-day.vue delete mode 100644 src/modules/timesheets/components/shift-list-row.vue create mode 100644 src/modules/timesheets/components/timesheet-error-widget.vue diff --git a/src/css/app.scss b/src/css/app.scss index 45df8bc..c79a67f 100644 --- a/src/css/app.scss +++ b/src/css/app.scss @@ -25,7 +25,7 @@ } body.body--dark { - --q-secondary: #2b2f34; + --q-secondary: #151520; color: $grey-2; } @@ -41,4 +41,16 @@ body.body--dark { .frosted-glass { background-color: #FFFA !important; backdrop-filter: blur(5px); +} + +.q-btn--push::before { + border-bottom: 4px solid rgba(0,0,0, 0.25); +} + +.q-btn--push:active { + transform: translateY(3px); +} + +.q-btn--push:active::before { + border-bottom-width: 1px; } \ No newline at end of file diff --git a/src/css/quasar.variables.scss b/src/css/quasar.variables.scss index 6be41d9..b7391b6 100644 --- a/src/css/quasar.variables.scss +++ b/src/css/quasar.variables.scss @@ -12,9 +12,9 @@ // to match your app's branding. // Tip: Use the "Theme Builder" on Quasar's documentation website. -$primary : #019547; +$primary : #30303A; $secondary : #DAE0E7; -$accent : #83f29f7d; +$accent : #0c9a3b; $dark-shadow-color : #00220f; @@ -30,9 +30,10 @@ $input-autofill-color : #AAD5C4; $field-dense-label-top : 5px !default; $field-dense-label-font-size : 16px !default; +$button-shadow : 0 0 0 transparent; -$dark : #42444b; -$dark-page : #343434; +$dark : #40404C; +$dark-page : #343444; $positive : #21ba45; $negative : #e6364b; diff --git a/src/i18n/en-ca/index.ts b/src/i18n/en-ca/index.ts index ae81e67..a990d14 100644 --- a/src/i18n/en-ca/index.ts +++ b/src/i18n/en-ca/index.ts @@ -151,12 +151,12 @@ export default { REMOTE: "Remote work", }, errors: { - not_found:"Shift not found", - overlap:"An overlaps occured between 2 or more shifts", - invalid:"Invalid shift`s entry", - unknown:"Unknown error", - comment_required:"A comment is required", - comment_too_long:"Your comment is too long", + not_found: "Shift not found", + SHIFT_OVERLAP: "An overlaps occured between 2 or more shifts", + invalid: "Invalid shift`s entry", + unknown: "Unknown error", + comment_required: "A comment is required", + comment_too_long: "Your comment is too long", }, fields: { start:"Start (HH:mm)", @@ -197,7 +197,7 @@ export default { PER_DIEM:"Per Diem", EXPENSES:"expense", MILEAGE:"mileage", - PRIME_GARDE:"on-call allowance", + ON_CALL:"on-call allowance", }, }, }, diff --git a/src/i18n/fr-ca/index.ts b/src/i18n/fr-ca/index.ts index c4ba08a..72bbd21 100644 --- a/src/i18n/fr-ca/index.ts +++ b/src/i18n/fr-ca/index.ts @@ -151,12 +151,12 @@ export default { REMOTE: "Télétravail", }, errors: { - not_found:"Aucun quart trouvé", - overlap:"Il y a un chevauchement entre deux ou plusieurs quarts", - invalid:"Entrée du quart invalide", - unknown:"Erreur inconnue", - comment_required:"un commentaire est requis", - comment_too_long:"votre commentaire est trop long", + not_found: "Aucun quart trouvé", + SHIFT_OVERLAP: "Il y a un chevauchement entre deux ou plusieurs quarts", + invalid: "Entrée du quart invalide", + unknown: "Erreur inconnue", + comment_required: "un commentaire est requis", + comment_too_long: "votre commentaire est trop long", }, fields: { start:"Début (HH:mm)", @@ -197,7 +197,7 @@ export default { PER_DIEM:"Per diem", EXPENSES:"dépense", MILEAGE:"kilométrage", - PRIME_GARDE:"Prime de garde", + ON_CALL:"Prime de garde", }, }, }, diff --git a/src/layouts/components/main-layout-header-bar.vue b/src/layouts/components/main-layout-header-bar.vue index 8120ef7..0d4beb8 100644 --- a/src/layouts/components/main-layout-header-bar.vue +++ b/src/layouts/components/main-layout-header-bar.vue @@ -1,22 +1,36 @@ - - diff --git a/src/layouts/components/main-layout-left-drawer.vue b/src/layouts/components/main-layout-left-drawer.vue index 4223f04..2d0a146 100644 --- a/src/layouts/components/main-layout-left-drawer.vue +++ b/src/layouts/components/main-layout-left-drawer.vue @@ -32,14 +32,14 @@