From ffe671376f7b75911d4da84f413a5b52cc55e461 Mon Sep 17 00:00:00 2001 From: Nicolas Drolet Date: Fri, 9 Jan 2026 13:01:55 -0500 Subject: [PATCH 1/2] fix(employee-list): make last_updated change for pto when sick hours are changed --- src/css/app.scss | 9 +++++++++ .../employee-list/components/add-modify-dialog-form.vue | 1 + .../employee-list/models/employee-profile.models.ts | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/css/app.scss b/src/css/app.scss index ab0be1e..f5b3f6e 100644 --- a/src/css/app.scss +++ b/src/css/app.scss @@ -64,4 +64,13 @@ input::-webkit-inner-spin-button { /* Firefox */ input[type=number] { -moz-appearance: textfield; +} + +.q-field--dark .q-field__control::before { + border-color: #fff3; +} + +.q-field--dark .q-field__control:hover::before, .q-field--outlined .q-field__control:hover::before { + border-color: var(--q-accent); + border-width: 2px; } \ No newline at end of file diff --git a/src/modules/employee-list/components/add-modify-dialog-form.vue b/src/modules/employee-list/components/add-modify-dialog-form.vue index e8bc481..dc5ea61 100644 --- a/src/modules/employee-list/components/add-modify-dialog-form.vue +++ b/src/modules/employee-list/components/add-modify-dialog-form.vue @@ -145,6 +145,7 @@ v-model="employee_store.employee.paid_time_off.sick_hours" :label="$t('employee_management.sick_hours')" type="number" + @update:model-value="employee_store.employee.paid_time_off.last_updated = new Date().toISOString().slice(0, 10)" /> Date: Fri, 9 Jan 2026 16:01:00 -0500 Subject: [PATCH 2/2] feat(employee-list): add error messages to form when modifying employee details, minor UI changes. --- src/i18n/en-ca/index.ts | 9 + src/i18n/fr-ca/index.ts | 9 + .../components/add-modify-dialog-access.vue | 210 ++++++++++-------- .../add-modify-dialog-form-input.vue | 4 +- .../add-modify-dialog-form-select.vue | 5 +- .../components/add-modify-dialog-form.vue | 40 +++- .../employee-list/employee-constants.ts | 0 .../employee-list/employee-list-utils.ts | 17 ++ 8 files changed, 196 insertions(+), 98 deletions(-) delete mode 100644 src/modules/employee-list/employee-constants.ts create mode 100644 src/modules/employee-list/employee-list-utils.ts diff --git a/src/i18n/en-ca/index.ts b/src/i18n/en-ca/index.ts index 4a15e21..2f0e307 100644 --- a/src/i18n/en-ca/index.ts +++ b/src/i18n/en-ca/index.ts @@ -74,6 +74,15 @@ export default { active: "active", inactive: "inactive", }, + errors: { + first_name_required: "Employee's first name is required", + last_name_required: "Employee's last name is required", + company_required: "Employee must be assigned to a company", + phone_number_required: "Employee's phone number required", + hire_date_required: "Employee's first work day must be entered", + daily_hours_required: "Provide employee's expected daily hours worked", + no_modules_warning: "All modules disabled. This will lock the user out.", + } }, employee_management: { diff --git a/src/i18n/fr-ca/index.ts b/src/i18n/fr-ca/index.ts index 889de99..504c688 100644 --- a/src/i18n/fr-ca/index.ts +++ b/src/i18n/fr-ca/index.ts @@ -74,6 +74,15 @@ export default { active: "actif", inactive: "inactif", }, + errors: { + first_name_required: "Vous devez spécifier le prénom", + last_name_required: "Vous devez spécifier le nom de famille", + company_required: "Vous devez assignerl'employé à une compagnie", + phone_number_required: "Vous devez entrer un numéro de téléphone", + hire_date_required: "Vous devez entrer une date d'embauche", + daily_hours_required: "Spécifiez le nombre d'heures quotidiennes travaillé", + no_modules_warning: "Tout les modules sont désactivés. L'utilisateur sera verrouillé hors de l'application.", + } }, employee_management: { diff --git a/src/modules/employee-list/components/add-modify-dialog-access.vue b/src/modules/employee-list/components/add-modify-dialog-access.vue index 516e5b1..02d7017 100644 --- a/src/modules/employee-list/components/add-modify-dialog-access.vue +++ b/src/modules/employee-list/components/add-modify-dialog-access.vue @@ -42,8 +42,34 @@ + + \ No newline at end of file diff --git a/src/modules/employee-list/employee-constants.ts b/src/modules/employee-list/employee-constants.ts deleted file mode 100644 index e69de29..0000000 diff --git a/src/modules/employee-list/employee-list-utils.ts b/src/modules/employee-list/employee-list-utils.ts new file mode 100644 index 0000000..5b5b6ba --- /dev/null +++ b/src/modules/employee-list/employee-list-utils.ts @@ -0,0 +1,17 @@ +import type { EmbeddedValidationRule, EmbeddedValidationRuleFn } from "quasar"; + +export type QuasarRules = Record; +type EmployeeProfileValidationRule = EmbeddedValidationRule | ((value: T, rules: QuasarRules, error_message: string) => boolean | string | Promise); + +export const useEmployeeProfileRules = () => { + const isNotEmpty: EmployeeProfileValidationRule = (value, _rules, error_message) => (value !== undefined && value !== null && value !== '') || error_message; + + return { + isNotEmpty, + } +} + +export const company_options = [ + { label: 'Targo', value: 'Targo' }, + { label: 'Solucom', value: 'Solucom' }, +] \ No newline at end of file