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..3914f10 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 (5, 10, 15, 20, 25, 50, 75, 100) { .rounded-#{$size} { border-radius: #{$size}px !important; } diff --git a/src/i18n/en-ca/index.ts b/src/i18n/en-ca/index.ts index 79802dd..adbe3a4 100644 --- a/src/i18n/en-ca/index.ts +++ b/src/i18n/en-ca/index.ts @@ -114,25 +114,36 @@ export default { 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', + personalInfo: { + title: 'Profile', + firstName: 'First name', + lastName: 'Last name', + gender: 'Gender', + genderMale: 'Man', + genderFemale: 'Woman', + genderNonBinary: 'Non-binary', + genderUnspecified: 'Unspecified', + phoneNumber: 'Phone number', + jobTitle: 'Job title', + company: 'Company', + supervisor: 'Supervisor', + role: 'Role', + address: 'Address', + addressPlaceholder: '# address, city, region, country', + birthDate: 'Date of birth', + submitInfo: 'Update Profile', + }, + employeeInfo: { + title: 'Employee info', + workEmail: 'Work e-mail', + jobTitle: 'Job Title', + companyName: 'Company', + supervisorName: 'Supervisor', + hiredDate: 'Hiring date', + }, + errors: { + mustEnterBirthdate: 'You must enter a valid birthdate', + } }, indexAdminPage: { card_1: 'Administrators', diff --git a/src/i18n/fr-ca/index.ts b/src/i18n/fr-ca/index.ts index f7cd6e9..3f83584 100644 --- a/src/i18n/fr-ca/index.ts +++ b/src/i18n/fr-ca/index.ts @@ -190,25 +190,36 @@ export default { 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', + personalInfo: { + title: 'Info personnel', + firstName: 'Prénom', + lastName: 'Nom de famille', + gender: 'Genre', + genderMale: 'Homme', + genderFemale: 'Femme', + genderNonBinary: 'Non-binaire', + genderUnspecified: 'Non-spécifié', + phoneNumber: 'Numéro de téléphone', + jobTitle: 'Titre du poste', + company: 'Entreprise', + supervisor: 'Superviseur', + role: 'Role', + address: 'Adresse', + addressPlaceholder: '# addresse, ville, région, pays', + birthDate: 'Date de naissance', + submitInfo: 'Modifier Profil', + }, + employeeInfo: { + title: 'Info Employé', + workEmail: 'Courriel employé', + jobTitle: 'Poste', + companyName: 'Compagnie', + supervisorName: 'Nom du superviseur', + hiredDate: 'Date embauché', + }, + errors: { + mustEnterBirthdate: 'Vous devez entrer une date de naissance valide', + } }, resetPage: { title: 'Réinitialiser votre mot de passe', diff --git a/src/modules/profile/components/employee/panel-info-employee.vue b/src/modules/profile/components/employee/panel-info-employee.vue new file mode 100644 index 0000000..af35594 --- /dev/null +++ b/src/modules/profile/components/employee/panel-info-employee.vue @@ -0,0 +1,77 @@ + + + \ No newline at end of file diff --git a/src/modules/profile/components/employee/panel-info-personal.vue b/src/modules/profile/components/employee/panel-info-personal.vue new file mode 100644 index 0000000..40f73f6 --- /dev/null +++ b/src/modules/profile/components/employee/panel-info-personal.vue @@ -0,0 +1,147 @@ + + + \ No newline at end of file diff --git a/src/modules/profile/components/shared/profile-input-field.vue b/src/modules/profile/components/shared/profile-input-field.vue new file mode 100644 index 0000000..4634c6e --- /dev/null +++ b/src/modules/profile/components/shared/profile-input-field.vue @@ -0,0 +1,46 @@ + + + \ No newline at end of file diff --git a/src/modules/profile/components/shared/profile-select-field.vue b/src/modules/profile/components/shared/profile-select-field.vue new file mode 100644 index 0000000..be6a7f3 --- /dev/null +++ b/src/modules/profile/components/shared/profile-select-field.vue @@ -0,0 +1,40 @@ + + + \ No newline at end of file diff --git a/src/modules/profile/components/shared/profile-tab-menu-template.vue b/src/modules/profile/components/shared/profile-tab-menu-template.vue new file mode 100644 index 0000000..f78e162 --- /dev/null +++ b/src/modules/profile/components/shared/profile-tab-menu-template.vue @@ -0,0 +1,68 @@ + + + \ No newline at end of file diff --git a/src/modules/profile/pages/employee/profile-employee.vue b/src/modules/profile/pages/employee/profile-employee.vue new file mode 100644 index 0000000..9707f7a --- /dev/null +++ b/src/modules/profile/pages/employee/profile-employee.vue @@ -0,0 +1,32 @@ + + + \ No newline at end of file diff --git a/src/modules/profile/pages/profile-container.vue b/src/modules/profile/pages/profile-container.vue new file mode 100644 index 0000000..9a4d103 --- /dev/null +++ b/src/modules/profile/pages/profile-container.vue @@ -0,0 +1,31 @@ + + + \ No newline at end of file diff --git a/src/modules/profile/types/profile-employee-interface.ts b/src/modules/profile/types/profile-employee-interface.ts new file mode 100644 index 0000000..92b9997 --- /dev/null +++ b/src/modules/profile/types/profile-employee-interface.ts @@ -0,0 +1,33 @@ +export interface EmployeePersonalInfo { + first_name: string; + last_name: string; + gender: string; + phone_number: string; + address: string; + birth_date: string; +} + +export interface EmployeeJobInfo { + email: string; + job_title: string; + company: string; + supervisor: string; + hired_date: string; +} + +export const default_employee_personal_info: EmployeePersonalInfo = { + first_name: '', + last_name: '', + gender: '', + phone_number: '', + address: '', + birth_date: '1970 / 01 / 01' +} + +export const default_employee_job_info: EmployeeJobInfo = { + email: '', + job_title: '', + company: '', + supervisor: '', + hired_date: '', +} \ No newline at end of file diff --git a/src/modules/timesheet-approval/components/timesheet-approval-period-picker.vue b/src/modules/timesheet-approval/components/timesheet-approval-period-picker.vue index 8681c73..b56e3e0 100644 --- a/src/modules/timesheet-approval/components/timesheet-approval-period-picker.vue +++ b/src/modules/timesheet-approval/components/timesheet-approval-period-picker.vue @@ -5,7 +5,7 @@ import type { QDateDetails } from 'src/modules/shared/types/q-date-details'; const is_showing_calendar_picker = ref(false); - const calendar_date = ref(date.formatDate( Date.now(), 'YYYY/MM/DD' )); + const calendar_date = ref(date.formatDate( Date.now(), 'YYYY-MM-DD' )); const props = defineProps<{ isDisabled: boolean, @@ -22,7 +22,7 @@ calendar_date.value = value; is_showing_calendar_picker.value = false; emit('date-selected', value, reason, details); - } + }