From b436428a33603fb2a7e6f830d5daa8d8cbbb475d Mon Sep 17 00:00:00 2001 From: Nicolas Drolet Date: Tue, 18 Nov 2025 14:50:03 -0500 Subject: [PATCH] refactor(timesheet): finalize support for expenses, approval display, minor timesheet approval rework --- src/css/quasar.variables.scss | 7 +- src/i18n/en-ca/index.ts | 434 +++++++++-------- src/i18n/fr-ca/index.ts | 436 +++++++++--------- .../components/login-connection-panel.vue | 5 +- .../shared/components/q-table-filters.vue | 11 +- .../components/details-dialog.vue | 16 +- .../components/overview-list.vue | 19 +- .../components/expense-dialog-form.vue | 48 +- .../components/expense-dialog-header.vue | 2 +- .../components/expense-dialog-list-item.vue | 49 +- .../timesheets/components/expense-dialog.vue | 2 +- .../mobile/expense-dialog-form-mobile.vue | 6 +- .../components/shift-list-day-row.vue | 65 +-- .../timesheets/components/shift-list-day.vue | 5 +- .../timesheets/components/shift-list.vue | 24 +- .../timesheets/composables/use-expense-api.ts | 24 +- .../models/expense-validation.models.ts | 132 +++--- .../timesheets/models/expense.models.ts | 2 + .../timesheets/services/expense-service.ts | 6 +- src/stores/expense-store.ts | 15 +- 20 files changed, 663 insertions(+), 645 deletions(-) diff --git a/src/css/quasar.variables.scss b/src/css/quasar.variables.scss index 22844cf..f803073 100644 --- a/src/css/quasar.variables.scss +++ b/src/css/quasar.variables.scss @@ -15,15 +15,16 @@ $primary : #30303A; $secondary : #DAE0E7; $accent : #0c9a3b; +$accent2 : #0a7d32; $dark-shadow-color : #173625; $elevation-dark-umbra : rgba($dark-shadow-color, 1); -$elevation-dark-penumbra : rgba($dark-shadow-color, 0.5); -$elevation-dark-ambient : rgba($dark-shadow-color, 0.3); +$elevation-dark-penumbra : rgba($dark-shadow-color, 0.75); +$elevation-dark-ambient : rgba($dark-shadow-color, 0.53); $dark-shadow-2 : 2px 3px $elevation-dark-umbra, 2px 3px 6px $elevation-dark-penumbra, 2px 3px 14px $elevation-dark-ambient; -$layout-shadow-dark : 0 0 10px 5px rgba($dark-shadow-color, 0.5); +$layout-shadow-dark : 0 0 5px 5px rgba($dark-shadow-color, 0.5); $input-text-color : #455A64; $input-autofill-color : #AAD5C4; diff --git a/src/i18n/en-ca/index.ts b/src/i18n/en-ca/index.ts index 498fbb6..10b8813 100644 --- a/src/i18n/en-ca/index.ts +++ b/src/i18n/en-ca/index.ts @@ -1,234 +1,228 @@ export default { - employee_list: { - page_header: "Employee Directory", - table: { - first_name: "First name", - last_name: "Last name", - email: "Email", - phone_number: "Phone number", - role: "Role", - supervisor: "Supervisor", - company: "Company", + employee_list: { + page_header: "Employee Directory", + table: { + first_name: "First name", + last_name: "Last name", + email: "Email", + phone_number: "Phone number", + role: "Role", + supervisor: "Supervisor", + company: "Company", + }, }, - }, - login: { - page_header: "account login", - email: "e-mail", - password: "password", - button: { - connect: "connect", - employee: "employee", - facebook:"Facebook", - remember_me: "remember me", + login: { + page_header: "account login", + email: "e-mail", + password: "password", + button: { + connect: "connect", + employee: "employee", + facebook: "Facebook", + remember_me: "remember me", + }, + tooltip: { + coming_soon: "coming soon!", + }, + error: { + login_failed: "Failed to login", + popups_blocked: "Popups are blocked on this device", + }, }, - tooltip: { - coming_soon: "coming soon!", - }, - error: { - login_failed: "Failed to login", - popups_blocked: "Popups are blocked on this device", - }, - }, - nav_bar: { - home: "homepage", - employee_list: "employee directory", - timesheet_approvals: "timesheet approvals", - timesheet: "timesheet", - profile: "profile", - help: "help", - logout: "log out", - }, + nav_bar: { + home: "homepage", + employee_list: "employee directory", + timesheet_approvals: "timesheet approvals", + timesheet: "timesheet", + profile: "profile", + help: "help", + logout: "log out", + }, - profile: { - personal: { - tab_title: "personal", - first_name: "first name", - last_name: "last name", - phone_number: "phone number", - address: "address", - address_hint: "# address, city, region, country", - birthdate: "birthdate", + profile: { + personal: { + tab_title: "personal", + first_name: "first name", + last_name: "last name", + phone_number: "phone number", + address: "address", + address_hint: "# address, city, region, country", + birthdate: "birthdate", + }, + employee: { + tab_title: "career", + email: "e-mail", + job_title: "job title", + company: "company", + supervisor: "supervisor", + hired_date: "hiring date", + }, + preferences: { + tab_title: "preferences", + display_options: "display options", + language_options: "language options", + dark_mode: "dark", + light_mode: "light", + }, + schedule_presets: { + tab_title: "Schedule", + selected_schedule: "Selected Schedule Preset", + new_preset: "Build a new preset", + }, + errors: { + must_enter_birthdate: "You must enter a valid birthdate", + } }, - employee: { - tab_title: "career", - email: "e-mail", - job_title: "job title", - company: "company", - supervisor: "supervisor", - hired_date: "hiring date", - }, - preferences: { - tab_title: "preferences", - display_options: "display options", - language_options: "language options", - dark_mode: "dark", - light_mode: "light", - }, - schedule_presets: { - tab_title: "Schedule", - selected_schedule: "Selected Schedule Preset", - new_preset: "Build a new preset", - }, - errors: { - must_enter_birthdate: "You must enter a valid birthdate", - } - }, - shared:{ - error: { - no_data_found: "no data found", - no_search_results: "no results matching search", + shared: { + error: { + no_data_found: "no data found", + no_search_results: "no results matching search", + }, + label: { + search: "search", + filter: "filters", + loading: "loading...", + language: "Language", + add: "ajouter", + save: "save", + remove: "remove", + cancel: "cancel", + update: "update", + modify: "modify", + close: "close", + }, + misc: { + or: "or", + and: "and", + to: "to", + from: "from", + yes: "yes", + no: "no", + in: "in", + out: "out", + }, + shift_type: { + regular: "regular", + evening: "evening", + emergency: "emergency", + overtime: "overtime", + holiday: "holiday", + vacation: "vacation", + sick: "sick", + remote: "remote work", + }, + weekday: { + sunday: "dimanche", + monday: "lundi", + tuesday: "mardi", + wednesday: "mercredi", + thursday: "jeudi", + friday: "vendredi", + saturday: "samedi", + }, }, - label: { - search: "search", - filter: "filters", - loading: "loading...", - language: "Language", - add: "ajouter", - save: "save", - remove: "remove", - cancel: "cancel", - update: "update", - modify: "modify", - close: "close", - }, - misc: { - or: "or", - and: "and", - to: "to", - from: "from", - yes: "yes", - no: "no", - in: "in", - out: "out", - }, - shift_type: { - regular: "regular", - evening: "evening", - emergency: "emergency", - overtime: "overtime", - holiday: "holiday", - vacation: "vacation", - sick: "sick", - remote: "remote work", - }, - weekday: { - sunday: "dimanche", - monday: "lundi", - tuesday: "mardi", - wednesday: "mercredi", - thursday: "jeudi", - friday: "vendredi", - saturday: "samedi", - }, - }, - timesheet: { - page_header:"Timesheet", - nav_button: { - calendar_date_picker:"Calendar", - current_week:"This week", - next_week:"Next week", - previous_week:"Previous week", + timesheet: { + page_header: "Timesheet", + nav_button: { + calendar_date_picker: "Calendar", + current_week: "This week", + next_week: "Next week", + previous_week: "Previous week", + }, + save_button: "Save", + cancel_button: "Cancel", + remote_button: "Remote work", + delete_button: "Delete", + shift: { + actions: { + add: "Add Shift", + edit: "Edit shift", + delete: "Delete shift", + delete_confirmation_msg: "Do you want to delete this shift completly?", + }, + types: { + label: "Shift`s Type", + EMERGENCY: "Emergency", + EVENING: "Evening", + HOLIDAY: "Holiday", + OVERTIME: "Overtime", + REGULAR: "Regular", + SICK: "Sick Leave", + VACATION: "Vacation", + REMOTE: "Remote work", + }, + fields: { + start: "Start (HH:mm)", + end: "End (HH:mm)", + header_comment: "Shift`s comment", + textarea_comment: "Leave a comment here", + }, + }, + expense: { + add_expense: 'Add Expense', + amount: 'Amount', + date: 'Date', + empty_list: 'No registered expenses', + employee_comment: 'Comment', + supervisor_comment: 'Supervisor note', + hints: { + amount_or_mileage: "Either amount or mileage, not both", + comment_required: "A comment required", + attach_file: "Attach File" + }, + mileage: "mileage", + open_btn: "list of expenses", + title: "List of all expenses", + total_amount: "Total amount", + total_mileage: "Total mileage", + type: "Type", + types: { + PER_DIEM: "Per Diem", + EXPENSES: "expense", + MILEAGE: "mileage", + ON_CALL: "on-call allowance", + }, + }, + errors: { + INVALID_SHIFT_TIME: "In and Out shift times are reversed", + SHIFT_OVERLAP: "An overlaps occured between 2 or more shifts", + INVALID_SHIFT: "A shift contains missing or corrupted data", + SHIFT_NOT_FOUND: "Shift missing or deleted", + PAY_PERIOD_NOT_FOUND: "No pay period matching given dates", + EMPLOYEE_NOT_FOUND: "No employee matching current login details", + INVALID_TIMESHEET: "Timesheet data is missing or corrupted", + TIMESHEET_NOT_FOUND: "No timesheet found with provided data", + INVALID_EXPENSE: "An expense contains missing or corrupted data", + EXPENSE_NOT_FOUND: "No expense found with provided data", + }, }, - save_button:"Save", - cancel_button:"Cancel", - remote_button: "Remote work", - delete_button: "Delete", - shift: { - actions: { - add:"Add Shift", - edit: "Edit shift", - delete: "Delete shift", - delete_confirmation_msg: "Do you want to delete this shift completly?", - }, - types: { - label: "Shift`s Type", - EMERGENCY: "Emergency", - EVENING: "Evening", - HOLIDAY: "Holiday", - OVERTIME: "Overtime", - REGULAR: "Regular", - SICK: "Sick Leave", - VACATION: "Vacation", - REMOTE: "Remote work", - }, - errors: { - 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)", - end:"End (HH:mm)", - header_comment:"Shift`s comment", - textarea_comment: "Leave a comment here", - }, - }, - expense: { - add_expense:'Add Expense', - amount:'Amount', - date:'Date', - empty_list:'No registered expenses', - employee_comment:'Comment', - supervisor_comment:'Supervisor note', - errors: { - date_required_or_invalid:"the date is missing or invalid", - comment_required:"A comment required", - comment_too_long:"Your comment is too long", - amount_must_be_positive:"the amount cannot be under 0$", - mileave_must_be_positive:"the mileage cannot be under 0", - amount_xor_mileage:"you cannot enter an amount and a mileage for the same expense", - mileage_required_for_type:"you need to enter a value for mileage when you enter an expense of that type", - amount_required_for_type:"you need to enter a value for amount when you enter an expense of that type", - }, - hints: { - amount_or_mileage:"Either amount or mileage, not both", - comment_required:"A comment required", - attach_file:"Attach File" - }, - mileage:"mileage", - open_btn:"list of expenses", - title:"List of all expenses", - total_amount:"Total amount", - total_mileage:"Total mileage", - type:"Type", - types: { - PER_DIEM:"Per Diem", - EXPENSES:"expense", - MILEAGE:"mileage", - ON_CALL:"on-call allowance", - }, - }, - }, - timesheet_approvals: { - page_title: "Validation cartes de temps", - table: { - full_name: "full name", - email: "email address", - expenses: "expenses", - mileage: "mileage", - verified: "approved", - unverified: "pending", + timesheet_approvals: { + page_title: "Validation cartes de temps", + table: { + full_name: "full name", + email: "email address", + expenses: "expenses", + mileage: "mileage", + verified: "approved", + unverified: "pending", + }, + chart: { + hours_worked_title: "hours worked", + expenses_title: "expenses accrued", + }, + print_report: { + company: "company", + type: "type", + shifts: "shifts", + expenses: "expenses", + }, + tooltip: { + button_detailed_view: "detailed view", + }, }, - chart: { - hours_worked_title: "hours worked", - expenses_title: "expenses accrued", - }, - print_report: { - company: "company", - type: "type", - shifts: "shifts", - expenses: "expenses", - }, - tooltip: { - button_detailed_view: "detailed view", - }, - }, }; \ No newline at end of file diff --git a/src/i18n/fr-ca/index.ts b/src/i18n/fr-ca/index.ts index d6a3a62..e4ff6d1 100644 --- a/src/i18n/fr-ca/index.ts +++ b/src/i18n/fr-ca/index.ts @@ -1,235 +1,229 @@ export default { - employee_list: { - page_header: "Répertoire du personnel", - table: { - first_name: "prénom", - last_name: "nom de famille", - email: "courriel", - phone_number: "# téléphone", - role: "rôle", - supervisor: "superviseur", - company: "Compagnie", + employee_list: { + page_header: "Répertoire du personnel", + table: { + first_name: "prénom", + last_name: "nom de famille", + email: "courriel", + phone_number: "# téléphone", + role: "rôle", + supervisor: "superviseur", + company: "Compagnie", + }, }, - }, - login: { - page_header: "connexion au compte", - email: "courriel", - password: "mot de passe", - button: { - connect: "connecter", - employee: "employé", - facebook:"Facebook", - remember_me: "rester connecté", + login: { + page_header: "connexion au compte", + email: "courriel", + password: "mot de passe", + button: { + connect: "connecter", + employee: "employé", + facebook: "Facebook", + remember_me: "rester connecté", + }, + tooltip: { + coming_soon: "à venir!", + }, + error: { + login_failed: "Échec à la connexion", + popups_blocked: "Les fenêtres contextuelles sont bloqués sur cet appareil", + }, }, - tooltip: { - coming_soon: "à venir!", - }, - error: { - login_failed: "Échec à la connexion", - popups_blocked: "Les fenêtres contextuelles sont bloqués sur cet appareil", - }, - }, - nav_bar: { - home: "accueil", - employee_list: "répertoire employés", - timesheet_approvals: "valider les heures", - timesheet: "carte de temps", - profile: "profil", - help: "aide", - logout: "déconnecter", - }, + nav_bar: { + home: "accueil", + employee_list: "répertoire employés", + timesheet_approvals: "valider les heures", + timesheet: "carte de temps", + profile: "profil", + help: "aide", + logout: "déconnecter", + }, - profile: { - personal: { - tab_title: "personnelle", - first_name: "prénom", - last_name: "nom de famille", - phone_number: "numéro de téléphone", - address: "adresse", - address_hint: "# addresse, ville, région, pays", - birthdate: "date de naissance", - }, - employee: { - tab_title: "carrière", - email: "courriel", - job_title: "poste", - company: "compagnie", - supervisor: "nom du superviseur", - hired_date: "date d'embauche", - }, - preferences: { - tab_title: "préférences", - display_options: "Options d'affichage", - language_options: "Options de langue", - dark_mode: "sombre", - light_mode: "clair", - }, - schedule_presets: { - tab_title: "horaire", - selected_schedule: "Horaire Sélectionné", - new_preset: "Construire un nouvel horaire", - - }, - errors: { - must_enter_birthdate: "Vous devez entrer une date de naissance valide", - } - }, + profile: { + personal: { + tab_title: "personnelle", + first_name: "prénom", + last_name: "nom de famille", + phone_number: "numéro de téléphone", + address: "adresse", + address_hint: "# addresse, ville, région, pays", + birthdate: "date de naissance", + }, + employee: { + tab_title: "carrière", + email: "courriel", + job_title: "poste", + company: "compagnie", + supervisor: "nom du superviseur", + hired_date: "date d'embauche", + }, + preferences: { + tab_title: "préférences", + display_options: "Options d'affichage", + language_options: "Options de langue", + dark_mode: "sombre", + light_mode: "clair", + }, + schedule_presets: { + tab_title: "horaire", + selected_schedule: "Horaire Sélectionné", + new_preset: "Construire un nouvel horaire", - shared: { - error: { - no_data_found: 'aucune donnée à afficher', - no_search_results: 'aucun résultat ne correspond à la recherche', + }, + errors: { + must_enter_birthdate: "Vous devez entrer une date de naissance valide", + } }, - label: { - search: 'recherche', - filter: "filtres", - loading: 'chargement en cours...', - language: 'langue', - add: "ajouter", - save: "sauvegarder", - remove: "supprimer", - cancel: "annuler", - update: "mettre à jour", - modify: "modifier", - close: "fermer", - }, - misc: { - or: "ou", - and: "et", - to: "au", - from: "de", - yes: "oui", - no: "non", - in: "entrée", - out: "sortie", - }, - shift_type: { - regular: "régulier", - evening: "soir", - emergency: "urgence", - overtime: "supplémentaire", - holiday: "férié", - vacation: "vacances", - sick: "maladie", - remote: "télétravail", - }, - weekday: { - sunday: "dimanche", - monday: "lundi", - tuesday: "mardi", - wednesday: "mercredi", - thursday: "jeudi", - friday: "vendredi", - saturday: "samedi", - }, - }, - timesheet: { - page_header:"Carte de temps", - nav_button: { - calendar_date_picker:"Calendrier", - current_week:"Semaine actuelle", - next_week:"Prochaine semaine", - previous_week:"Semaine précédente", + shared: { + error: { + no_data_found: 'aucune donnée à afficher', + no_search_results: 'aucun résultat ne correspond à la recherche', + }, + label: { + search: 'recherche', + filter: "filtres", + loading: 'chargement en cours...', + language: 'langue', + add: "ajouter", + save: "sauvegarder", + remove: "supprimer", + cancel: "annuler", + update: "mettre à jour", + modify: "modifier", + close: "fermer", + }, + misc: { + or: "ou", + and: "et", + to: "au", + from: "de", + yes: "oui", + no: "non", + in: "entrée", + out: "sortie", + }, + shift_type: { + regular: "régulier", + evening: "soir", + emergency: "urgence", + overtime: "supplémentaire", + holiday: "férié", + vacation: "vacances", + sick: "maladie", + remote: "télétravail", + }, + weekday: { + sunday: "dimanche", + monday: "lundi", + tuesday: "mardi", + wednesday: "mercredi", + thursday: "jeudi", + friday: "vendredi", + saturday: "samedi", + }, }, - save_button:"Enregistrer", - cancel_button:"Annuler", - remote_button: "Télétravail", - delete_button: "Supprimer", - shift: { - actions: { - add:"Ajouter un Quart", - edit: "Modifier un Quart", - delete: "Supprimer un Quart", - delete_confirmation_msg: "Voulez-vous complètement supprimer ce quart?", - }, - types: { - label: "Type de Quart", - EMERGENCY: "Urgence", - EVENING: "Soir", - HOLIDAY: "Férié", - OVERTIME: "Supplémentaire", - REGULAR: "Régulier", - SICK: "Maladie", - VACATION: "Vacance", - REMOTE: "Télétravail", - }, - errors: { - 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)", - end:"Fin (HH:mm)", - header_comment:"Commentaire du Quart", - textarea_comment: "Laissez votre commentaire ici", - }, - }, - expense: { - add_expense:'Ajouter une dépense', - amount:'Montant', - date:'Date', - empty_list:'Aucun dépense enregistrée', - employee_comment:'Commentaire', - supervisor_comment:'Note du Superviseur', - errors: { - date_required_or_invalid:"La date est manquante ou invalide", - comment_required:"un commentaire est requis", - comment_too_long:"votre commentaire est trop long", - amount_must_be_positive:"le montant doit être suppérieur à 0$", - mileave_must_be_positive:"le kilométrage doit être suppérieur à 0", - amount_xor_mileage:"Vous ne pouvez pas saisir un montant et un kilométrage pour une même dépense", - mileage_required_for_type:"Vous devez entrer une valeur en kilométrage pour ce type de dépense", - amount_required_for_type:"Vous devez entrer une valeur en montant $ pour ce type de dépense", - }, - hints: { - amount_or_mileage:"Soit dépense ou kilométrage, pas les deux", - comment_required:"un commentaire est requis", - attach_file:"Pièce jointe" - }, - mileage:"Kilométrage", - open_btn:"Liste des Dépenses", - title:"Liste des dépenses", - total_amount:"Montant total", - total_mileage:"Kilométrage total", - type:"Type", - types: { - PER_DIEM:"Per diem", - EXPENSES:"dépense", - MILEAGE:"kilométrage", - ON_CALL:"Prime de garde", - }, - }, - }, - timesheet_approvals: { - page_title: "Validation cartes de temps", - table: { - full_name: "nom complet", - email: "courriel", - expenses: "dépenses", - mileage: "kilométrage", - verified: "approuvé", - unverified: "à vérifier", + timesheet: { + page_header: "Carte de temps", + nav_button: { + calendar_date_picker: "Calendrier", + current_week: "Semaine actuelle", + next_week: "Prochaine semaine", + previous_week: "Semaine précédente", + }, + save_button: "Enregistrer", + cancel_button: "Annuler", + remote_button: "Télétravail", + delete_button: "Supprimer", + shift: { + actions: { + add: "Ajouter un Quart", + edit: "Modifier un Quart", + delete: "Supprimer un Quart", + delete_confirmation_msg: "Voulez-vous complètement supprimer ce quart?", + }, + types: { + label: "Type de Quart", + EMERGENCY: "Urgence", + EVENING: "Soir", + HOLIDAY: "Férié", + OVERTIME: "Supplémentaire", + REGULAR: "Régulier", + SICK: "Maladie", + VACATION: "Vacance", + REMOTE: "Télétravail", + }, + fields: { + start: "Début (HH:mm)", + end: "Fin (HH:mm)", + header_comment: "Commentaire du Quart", + textarea_comment: "Laissez votre commentaire ici", + }, + }, + expense: { + add_expense: 'Ajouter une dépense', + amount: 'Montant', + date: 'Date', + empty_list: 'Aucun dépense enregistrée', + employee_comment: 'Commentaire', + supervisor_comment: 'Note du Superviseur', + hints: { + amount_or_mileage: "Soit dépense ou kilométrage, pas les deux", + comment_required: "un commentaire est requis", + attach_file: "Pièce jointe" + }, + mileage: "Kilométrage", + open_btn: "Liste des Dépenses", + title: "Liste des dépenses", + total_amount: "Montant total", + total_mileage: "Kilométrage total", + type: "Type", + types: { + PER_DIEM: "Per diem", + EXPENSES: "dépense", + MILEAGE: "kilométrage", + ON_CALL: "Prime de garde", + }, + }, + errors: { + INVALID_SHIFT_TIME: "Les heures d'entrée et de sortie sont inversées", + SHIFT_OVERLAP: "Il y a un chevauchement entre deux ou plusieurs quarts", + INVALID_SHIFT: "Un quart de travail contient des données manquantes ou corrompues", + SHIFT_NOT_FOUND: "Quart de travail manquant ou supprimé", + PAY_PERIOD_NOT_FOUND: "Aucune période de paie ne correspond aux dates fournies", + EMPLOYEE_NOT_FOUND: "Aucun employé ne correspond aux détails de votre connexion", + INVALID_TIMESHEET: "Une feuille de temps contient des données manquantes ou corrompues", + TIMESHEET_NOT_FOUND: "Aucune feuille de temps ne correspond au détails fournis", + INVALID_EXPENSE: "Une dépense contient des données manquantes ou corrompues", + EXPENSE_NOT_FOUND: "Aucune dépense ne correspond aux détails fournis", + }, }, - chart: { - hours_worked_title: "heures travaillées", - expenses_title: "dépenses encourues" + + timesheet_approvals: { + page_title: "Validation cartes de temps", + table: { + full_name: "nom complet", + email: "courriel", + expenses: "dépenses", + mileage: "kilométrage", + verified: "approuvé", + unverified: "à vérifier", + }, + chart: { + hours_worked_title: "heures travaillées", + expenses_title: "dépenses encourues" + }, + print_report: { + company: "compagnie", + type: "types de données", + shifts: "quarts de travail", + expenses: "dépenses", + }, + tooltip: { + button_detailed_view: "vue détaillée", + }, }, - print_report: { - company: "compagnie", - type: "types de données", - shifts: "quarts de travail", - expenses: "dépenses", - }, - tooltip: { - button_detailed_view: "vue détaillée", - }, - }, }; \ No newline at end of file diff --git a/src/modules/auth/components/login-connection-panel.vue b/src/modules/auth/components/login-connection-panel.vue index b37c45d..803e030 100644 --- a/src/modules/auth/components/login-connection-panel.vue +++ b/src/modules/auth/components/login-connection-panel.vue @@ -34,10 +34,11 @@ v-model="email" dense outlined + color="accent" label-color="accent" - class="rounded-5 inset-shadow bg-blue-grey-1" + class="rounded-5 inset-shadow bg-white" label-slot - input-class="text-weight-medium text-h6 text-primary" + input-class="text-h6 text-dark" >