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/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 diff --git a/src/modules/employee-list/models/employee-profile.models.ts b/src/modules/employee-list/models/employee-profile.models.ts index ec414ff..72660fc 100644 --- a/src/modules/employee-list/models/employee-profile.models.ts +++ b/src/modules/employee-list/models/employee-profile.models.ts @@ -8,7 +8,7 @@ export interface PaidTimeOff { sick_hours: number; vacation_hours: number; banked_hours: number; - last_updated: string; + last_updated?: string | null; } export class EmployeeProfile {