diff --git a/eslint.config.js b/eslint.config.js
index f33219f..2498ecb 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -67,6 +67,12 @@ export default defineConfigWithVueTs(
rules: {
'prefer-promise-reject-errors': 'off',
+ // warn about unused but underscored variables
+ 'no-unused-vars': [
+ 'warn',
+ { argsIgnorePattern: '^_' }
+ ],
+
// allow debugger during development only
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
}
diff --git a/quasar.config.ts b/quasar.config.ts
index 34af8ea..885c3ff 100644
--- a/quasar.config.ts
+++ b/quasar.config.ts
@@ -126,7 +126,9 @@ export default defineConfig((ctx) => {
// animations: 'all', // --- includes all animations
// https://v2.quasar.dev/options/animations
- animations: [],
+ animations: [
+ 'fadeInUp',
+ ],
// https://v2.quasar.dev/quasar-cli-vite/quasar-config-file#sourcefiles
// sourceFiles: {
@@ -219,7 +221,7 @@ export default defineConfig((ctx) => {
builder: {
// https://www.electron.build/configuration/configuration
- appId: 'quasar-project'
+ appId: 'App Targo'
}
},
diff --git a/src/assets/login-background.png b/src/assets/login-background.png
new file mode 100644
index 0000000..f234c90
Binary files /dev/null and b/src/assets/login-background.png differ
diff --git a/src/boot/axios.ts b/src/boot/axios.ts
index bf9b3ed..cda3340 100644
--- a/src/boot/axios.ts
+++ b/src/boot/axios.ts
@@ -14,7 +14,7 @@ declare module 'vue' {
// good idea to move this instance creation inside of the
// "export default () => {}" function below (which runs individually
// for each client)
-const api = axios.create({ baseURL: 'https://api.example.com' });
+const api = axios.create({ baseURL: import.meta.env.VITE_TARGO_BACKEND_URL });
export default defineBoot(({ app }) => {
// for use inside Vue files (Options API) through this.$axios and this.$api
diff --git a/src/css/app.scss b/src/css/app.scss
index ecac98f..f92f544 100644
--- a/src/css/app.scss
+++ b/src/css/app.scss
@@ -1 +1,6 @@
// app global css in SCSS form
+@each $size in (5, 10, 15, 20, 25) {
+ .rounded-#{$size} {
+ border-radius: #{$size}px;
+ }
+}
\ No newline at end of file
diff --git a/src/css/quasar.variables.scss b/src/css/quasar.variables.scss
index 70584c1..2d1f566 100644
--- a/src/css/quasar.variables.scss
+++ b/src/css/quasar.variables.scss
@@ -13,13 +13,13 @@
// Tip: Use the "Theme Builder" on Quasar's documentation website.
$primary: #019547;
-$secondary: #dadded;
-$accent: #1976d2;
+$secondary: #EFFFEF;
+$accent: #ADEAC6;
$dark-font: #305530;
-$dark: #111212;
-$dark-page: #121212;
+$dark: #323232;
+$dark-page: #323232;
$positive: #21ba45;
$negative: #c10015;
diff --git a/src/i18n/en-ca/index.ts b/src/i18n/en-ca/index.ts
index 60dcb6e..28d06a2 100644
--- a/src/i18n/en-ca/index.ts
+++ b/src/i18n/en-ca/index.ts
@@ -1,7 +1,6 @@
export default {
- mainLayout: {
- backButton: 'Back to home',
- clearFilter: 'Clear filter',
+ footerLayout: {
+ title: `Targo Communications, 2005 - 2025)}. All rights reserved.`,
},
helpPage: {
title_1: 'Contact Us',
@@ -19,6 +18,10 @@ export default {
messageValidation: 'Message must be a valid email.',
submit: 'Send',
},
+ mainLayout: {
+ backButton: 'Back to home',
+ clearFilter: 'Clear filter',
+ },
navBar: {
navItem_1: 'Users list',
navItem_2: 'Shift validations',
@@ -33,9 +36,6 @@ export default {
pageTitle: 'Oops. Nothing here...',
backButton: 'Go to the home page',
},
- footerLayout: {
- title: `Targo Communications, 2005 - 2025)}. All rights reserved.`,
- },
loginPage: {
title: 'Log in to Targo',
forgotPassword: 'Forgot Password?',
@@ -43,9 +43,10 @@ export default {
email: 'Email',
password: 'Password',
submit: 'Sign in ',
- authentik: 'Targo authentication',
+ employeeLoginButton: 'Targo employee login',
emailValidation: 'Email must be a valid email.',
passwordValidation: 'Password must be a valid email.',
+ rememberMe: 'Remember me',
},
signUpPage: {
title: 'Create a new account',
diff --git a/src/i18n/fr-ca/index.ts b/src/i18n/fr-ca/index.ts
index 0c13762..d0c408b 100644
--- a/src/i18n/fr-ca/index.ts
+++ b/src/i18n/fr-ca/index.ts
@@ -1,102 +1,4 @@
export default {
- mainLayout: {
- backButton: 'Retour à la page d’accueil',
- clearFilter: 'Effacer le filtre',
- },
- 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',
- },
- navBar: {
- navItem_1: 'Liste des utilisateurs',
- navItem_2: 'Validations des quarts de travail',
- menuItem_1: 'Profil',
- menuItem_2: 'Aide',
- menuItem_3: 'Déconnexion',
- menuItem_4: 'Carte de temps',
- menuItem_5: 'Calendrier annuel',
- mobileIndexTitle: 'Bonjour',
- },
- notFoundPage: {
- pageTitle: 'Oops. Rien ici...',
- backButton: 'Aller à la page d’accueil',
- },
- footerLayout: {
- title: `Targo Canada, 2005 - 2025. Tous droits réservés.`,
- },
- 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: 'Se connecter',
- authentik: 'Authentification Targo',
- emailValidation: 'Email doit être un e-mail valide.',
- passwordValidation: 'Mot de passe doit être rempli.',
- },
- 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.',
- },
- 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',
- },
- 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',
- },
accountDialog: {
title: 'Plus',
item_1: 'Langue',
@@ -105,97 +7,6 @@ export default {
item_4: 'Carte de temps',
item_5: 'Calendrier annuel',
},
- notificationDialog: {
- notice: 'Notification',
- markAllRead: 'Marquer tout comme lu',
- deleteAll: 'Supprimer tout',
- close: 'Fermer',
- },
- 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',
- },
- indexAdminPage: {
- card_1: 'Administrateurs',
- card_2: 'Techniciens',
- card_3: 'Marchand',
- card_4: 'Clients',
- },
- usersListPage: {
- tableHeader: 'Liste des utilisateurs',
- search_input: 'Rechercher',
- tableCol_1: 'État',
- tableCol_2: 'Prénom',
- tableCol_3: 'Nom de famille',
- tableCol_4: 'Email',
- tableCol_5: 'Numéro de téléphone',
- tableCol_6: 'Type d’utilisateur',
- tableCol_7: 'Role',
- tableCol_8: 'Créé par',
- tableCol_9: 'Superviseur',
- activeStatus: 'Actif',
- unActiveStatus: 'Inactif',
- addButton: 'Cliquez ici pour ajouter un nouvel utilisateur',
- customer: 'Client',
- dealer: 'Marchand',
- employee: 'Employé',
- technician: 'Technicien',
- admin: 'Administrateur',
- support: 'Support',
- },
- 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.',
- },
addUserPage: {
title: 'Créer un utilisateur',
firstName: 'Prénom',
@@ -239,12 +50,243 @@ export default {
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.',
+ },
+ daysOfWeek: {
+ 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: 'Se connecter',
+ employeeLoginButton: 'Login employé Targo',
+ 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: {
+ navItem_1: 'Liste des utilisateurs',
+ navItem_2: 'Validations des quarts de travail',
+ menuItem_1: 'Profil',
+ menuItem_2: 'Aide',
+ menuItem_3: 'Déconnexion',
+ menuItem_4: 'Carte de temps',
+ menuItem_5: 'Calendrier annuel',
+ mobileIndexTitle: 'Bonjour',
+ },
+ notFoundPage: {
+ pageTitle: 'Oops. Rien ici...',
+ backButton: 'Aller à la page d’accueil',
+ },
+ notificationDialog: {
+ notice: 'Notification',
+ markAllRead: 'Marquer tout comme lu',
+ deleteAll: 'Supprimer tout',
+ close: 'Fermer',
+ },
pagesTitles: {
newUserPageTitle: 'Nouvel utilisateur',
updateUserPageTitle: 'Mettre à jour l’utilisateur',
timeSheetPageTitle: 'Carte de temps',
timeSheetValidationsIdPageTitle: 'Carte 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',
+ },
+ shiftColumns: {
+ title: 'Quarts de travail',
+ column_1: 'Type',
+ column_2: 'Entrée',
+ column_3: 'Sortie',
+ column_4: 'Commentaire',
+ column_5: 'État',
+ column_6: '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: {
timeSheetTab_1: 'Quarts de travail',
timeSheetTab_2: 'Dépenses',
@@ -277,9 +319,7 @@ export default {
shiftTypeValidation: 'Le type doit être rempli.',
shiftStartTimeValidation: 'Entrée doit être rempli.',
shiftEndTimeValidation: 'Sortie doit être rempli.',
- endTimeValidation:
- 'L’heure de fin ne peut pas être antérieure ou égale à l’heure de début',
-
+ endTimeValidation:'L’heure de fin doit suivre l’heure de début.',
expensesTile: 'Dépenses du jour',
expensesType: 'Type',
expensesValue: 'Montant',
@@ -319,83 +359,37 @@ export default {
accumulatedVacationTotal: 'Accumulées de vacances',
consumedVacationTotal: 'Consommées de vacances',
maxVacationPerYear: 'Maximum de vacances par année',
- accumulatedSicknessTotalValidation:
- 'Accumulées de maladies doit être positive.',
- consumedSicknessTotalValidation:
- 'Consommées de maladies doit être positive.',
- accumulatedVacationTotalValidation:
- 'Accumulées de vacances doit être positive.',
- consumedVacationTotalValidation:
- 'Consommées de vacances doit être positive.',
- maxVacationPerYearValidation:
- 'Le nombre maximum de vacances par an doit être positif.',
+ 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',
validateToolTip: 'Valider',
unvalidateToolTip: 'Invalider',
lockToolTip: 'Verrouiller la semaine',
unlockToolTip: 'Déverrouiller la semaine',
},
- shiftColumns: {
- title: 'Quarts de travail',
- column_1: 'Type',
- column_2: 'Entrée',
- column_3: 'Sortie',
- column_4: 'Commentaire',
- column_5: 'État',
- column_6: 'Rapport du superviseur',
- },
- expenseColumns: {
- title: 'Dépenses',
- column_1: 'Type',
- column_2: 'Montant',
- column_3: 'Attachement',
- column_4: 'Description',
- column_5: 'État',
- column_6: 'Rapport du superviseur',
- },
- table: {
- recordsTitle: 'Enregistrements par page:',
- noResultsLabel: 'Le filtre n’a révélé aucun résultat',
- noDataLabel: 'Je n’ai rien trouvé pour toi',
- },
- autoLogout: {
- title: 'Alerte',
- message_start: 'Attention : vous serez automatiquement déconnecté dans',
- message_end: 'secondes si vous n’interagissez pas avec l’écran.',
- },
- daysOfWeek: {
- Sunday: 'dimanche',
- Monday: 'lundi',
- Tuesday: 'mardi',
- Wednesday: 'mercredi',
- Thursday: 'jeudi',
- Friday: 'vendredi',
- Saturday: 'samedi',
- },
- 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é',
+ usersListPage: {
+ tableHeader: 'Liste des utilisateurs',
+ search_input: 'Rechercher',
+ tableCol_1: 'État',
+ tableCol_2: 'Prénom',
+ tableCol_3: 'Nom de famille',
+ tableCol_4: 'Email',
+ tableCol_5: 'Numéro de téléphone',
+ tableCol_6: 'Type d’utilisateur',
+ tableCol_7: 'Role',
+ tableCol_8: 'Créé par',
+ tableCol_9: 'Superviseur',
+ activeStatus: 'Actif',
+ unActiveStatus: 'Inactif',
+ addButton: 'Cliquez ici pour ajouter un nouvel utilisateur',
+ customer: 'Client',
+ dealer: 'Marchand',
+ employee: 'Employé',
+ technician: 'Technicien',
+ admin: 'Administrateur',
+ support: 'Support',
},
};
diff --git a/src/layouts/main-layout.vue b/src/layouts/main-layout.vue
index 4ac674b..4f99ff0 100644
--- a/src/layouts/main-layout.vue
+++ b/src/layouts/main-layout.vue
@@ -1,12 +1,12 @@
-
+
diff --git a/src/modules/auth/auth-store.ts b/src/modules/auth/auth-store.ts
index e29d244..db7d0b2 100644
--- a/src/modules/auth/auth-store.ts
+++ b/src/modules/auth/auth-store.ts
@@ -1,6 +1,5 @@
/* eslint-disable */
import { defineStore } from "pinia";
-import router from "src/router";
import { api } from "src/boot/axios";
import { User } from "src/modules/users/types/user-interface";
import { AuthState } from "./types/auth-interface";
@@ -10,8 +9,8 @@ export const useAuthStore = defineStore('auth', {
state: (): AuthState => ({
token: "",
user: {
- firstName: 'Guest',
- lastName: 'Guest',
+ firstName: 'Unknown',
+ lastName: 'Unknown',
email: 'guest@guest.com',
role: 'guest'
} as User,
@@ -25,7 +24,7 @@ export const useAuthStore = defineStore('auth', {
actions: {
async login() {
- return "standard login";
+ api.get('v1/');
},
async oidcLogin() {
@@ -44,8 +43,8 @@ export const useAuthStore = defineStore('auth', {
return "setting user info";
},
- isAuthorizedUser(email: string) {
- return "checking user authorization";
+ isAuthorizedUser(): boolean {
+ return this.$state.user.role.toLowerCase() != 'guest';
},
async forgotPassword(email: string) {
diff --git a/src/modules/auth/composables/use-auth-access.ts b/src/modules/auth/composables/use-auth-access.ts
index 58d05ab..434ffd4 100644
--- a/src/modules/auth/composables/use-auth-access.ts
+++ b/src/modules/auth/composables/use-auth-access.ts
@@ -1,15 +1,11 @@
/* eslint-disable */
-import { useAuthStore } from "src/modules/auth/auth-store";
-
export const useAuthAccess = () => {
- const authStore = useAuthStore();
-
const isLoggedIn = async () => {
return authStore.hasAuthToken;
};
- const isAuthorizedUser = async (email: string) => {
- return authStore.isAuthorizedUser(email);
+ const isAuthorizedUser = async () => {
+ return authStore.isAuthorizedUser();
};
const forgotPassword = async (email: string) => {
diff --git a/src/modules/auth/composables/use-auth-session.ts b/src/modules/auth/composables/use-auth-session.ts
index 01895a7..61b6fdc 100644
--- a/src/modules/auth/composables/use-auth-session.ts
+++ b/src/modules/auth/composables/use-auth-session.ts
@@ -1,11 +1,7 @@
/* eslint-disable */
-import { useAuthStore } from "src/modules/auth/auth-store";
-
export const useAuthSession = () => {
- const authStore = useAuthStore();
-
const login = async () => {
- return authStore.login();
+ return {status: 200, message: 'sent a login request'};
};
const oidcLogin = async () => {
diff --git a/src/modules/auth/pages/auth-callback.vue b/src/modules/auth/pages/auth-callback.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 e69de29..e23daf9 100644
--- a/src/modules/auth/pages/auth-login.vue
+++ b/src/modules/auth/pages/auth-login.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+