From 65761776524de9415f047e96d0d7238f8199cb57 Mon Sep 17 00:00:00 2001 From: Nic D Date: Mon, 23 Mar 2026 14:35:51 -0400 Subject: [PATCH] fix(timesheet, approvals): overhaul of UI elements, standardized inputs and selects --- src/assets/circle.png | Bin 0 -> 2605 bytes src/assets/links/facturation-transparent.png | Bin 2060 -> 2060 bytes src/assets/links/hydroQC_icon.png | Bin 3121 -> 3121 bytes src/assets/links/logo_gmail.png | Bin 1778 -> 1778 bytes src/css/app.scss | 18 + src/layouts/main-layout.vue | 14 +- .../components/employee/shortcut-card.vue | 15 +- src/modules/shared/components/targo-input.vue | 152 +++--- .../components/details-dialog-shift-menu.vue | 44 +- .../components/overview-list.vue | 26 +- .../components/expense-dialog-form.vue | 211 +++++--- .../components/expense-dialog-list-item.vue | 13 +- .../timesheets/components/expense-dialog.vue | 14 +- .../mobile/expense-dialog-form-mobile.vue | 2 +- .../expense-dialog-list-item-mobile.vue | 41 +- .../mobile/shift-list-day-mobile.vue | 123 +++++ .../mobile/shift-list-day-row-mobile.vue | 466 ++++++++---------- .../components/mobile/shift-list-mobile.vue | 202 +------- .../components/shift-list-date-widget.vue | 20 +- .../components/shift-list-day-row.vue | 139 +++--- .../timesheets/components/shift-list-day.vue | 34 +- .../timesheets/components/shift-list.vue | 9 +- .../components/timesheet-wrapper.vue | 31 +- .../timesheets/composables/use-expense-api.ts | 1 - .../timesheets/models/expense.models.ts | 8 +- src/modules/timesheets/utils/expense.util.ts | 10 +- 26 files changed, 819 insertions(+), 774 deletions(-) create mode 100644 src/assets/circle.png create mode 100644 src/modules/timesheets/components/mobile/shift-list-day-mobile.vue diff --git a/src/assets/circle.png b/src/assets/circle.png new file mode 100644 index 0000000000000000000000000000000000000000..373aeb72d3bba6ee2511418a0b40cff52063d689 GIT binary patch literal 2605 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 P00000NkvXXu0mjfcFzyC literal 0 HcmV?d00001 diff --git a/src/assets/links/facturation-transparent.png b/src/assets/links/facturation-transparent.png index 1249e8ef13319dc54d9006beee454792533b661c..2db539418d45b29546b0c5499f91d20b25a5027e 100644 GIT binary patch delta 608 ucmeAX=nz(>w!e|18e=P`T_O*EbEaT{?W7wf6z(>w!e|18e=P`T_O*EbD;|e?`3E|Ew+M=;myub`}6pm8OLN delta 557 jcmeyw`-yjgU;Y1q1*7&4Z1^kUwO)n&N7d$Rrgjzp28tg? diff --git a/src/css/app.scss b/src/css/app.scss index dfb3916..ae674d8 100644 --- a/src/css/app.scss +++ b/src/css/app.scss @@ -42,6 +42,14 @@ body.body--dark { backdrop-filter: blur(5px); } +.text-accent2 { + color: #95f0a1B0; +} + +.bg-accent2 { + background-color: #95f0a1B0; +} + .q-btn--push::before { border-bottom: 4px solid rgba(0,0,0, 0.25); } @@ -73,4 +81,14 @@ input[type=number] { .q-field--dark .q-field__control:hover::before, .q-field--outlined .q-field__control:hover::before { border-color: var(--q-accent2); border-width: 2px; +} + +.text-border-white { + text-shadow: 2px 0 #fff, -2px 0 #fff, 0 2px #fff, 0 -2px #fff, + 1px 1px #fff, -1px -1px #fff, 1px -1px #fff, -1px 1px #fff; +} + +.text-border-dark { + text-shadow: 2px 0 var(--q-primary), -2px 0 var(--q-primary), 0 2px var(--q-primary), 0 -2px var(--q-primary), + 1px 1px var(--q-primary), -1px -1px var(--q-primary), 1px -1px var(--q-primary), -1px 1px var(--q-primary); } \ No newline at end of file diff --git a/src/layouts/main-layout.vue b/src/layouts/main-layout.vue index 0385b09..c0deac0 100644 --- a/src/layouts/main-layout.vue +++ b/src/layouts/main-layout.vue @@ -13,7 +13,7 @@ import { useUiStore } from 'src/stores/ui-store'; import { useAuthStore } from 'src/stores/auth-store'; - setCssVar('accent2', '#36c45a44'); + setCssVar('accent2', '#95f0a1B0'); const ui_store = useUiStore(); const auth_store = useAuthStore(); const userPreferences = ref(ui_store.userPreferences); @@ -47,14 +47,4 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/src/modules/dashboard/components/employee/shortcut-card.vue b/src/modules/dashboard/components/employee/shortcut-card.vue index 4f3f7bd..11fbd61 100644 --- a/src/modules/dashboard/components/employee/shortcut-card.vue +++ b/src/modules/dashboard/components/employee/shortcut-card.vue @@ -15,7 +15,7 @@ + + diff --git a/src/modules/timesheet-approval/components/details-dialog-shift-menu.vue b/src/modules/timesheet-approval/components/details-dialog-shift-menu.vue index 6224ad7..0fdc7cb 100644 --- a/src/modules/timesheet-approval/components/details-dialog-shift-menu.vue +++ b/src/modules/timesheet-approval/components/details-dialog-shift-menu.vue @@ -54,6 +54,26 @@ color="accent" class="col-auto q-px-md" > + +
+ + {{ $t('timesheet.expense.employee_comment') }}: + + {{ shift.comment }} +
+
+ + +
+ + {{ $t('timesheet.expense.employee_comment') }}: + + {{ shift.comment }} +
+
+ - +
{{ $t('timesheet.expense.employee_comment') }} - +
([ 'employee_first_name', @@ -105,10 +105,14 @@ const getListViewTimeCss = (column_name: OverviewColumns, value: number): { classes: string, style: string } => { if (WARNING_COLUMNS.includes(column_name) && value > 0) - return { classes: 'bg-warning text-white text-bold rounded-5', style: '' }; + return { classes: 'bg-warning text-bold text-primary rounded-5', style: '' }; + + if (NEGATIVE_COLUMNS.includes(column_name) && value > 0) { + if ((column_name === 'OVERTIME') && value < 4) + return { classes: 'bg-warning text-bold text-primary rounded-5', style: '' }; - if (NEGATIVE_COLUMNS.includes(column_name) && value > 0) return { classes: 'bg-negative text-white text-bold rounded-5', style: '' }; + } return { classes: '', style: '' } } @@ -117,7 +121,7 @@