diff --git a/quasar.config.ts b/quasar.config.ts index b839ce5..1ed6fa2 100644 --- a/quasar.config.ts +++ b/quasar.config.ts @@ -105,7 +105,8 @@ export default defineConfig((ctx) => { notify: { color: 'primary', avatar: 'https://cdn.quasar.dev/img/boy-avatar.png', - } + }, + dark: "auto", }, // iconSet: 'material-icons', // Quasar icon set diff --git a/src/assets/profile_header_default.png b/src/assets/profile_header_default.png new file mode 100644 index 0000000..c470de9 Binary files /dev/null and b/src/assets/profile_header_default.png differ diff --git a/src/css/app.scss b/src/css/app.scss index 2acab20..e3d7a16 100644 --- a/src/css/app.scss +++ b/src/css/app.scss @@ -1,5 +1,5 @@ // app global css in SCSS form -@each $size in (5, 10, 15, 20, 25) { +@each $size in (1, 2, 3, 4, 5, 10, 15, 20, 25, 50, 75, 100) { .rounded-#{$size} { border-radius: #{$size}px !important; } @@ -22,4 +22,14 @@ .q-table tbody tr:hover { background: #00ff260c; +} + +body.body--dark { + --q-secondary: #0f1114; + color: $grey-2; +} + +.body--light { + --q-dark: #FFF; + color: $grey-8; } \ No newline at end of file diff --git a/src/css/quasar.variables.scss b/src/css/quasar.variables.scss index 20dd6e6..2131a9e 100644 --- a/src/css/quasar.variables.scss +++ b/src/css/quasar.variables.scss @@ -12,20 +12,24 @@ // to match your app's branding. // Tip: Use the "Theme Builder" on Quasar's documentation website. -$primary: #019547; -$secondary: #DAE0E7; -$accent: #AAD5C4; +$primary : #019547; +$secondary : #DAE0E7; +$accent : #AAD5C4; -$verdigris: #6EBAB0; -$mint: #56B586; +$dark-shadow-color : #019547; -$dark-font: #1f3a1f; -$dark: #000; -$dark-page: #323232; +$elevation-dark-umbra : rgba($dark-shadow-color, 0.4); +$elevation-dark-penumbra : rgba($dark-shadow-color, 0); +$elevation-dark-ambient : rgba($dark-shadow-color, 0); -$positive: #21ba45; -$negative: #e6364b; -$info: #6bb9e7; -$warning: #e4a944; -$white: white; +$dark-shadow-2 : 0 3px 5px -1px $elevation-dark-umbra, 0 5px 8px $elevation-dark-penumbra, 0 1px 14px $elevation-dark-ambient; +$layout-shadow-dark : 0 0 10px 5px rgba($dark-shadow-color, 0.5); +$dark : #333; +$dark-page : #343434; + +$positive : #21ba45; +$negative : #e6364b; +$info : #6bb9e7; +$warning : #e4a944; +$white : white; diff --git a/src/i18n/en-ca/index.ts b/src/i18n/en-ca/index.ts index e01b2c2..15683c6 100644 --- a/src/i18n/en-ca/index.ts +++ b/src/i18n/en-ca/index.ts @@ -1,299 +1,162 @@ export default { - footerLayout: { - title: `Targo Communications, 2005 - 2025)}. All rights reserved.`, - }, - helpPage: { - title_1: 'Contact Us', - title_2: - 'Please complete the form below and we’ll get back to you as soon as possible.', - fullName: 'Full name*', - email: 'Email address*', - phoneNumber: 'Phone number*', - message: - 'How can we help you? Please use this area to provide a detailed message, Thank you!*', - //form validation - fullNameValidation: 'Full name must be filled in.', - emailValidation: 'Email must be a valid email.', - phoneNumberValidation: 'Phone number must be filled in.', - messageValidation: 'Message must be a valid email.', - submit: 'Send', - }, - mainLayout: { - backButton: 'Back to home', - clearFilter: 'Clear filter', - }, - navBar: { - userMenuHome: 'Homepage', - userMenuEmployeeList: 'Employee Directory', - userMenuShiftValidation: 'Timesheet Approval', - userMenuTimesheetTemp: 'Timesheet', - userMenuProfile: 'Profile', - userMenuHelp: 'Help', - userMenuLogout: 'Log Out', - userMenuTimesheet: 'Timesheet', - userMenuCalendar: 'Calendar', - }, - notFoundPage: { - pageText: 'We cannot seem to find the page you are looking for, sorry!', - backButton: 'Take me back!', - }, - loginPage: { - title: 'Log in to Targo', - forgotPassword: 'Forgot Password?', - signUp: 'Don’t have an account yet?', - email: 'Email', - password: 'Password', - submit: 'Connect', - employeeLoginButton: 'Employee', - facebookLoginButton:'Connect with Facebook', - tooltipComingSoon: 'Coming soon!', - loginOrSeparator: 'OR', - emailValidation: 'Email must be a valid email.', - passwordValidation: 'Password must be a valid email.', - rememberMe: 'Remember me', - }, - signUpPage: { - title: 'Create a new account', - firstName: 'First name', - lastName: 'Last name', - email: 'Email', - phoneNumber: 'Phone number', - password: 'New password', - confirmedPassword: 'Confirm your password', - signIn: 'Already have an account?', - submit: 'Sign up', - firstNameValidation: 'First Name must be filled in.', - lastNameValidation: 'Last Name must be filled in.', - emailValidation: 'Email must be a valid email.', - phoneNumberValidation: 'Phone number must be filled in.', - passwordValidationTitle: 'Password Criteria :', - passwordValidation: 'Password must meet all criteria.', - passwordLengthValidation: 'Must be at least 8 characters long.', - passwordCapitalValidation: 'Must contain at least one capital letter.', - passwordNumberValidation: 'Must contain at least one number.', - passwordSpecialCharacterValidation: - 'Must contain at least one special character: !@#$%^&*()-_+=', - confirmPasswordValidation: 'Password must match new Password.', - }, - forgotPage: { - title: - 'Please enter your email to search for your account and send a verification code.', - email: 'Email', - emailValidation: 'Email must be a valid email.', - submit: 'Send Code', - cancel: 'Cancel', - }, - resetPage: { - title: 'Reset your password', - code: 'code', - codeValidation: 'Code must be filled in with 4 digits.', - newPassword: 'New Password', - confirmedPassword: 'Confirm New Password', - newPasswordValidation: 'Password must meet all criteria.', - newPasswordLengthValidation: 'Must be at least 8 characters long.', - newPasswordCapitalValidation: 'Must contain at least one capital letter.', - newPasswordNumberValidation: 'Must contain at least one number.', - newPasswordSpecialCharacterValidation: - 'Must contain at least one special character: !@#$%^&*()-_+=', - confirmNewPasswordValidation: 'Password must match new Password.', - submit: 'Send', - cancel: 'Cancel', - }, - accountDialog: { - title: 'More', - item_1: 'Language', - item_2: 'Profil', - item_3: 'Log Out', - item_4: 'Time Sheet', - item_5: 'Annual calendar', - }, - notificationDialog: { - notice: 'Notice', - markAllRead: 'Mark all read', - deleteAll: 'Delete all', - close: 'Close', - }, - profilePage: { - title: 'Profile', - firstName: 'First name', - lastName: 'Last name', - email: 'Email', - phoneNumber: 'Phone number', - job_title: 'Job title', - company: 'Company', - supervisor: 'Supervisor', - role: 'Role', - address: 'Address', - job_titleValidation: 'Job title must be filled in.', - companyValidation: 'Company must be filled in.', - supervisorValidation: 'Supervisor must be filled in.', - roleValidation: 'Role must be filled in.', - addressValidation: 'Address must be filled in.', - firstNameValidation: 'First Name must be filled in.', - lastNameValidation: 'Last Name must be filled in.', - phoneNumberValidation: 'Phone number must be filled in.', - submit: 'Update Profile', - }, - indexAdminPage: { - card_1: 'Administrators', - card_2: 'Technicians', - card_3: 'Dealer', - card_4: 'Customers', - }, - usersListPage: { - tableHeader: 'Employee Directory', - searchInput: 'Search', - userListFirstName: 'First name', - userListLastName: 'Last name', - userListEmail: 'Email', - userListPhone: 'Phone number', - userListRole: 'Role', - userListSupervisor: 'Supervisor', - userListCompany: 'Company', - addButton: 'Add Employee', - customer: 'Customer', - dealer: 'Dealer', - employee: 'Employee', - technician: 'Technician', - admin: 'Administrator', - support: 'Support', - }, - shared:{ - searchBar: 'Search', - loading: 'Obtaining data...', - failedToLoad: 'No data to show', - failedToSearch: 'No data matching search', - languageLabel: 'Language', - }, - editUserPage: { - title: 'Edit Account', - passwordTitle: 'Reset Password', - firstName: 'First name', - lastName: 'Last name', - email: 'Email', - phoneNumber: 'Phone number', - type: 'Select a type', - role: 'Select a role', - job_title: 'Job title', - company: 'Company', - supervisor: 'Supervisor', - isSupervisor: 'Is supervisor', - hours_bank_max: 'Hours bank maximum', - address: 'Address', - verifiedAccountStatus: 'Verified Account', - unVerifiedAccountStatus: 'UnVerified Account', - password: 'New password', - confirmedPassword: 'Confirm your password', - submit: 'Update Account', - //Form Validation - firstNameValidation: 'First Name must be filled in.', - lastNameValidation: 'Last Name must be filled in.', - emailValidation: 'Email must be a valid email.', - phoneNumberValidation: 'Phone number must be filled in.', - typeValidation: 'Type must be filled in.', - roleValidation: 'Role must be filled in.', - job_titleValidation: 'Job title must be filled in.', - companyValidation: 'Company must be filled in.', - supervisorValidation: 'Supervisor must be filled in.', - hours_bank_maxValidation: 'Hours bank maximum must be filled in.', - addressValidation: 'Address must be filled in.', - passwordValidation: 'Password must meet all criteria.', - confirmPasswordValidation: 'Password must match new Password.', - }, - addUserPage: { - title: 'Create User', - firstName: 'First name', - lastName: 'Last name', - email: 'Email', - phoneNumber: 'Phone number', - type: 'Select a type', - role: 'Select a role', - job_title: 'Job title', - company: 'Company', - supervisor: 'Supervisor', - isSupervisor: 'Is supervisor', - hours_bank_max: 'Hours bank maximum', - onboarding: 'Onboarding date', - offboarding: 'Offboarding date', - employee_number: 'Employee number (Employer D number)', - regular_hours_day: 'regular number of hours per day', - address: 'Address', - verifiedAccountStatus: 'Verified Account', - unVerifiedAccountStatus: 'UnVerified Account', - password: 'Password', - confirmedPassword: 'Confirm your password', - submit: 'Create', - //Form Validaiton - firstNameValidation: 'First Name must be filled in.', - lastNameValidation: 'Last Name must be filled in.', - emailValidation: 'Email must be a valid email.', - phoneNumberValidation: 'Phone number must be filled in.', - typeValidation: 'Type must be filled in.', - roleValidation: 'Role must be filled in.', - job_titleValidation: 'Job title must be filled in.', - companyValidation: 'Company must be filled in.', - supervisorValidation: 'Supervisor must be filled in.', - hours_bank_maxValidation: 'Hours bank maximum must be filled in.', - onboardingValidation: 'Onboarding date must be filled in.', - employee_numberValidation: 'Employee number must be filled in.', - regular_hours_dayValidation: - 'regular number of hours per day must be filled in.', - addressValidation: 'Address must be filled in.', - passwordValidation: 'Password must meet all criteria.', - confirmPasswordValidation: 'Password must match new Password.', - }, - pageTitles: { - employeeDirectory: 'Employee Directory', - newUsers: 'New user', - updateUsers: 'Update user', - timeSheets: 'Time sheet', - timeSheetValidations: 'Time sheet approvals', - }, - timesheet: { - title:'Timesheet', - date_ranges_to:'to', - days: ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'], - nav_button: { - calendar_date_picker:'Calendar', - current_week:'This week', - next_week:'Next week', - previous_week:'Previous week', + 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", }, - save_button:'Save', - cancel_button:'Cancel', - remote_button: 'Remote work', - delete_button: 'Delete', + }, + + 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!", + }, + }, + + 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", + }, + 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", + }, + 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", + }, + label: { + search: "search", + loading: "loading...", + language: "Language", + add: "ajouter", + save: "save", + remove: "remove", + cancel: "cancel", + update: "update", + modify: "modify", + }, + 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", + }, + 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?', + 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', + 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', - 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", + 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', + start:"Start (HH:mm)", + end:"End (HH:mm)", + header_comment:"Shift`s comment", + textarea_comment: "Leave a comment here", }, }, expense: { @@ -301,141 +164,60 @@ export default { 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', + 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', + 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', + 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', - PRIME_GARDE:'on-call allowance', + PER_DIEM:"Per Diem", + EXPENSES:"expense", + MILEAGE:"mileage", + PRIME_GARDE:"on-call allowance", }, }, }, - timeSheetValidations: { - tableColumnLabelFullname: 'Full name', - tableColumnLabelEmail: 'email address', - tableColumnLabelRegularHours: 'regular hours', - tableColumnLabelEveningHours: 'evening', - tableColumnLabelEmergencyHours: 'emergency', - tableColumnLabelOvertime: 'overtime', - tableColumnLabelExpenses: 'expenses', - tableColumnLabelMileage: 'mileage', - actionTitle: 'Please save the changes made.', - actionButton: 'Save', - timeSheetStatusVerified: 'approved', - timeSheetStatusUnverified: 'pending', - timeSheetStatusPartial: 'partially approved', - timeSheetStatusComplete: 'complete', - timeSheetStatusEmpty: 'empty', - timeSheetStatusBlocked: 'blocked', - showAllCheckbox: 'Show all', - accumulatedSicknessTotal: 'Accumulated illnesses', - consumedSicknessTotal: 'Consumed with illnesses', - accumulatedVacationTotal: 'Accumulated vacation', - consumedVacationTotal: 'Consumed with vacation', - maxVacationPerYear: 'Maximum vacation per year', - accumulatedSicknessTotalValidation: - 'Accumulated illnesses must be positive.', - consumedSicknessTotalValidation: - 'Consumed with illnesses must be positive.', - accumulatedVacationTotalValidation: - 'Accumulated vacation must be positive.', - consumedVacationTotalValidation: 'Consumed with vacation must be positive.', - maxVacationPerYearValidation: 'Max Vacation Per Year must be positive.', - resteVacationTotal: 'Rest of vacation', - hoursWorkedChartTitle: 'Hours worked', - hoursWorkedRegular: 'regular', - hoursWorkedEvening: 'evening', - hoursWorkedEmergency: 'emergency', - hoursWorkedOvertime: 'overtime', - tooltipTimeline: 'Daily breakdown', - tooltipTimesheet: 'Open timesheet', - reportFilterCategoryCompany: 'Company', - reportFilterCategoryType: 'Data type', - reportFilterShifts: 'Shifts', - reportFilterExpenses: 'Expenses', - reportFilterHoliday: 'Holiday', - reportFilterVacation: 'Vacation', + + 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", + }, }, - shiftColumns: { - title: 'shifts', - labelType: 'type', - labelIn: 'start', - labelOut: 'end', - labelComment: 'comment', - labelState: 'state', - labelSupervisorReport: 'supervisor report', - }, - expenseColumns: { - title: 'Expenses', - column_1: 'Type', - column_2: 'Amount', - column_3: 'Attachment', - column_4: 'Description', - column_5: 'Status', - column_6: 'Supervisor’s report', - }, - table: { - recordsTitle: 'Records per page:', - noResultsLabel: 'The filter didn’t uncover any results', - noDataLabel: 'I didn’t find anything for you', - }, - autoLogout: { - title: 'Alert', - message_start: 'Attention: You will be automatically logged out in', - message_end: 'seconds if you do not interact with the screen.', - }, - weekdays: { - Sunday: ' Sunday', - Monday: 'Monday', - Tuesday: 'Tuesday', - Wednesday: 'Wednesday', - Thursday: 'Thursday', - Friday: 'Friday', - Saturday: 'Saturday', - }, - shiftsTemplate: { - tabTitle1: 'Shifts', - tabTitle2: 'Templates for shifts', - saveButton: 'Save', - emptyShiftsMessage: 'No shifts available.', - emptyTemplateMessage: 'No template available.', - selectTemplate: 'Select a template', - selectTemplateNoResult: 'No template available.', - selectDay: 'Day', - startTime: 'Start time', - endTime: 'End time', - templateTitle: 'Title', - templateDescription: 'Description', - createButton: 'Create', - updateButton: 'Update', - deleteButton: 'Delete', - resetButton: 'Reset', - dayValidation: 'Day must be filled in.', - startTimeValidation: 'Start time must be filled in.', - endTimeValidation: 'End time must be filled in.', - startTimeAfterEndTimeValidation: - 'The end time cannot be before or equal the start time', - endTimeBeforeStartTimeValidation: - 'The end time cannot be before or equal the start time', - existingTimeShift: 'This time is already in use', - }, -}; +}; \ No newline at end of file diff --git a/src/i18n/fr-ca/index.ts b/src/i18n/fr-ca/index.ts index ccf79e3..0471595 100644 --- a/src/i18n/fr-ca/index.ts +++ b/src/i18n/fr-ca/index.ts @@ -1,349 +1,162 @@ export default { - accountDialog: { - title: 'Plus', - item_1: 'Langue', - item_2: 'Profile', - item_3: 'Déconnexion', - item_4: 'Carte de temps', - item_5: 'Calendrier annuel', - }, - addUserPage: { - title: 'Créer un utilisateur', - firstName: 'Prénom', - lastName: 'Nom de famille', - email: 'Email', - phoneNumber: 'Numéro de téléphone', - type: 'Choisir un type', - role: 'Choisir un role', - job_title: 'Titre d’emploi', - company: 'Entreprise', - supervisor: 'Superviseur', - isSupervisor: 'Est un superviseur', - hours_bank_max: 'Maximum de banque d’heures ', - onboarding: 'Date d’embauche', - offboarding: 'date de départ', - employee_number: 'Numéro d’employé (Matricule employeur D)', - regular_hours_day: 'nombre régulier d’heures par jour', - address: 'Adresse', - verifiedAccountStatus: 'Compte vérifié', - unVerifiedAccountStatus: 'Compte non vérifié', - password: 'Nouveau mot de passe', - confirmedPassword: 'Confirmez votre mot de passe', - submit: 'Créer', - //Form Validaiton - firstNameValidation: 'Le prénom doit être rempli.', - lastNameValidation: 'Le nom de famille doit être rempli.', - emailValidation: 'Email doit être un e-mail valide.', - phoneNumberValidation: 'Numéro de téléphone doit être rempli.', - typeValidation: 'Type doit être rempli.', - roleValidation: 'Role doit être rempli.', - job_titleValidation: 'Le Titre d’emploi doit être rempli.', - companyValidation: 'Entreprise doit être rempli.', - supervisorValidation: 'Superviseur doit être rempli.', - hours_bank_maxValidation: 'Maximum de banque d’heures doit être rempli.', - onboardingValidation: 'Date d’embauche doit être rempli.', - employee_numberValidation: 'Numéro d’employé doit être rempli.', - regular_hours_dayValidation: - 'nombre régulier d’heures par jour doit être rempli.', - addressValidation: 'Adresse doit être rempli.', - passwordValidation: 'Le mot de passe doit répondre à tous les critères.', - confirmPasswordValidation: - 'Le mot de passe doit correspondre au nouveau mot de passe.', - }, - autoLogout: { - title: 'Alerte', - message_start: 'Attention : vous serez automatiquement déconnecté dans', - message_end: 'secondes si vous n’interagissez pas avec l’écran.', - }, - weekdays: { - Sunday: 'dimanche', - Monday: 'lundi', - Tuesday: 'mardi', - Wednesday: 'mercredi', - Thursday: 'jeudi', - Friday: 'vendredi', - Saturday: 'samedi', - }, - editUserPage: { - title: 'Modifier le compte', - passwordTitle: 'Réinitialiser le mot de passe', - firstName: 'Prénom', - lastName: 'Nom de famille', - email: 'Email', - phoneNumber: 'Numéro de téléphone', - type: 'Choisir un type', - role: 'Choisir un role', - job_title: 'Titre d’emploi', - company: 'Entreprise', - supervisor: 'Superviseur', - isSupervisor: 'Est un superviseur', - hours_bank_max: 'Maximum de banque d’heures ', - address: 'Adresse', - verifiedAccountStatus: 'Compte vérifié', - unVerifiedAccountStatus: 'Compte non vérifié', - password: 'Nouveau mot de passe', - confirmedPassword: 'Confirmez votre mot de passe', - submit: 'Modifier le compte', - //Form Validaiton - firstNameValidation: 'Le prénom doit être rempli.', - lastNameValidation: 'Le nom de famille doit être rempli.', - emailValidation: 'Email doit être un e-mail valide.', - phoneNumberValidation: 'Numéro de téléphone doit être rempli.', - typeValidation: 'Type doit être rempli.', - roleValidation: 'Role doit être rempli.', - job_titleValidation: 'Le Titre d’emploi doit être rempli.', - companyValidation: 'Entreprise doit être rempli.', - supervisorValidation: 'Superviseur doit être rempli.', - hours_bank_maxValidation: 'Maximum de banque d’heures doit être rempli.', - addressValidation: 'Adresse doit être rempli.', - passwordValidation: 'Le mot de passe doit répondre à tous les critères.', - confirmPasswordValidation: - 'Le mot de passe doit correspondre au nouveau mot de passe.', - }, - expenseColumns: { - title: 'Dépenses', - column_1: 'Type', - column_2: 'Montant', - column_3: 'Attachement', - column_4: 'Description', - column_5: 'État', - column_6: 'Rapport du superviseur', - }, - footerLayout: { - title: `Targo Canada, 2005 - 2025. Tous droits réservés.`, - }, - forgotPage: { - title: - 'Veuillez saisir votre e-mail pour rechercher votre compte et envoyer un code de vérification.', - email: 'Email', - emailValidation: 'Email doit être un e-mail valide.', - submit: 'Envoyer code', - cancel: 'Annuler', - }, - helpPage: { - title_1: 'Contactez-nous', - title_2: - 'Veuillez remplir le formulaire ci-dessous et nous vous communiquerons dès que possible.', - fullName: 'Nom complet*', - email: 'Adresse e-mail*', - phoneNumber: 'Numéro de téléphone*', - message: - 'Comment pouvons-nous vous aider? S’il vous plaît utiliser cette zone pour fournir un message détaillé, Merci!*', - //form validation - fullNameValidation: 'Le nom complet doit être rempli.', - emailValidation: 'L’e-mail doit être un e-mail valide.', - phoneNumberValidation: 'Le numéro de téléphone doit être rempli.', - messageValidation: 'Message doit être rempli.', - submit: 'Envoyer', - }, - indexAdminPage: { - card_1: 'Administrateurs', - card_2: 'Techniciens', - card_3: 'Marchand', - card_4: 'Clients', - }, - loginPage: { - title: 'Se connecter à Targo', - forgotPassword: 'Mot de passe oublié?', - signUp: 'Vous n’avez pas encore de compte?', - email: 'Email', - password: 'Mot de passe', - submit: 'Connecter', - employeeLoginButton: 'Employé', - facebookLoginButton:'Facebook', - tooltipComingSoon: 'À venir!', - loginOrSeparator: 'OU', - emailValidation: 'Email doit être un e-mail valide.', - passwordValidation: 'Mot de passe doit être rempli.', - rememberMe: 'Rester connecté', - }, - mainLayout: { - backButton: 'Retour à la page d’accueil', - clearFilter: 'Effacer le filtre', - }, - navBar: { - userMenuHome: 'Accueil', - userMenuEmployeeList: 'Répertoire employés', - userMenuShiftValidation: 'Valider les heures', - userMenuTimesheetTemp: 'Carte de temps', - userMenuProfile: 'Profil', - userMenuHelp: 'Aide', - userMenuLogout: 'Déconnexion', - userMenuTimesheet: 'Carte de temps', - userMenuCalendar: 'Calendrier annuel', - }, - notFoundPage: { - pageText: 'On ne semble pas trouver la page que vous cherchez, désolé!', - backButton: 'Je veux retourner en arrière!', - }, - notificationDialog: { - notice: 'Notification', - markAllRead: 'Marquer tout comme lu', - deleteAll: 'Supprimer tout', - close: 'Fermer', - }, - pageTitles: { - employeeDirectory: 'Répertoire des Employés', - newUsers: 'Nouvel utilisateur', - updateUsers: 'Mettre à jour l’utilisateur', - timeSheets: 'Carte de temps', - timeSheetValidations: 'Validation cartes de temps', - }, - profilePage: { - title: 'Profil', - firstName: 'Prénom', - lastName: 'Nom de famille', - email: 'Email', - phoneNumber: 'Numéro de téléphone', - job_title: 'Titre du poste', - company: 'Entreprise', - supervisor: 'Superviseur', - role: 'Role', - address: 'Adresse', - job_titleValidation: 'Le champ "titre du poste" doit être rempli.', - companyValidation: 'Le champ "entreprise" doit être rempli.', - supervisorValidation: 'Un employé qui n’a pas le rôle de superviseur doit être attribué à un superviseur.', - roleValidation: 'Le champ "rôle" doit être rempli.', - addressValidation: 'Le champ "adresse" doit être rempli.', - firstNameValidation: 'Le champ "prénom" doit être rempli.', - lastNameValidation: 'Le champ "nom de famille" doit être rempli.', - phoneNumberValidation: 'Le champ "numéro de téléphone" doit être rempli.', - submit: 'Modifier Profil', - }, - resetPage: { - title: 'Réinitialiser votre mot de passe', - code: 'code', - codeValidation: 'Le code doit être rempli avec 4 chiffres.', - newPassword: 'Nouveau mot de passe', - confirmedPassword: 'Confirmez votre mot de passe', - newPasswordValidation: 'Le mot de passe doit répondre à tous les critères.', - newPasswordLengthValidation: 'Doit être d’au moins 8 caractères de long.', - newPasswordCapitalValidation: - 'Doit contenir au moins une lettre majuscule.', - newPasswordNumberValidation: 'Doit contenir au moins un numéro.', - newPasswordSpecialCharacterValidation: - 'Doit contenir au moins un caractère spécial : !@#$%^&*()-_+=', - confirmNewPasswordValidation: - 'Le mot de passe doit correspondre au nouveau mot de passe.', - submit: 'Envoyer', - cancel: 'Annuler', - }, - shared:{ - searchBar: 'Rechercher', - loading: 'Téléchargement des données en cours...', - failedToLoad: 'Aucune donnée à afficher', - failedToSearch: 'Aucun résultat de recherche obtenu', - languageLabel: 'Langue', - }, - shiftColumns: { - title: 'Quarts de travail', - labelType: 'type', - labelIn: 'entrée', - labelOut: 'sortie', - labelComment: 'commentaire', - labelState: 'état', - labelSupervisorReport: 'rapport du superviseur', - }, - shiftsTemplate: { - tabTitle1: 'Quarts de travail', - tabTitle2: 'Modèles de quarts de travail', - saveButton: 'Enregistrer', - emptyShiftsMessage: 'Aucun modèle disponible.', - emptyTemplateMessage: 'Aucun quarts de travail disponible.', - selectTemplate: 'Sélectionnez un modèle', - selectTemplateNoResult: 'Aucun modele disponible.', - selectDay: 'Jour', - startTime: 'Heure de début', - endTime: 'Heure de fin', - templateTitle: 'Titre', - templateDescription: 'Description', - createButton: 'Créer', - updateButton: 'Mettre à jour', - deleteButton: 'Supprimer', - resetButton: 'Réinitialiser', - dayValidation: 'Jour doit être rempli.', - startTimeValidation: 'Heure de début doit être rempli.', - endTimeValidation: 'Heure de fin doit être rempli.', - startTimeAfterEndTimeValidation: - 'L’heure de début ne peut pas être après l’heure de fin', - endTimeBeforeStartTimeValidation: - 'L’heure de fin ne peut pas être précédente à l’heure de debut', - existingTimeShift: 'Ce temps est déjà utilisé', - }, - signUpPage: { - title: 'Créer un nouveau compte', - firstName: 'Prénom', - lastName: 'Nom de famille', - email: 'Email', - phoneNumber: 'Numéro de téléphone', - password: 'Nouveau mot de passe', - confirmedPassword: 'Confirmez votre mot de passe', - signIn: 'Vous avez déjà un compte?', - submit: 'S’inscrire', - firstNameValidation: 'Le prénom doit être rempli.', - lastNameValidation: 'Le nom de famille doit être rempli.', - emailValidation: 'Email doit être un e-mail valide.', - phoneNumberValidation: 'Numéro de téléphone doit être rempli.', - passwordValidationTitle: 'Critères de mot de passe :', - passwordValidation: 'Le mot de passe doit répondre à tous les critères.', - passwordLengthValidation: 'Doit être d’au moins 8 caractères de long.', - passwordCapitalValidation: 'Doit contenir au moins une lettre majuscule.', - passwordNumberValidation: 'Doit contenir au moins un numéro.', - passwordSpecialCharacterValidation: - 'Doit contenir au moins un caractère spécial : !@#$%^&*()-_+=', - confirmPasswordValidation: - 'Le mot de passe doit correspondre au nouveau mot de passe.', - }, - table: { - recordsTitle: 'Enregistrements par page:', - noResultsLabel: 'Le filtre n’a révélé aucun résultat', - noDataLabel: 'Je n’ai rien trouvé pour toi', - }, - timesheet: { - title:'Carte de temps', - date_ranges_to:'au', - days: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'], - nav_button: { - calendar_date_picker:'Calendrier', - current_week:'Semaine actuelle', - next_week:'Prochaine semaine', - previous_week:'Semaine précédente', + 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", }, - save_button:'Enregistrer', - cancel_button:'Annuler', - remote_button: 'Télétravail', - delete_button: 'Supprimer', + }, + + 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!", + }, + }, + + 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", + }, + errors: { + must_enter_birthdate: "Vous devez entrer une date de naissance valide", + } + }, + + shared: { + error: { + no_data_found: 'aucune donnée à afficher', + no_search_results: 'aucun résultat ne correspond à la recherche', + }, + label: { + search: 'recherche', + loading: 'chargement en cours...', + language: 'langue', + add: "ajouter", + save: "sauvegarder", + remove: "supprimer", + cancel: "annuler", + update: "mettre à jour", + modify: "modifier", + }, + 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", + }, + 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?', + 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', + 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é', - 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é", + 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', + start:"Début (HH:mm)", + end:"Fin (HH:mm)", + header_comment:"Commentaire du Quart", + textarea_comment: "Laissez votre commentaire ici", }, }, expense: { @@ -351,93 +164,60 @@ export default { 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', + 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', + 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', + 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', - PRIME_GARDE:'Prime de garde', + PER_DIEM:"Per diem", + EXPENSES:"dépense", + MILEAGE:"kilométrage", + PRIME_GARDE:"Prime de garde", }, }, }, - timeSheetValidations: { - tableColumnLabelFullname: 'nom complet', - tableColumnLabelEmail: 'courriel', - tableColumnLabelRegularHours: 'heures régulières', - tableColumnLabelEveningHours: 'soir', - tableColumnLabelEmergencyHours: 'urgence', - tableColumnLabelOvertime: 'supplémentaires', - tableColumnLabelExpenses: 'dépenses', - tableColumnLabelMileage: 'kilométrage', - actionTitle: 'Veuillez enregistrer les changements effectués.', - actionButton: 'Enregistrer', - timeSheetStatusVerified: 'validé', - timeSheetStatusUnverified: 'à valider', - timeSheetStatusPartial: 'partiellement validé', - timeSheetStatusComplete: 'complet', - timeSheetStatusEmpty: 'vide', - timeSheetStatusBlocked: 'bloqué', - showAllCheckbox: 'Afficher tous', - accumulatedSicknessTotal: 'Accumulées de maladies', - consumedSicknessTotal: 'Consommées de maladies', - accumulatedVacationTotal: 'Accumulées de vacances', - consumedVacationTotal: 'Consommées de vacances', - maxVacationPerYear: 'Maximum de vacances par année', - accumulatedSicknessTotalValidation: 'Cumulatif maladie doit être positif', - consumedSicknessTotalValidation: 'Maladie utilisé doit être positif', - accumulatedVacationTotalValidation: 'Cumulatif vacances doit être positif', - consumedVacationTotalValidation: 'Vacances utilisées doit être positif', - maxVacationPerYearValidation: 'Maximum vacances annuel doit être positif.', - resteVacationTotal: 'Reste des vacances', - hoursWorkedChartTitle: 'Heures travaillées', - hoursWorkedRegular: 'régulier', - hoursWorkedEvening: 'soir', - hoursWorkedEmergency: 'urgence', - hoursWorkedOvertime: 'supplémentaire', - tooltipTimeline: 'Vue journalière', - tooltipTimesheet: 'Feuille de temps', - reportFilterCategoryCompany: 'Compagnie', - reportFilterCategoryType: 'Types de données', - reportFilterShifts: 'Quarts de travail', - reportFilterExpenses: 'Dépenses', - reportFilterHoliday: 'Jours Fériés', - reportFilterVacation: 'Vacances', + + 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", + }, }, - usersListPage: { - tableHeader: 'Répertoire du personnel', - searchInput: 'rechercher', - userListFirstName: 'prénom', - userListLastName: 'nom de famille', - userListEmail: 'courriel', - userListPhone: '# téléphone', - userListRole: 'rôle', - userListSupervisor: 'superviseur', - userListCompany: 'Compagnie', - addButton: 'Ajouter employé', - customer: 'Client', - dealer: 'Marchand', - employee: 'Employé', - technician: 'Technicien', - admin: 'Administrateur', - support: 'Support', - }, -}; +}; \ 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 new file mode 100644 index 0000000..bd5f934 --- /dev/null +++ b/src/modules/auth/components/login-connection-panel.vue @@ -0,0 +1,100 @@ + + + \ No newline at end of file diff --git a/src/modules/auth/components/login-dev-bypass.vue b/src/modules/auth/components/login-dev-bypass.vue new file mode 100644 index 0000000..61314da --- /dev/null +++ b/src/modules/auth/components/login-dev-bypass.vue @@ -0,0 +1,33 @@ + + + \ No newline at end of file diff --git a/src/modules/auth/components/login-popup-authentik-button.vue b/src/modules/auth/components/login-popup-authentik-button.vue deleted file mode 100644 index e69de29..0000000 diff --git a/src/modules/auth/components/login-popup.vue b/src/modules/auth/components/login-popup.vue deleted file mode 100644 index e69de29..0000000 diff --git a/src/modules/auth/pages/auth-login.vue b/src/modules/auth/pages/auth-login.vue index 982deea..fd77c48 100644 --- a/src/modules/auth/pages/auth-login.vue +++ b/src/modules/auth/pages/auth-login.vue @@ -1,25 +1,6 @@ \ No newline at end of file + + + \ No newline at end of file diff --git a/src/modules/employee-list/pages/supervisor-crew-page.vue b/src/modules/employee-list/pages/supervisor-crew-page.vue index 9c349b9..536eb4b 100644 --- a/src/modules/employee-list/pages/supervisor-crew-page.vue +++ b/src/modules/employee-list/pages/supervisor-crew-page.vue @@ -6,8 +6,8 @@