diff --git a/src/i18n/en-ca/index.ts b/src/i18n/en-ca/index.ts index f9d38f0..7699e3d 100644 --- a/src/i18n/en-ca/index.ts +++ b/src/i18n/en-ca/index.ts @@ -12,6 +12,29 @@ export default { }, }, + employee_management: { + module_access: { + dashboard: "Dashboard", + employee_list: "employee list", + employee_management: "employee management", + personal_profile: "profile", + timesheets: "timesheets", + timesheets_approval: "timesheet approval", + user_access: "module access", + presets: "access presets", + preset_admin: "administrator", + preset_employee: "employee", + uncheck_all: "remove all", + admin_description: "Check all modules", + employee_description: "Only check modules that are relevant to standard employees with no management access", + none_description: "Uncheck all modules", + }, + add_employee: "Add employee", + modify_employee: "Modify employee", + access_label: "access", + details_label: "details", + }, + login: { page_header: "account login", email: "e-mail", @@ -59,20 +82,6 @@ export default { supervisor: "supervisor", hired_date: "hiring date", bankroll_id: "payroll ID", - module_access: { - dashboard: "Dashboard", - employee_list: "employee list", - employee_management: "employee management", - personal_profile: "profile", - timesheets: "timesheets", - timesheets_approval: "timesheet approval", - user_access: "module access", - presets: "access presets", - preset_admin: "admin", - preset_employee: "employee", - uncheck_all: "remove all", - - }, }, preferences: { tab_title: "preferences", diff --git a/src/i18n/fr-ca/index.ts b/src/i18n/fr-ca/index.ts index 4b25d4c..c68bae8 100644 --- a/src/i18n/fr-ca/index.ts +++ b/src/i18n/fr-ca/index.ts @@ -12,6 +12,29 @@ export default { }, }, + employee_management: { + module_access: { + dashboard: "Dashboard", + employee_list: "employee list", + employee_management: "employee management", + personal_profile: "profile", + timesheets: "timesheets", + timesheets_approval: "timesheet approval", + user_access: "module access", + presets: "access presets", + preset_admin: "administrateur", + preset_employee: "employé", + uncheck_all: "Tout enlever", + admin_description: "Selectionner tous les modules", + employee_description: "Selectionner seulement les modules qui sont pertinents aux employés sans accès spéciaux", + none_description: "Enlever tous les accès", + }, + add_employee: "Ajouter employé", + modify_employee: "Modifier employé", + access_label: "accès", + details_label: "détails", + }, + login: { page_header: "connexion au compte", email: "courriel", @@ -59,19 +82,6 @@ export default { supervisor: "nom du superviseur", hired_date: "date d'embauche", bankroll_id: "identifiant de paie", - module_access: { - dashboard: "accueil", - employee_list: "liste employés", - employee_management: "gestion employés", - personal_profile: "profil", - timesheets: "feuilles de temps", - timesheets_approval: "valider feuilles de temps", - user_access: "accès aux modules", - presets: "accès prédéfinis", - preset_admin: "administrateur", - preset_employee: "employé", - uncheck_all: "aucun accès", - }, }, preferences: { tab_title: "préférences", diff --git a/src/modules/employee-list/components/employee/add-modify-dialog-access.vue b/src/modules/employee-list/components/employee/add-modify-dialog-access.vue new file mode 100644 index 0000000..362280f --- /dev/null +++ b/src/modules/employee-list/components/employee/add-modify-dialog-access.vue @@ -0,0 +1,123 @@ + + + + + + + + + {{ $t('employee_management.module_access.preset_admin') }} + + + + {{ $t('employee_management.module_access.admin_description') }} + + + + + + + + {{ $t('employee_management.module_access.preset_employee') }} + + + + {{ $t('employee_management.module_access.employee_description') }} + + + + + + + + {{ $t('employee_management.module_access.uncheck_all') }} + + + + {{ $t('employee_management.module_access.none_description') }} + + + + + + + + + + {{ $t('employee_management.module_access.' + option.value) }} + + + + + + + + \ No newline at end of file diff --git a/src/modules/employee-list/components/employee/add-modify-dialog-form.vue b/src/modules/employee-list/components/employee/add-modify-dialog-form.vue index 92aec5c..ebd51c9 100644 --- a/src/modules/employee-list/components/employee/add-modify-dialog-form.vue +++ b/src/modules/employee-list/components/employee/add-modify-dialog-form.vue @@ -3,20 +3,8 @@ lang="ts" > import { useEmployeeStore } from 'src/stores/employee-store'; - import { employee_access_options, type ModuleAccessPreset, type ModuleAccessName, employee_access_presets } from 'src/modules/employee-list/models/employee-profile.models'; -import { unwrapAndClone } from 'src/utils/unwrap-and-clone'; const employee_store = useEmployeeStore(); - - const toggleInSelected = (value: ModuleAccessName) => { - const i = employee_store.employee.user_module_access.indexOf(value); - if (i === -1) employee_store.employee.user_module_access.push(value); - else employee_store.employee.user_module_access.splice(i, 1); - } - - const applyAccessPreset = (preset: ModuleAccessPreset) => { - employee_store.employee.user_module_access = unwrapAndClone(employee_access_presets[preset]); - } @@ -28,14 +16,16 @@ import { unwrapAndClone } from 'src/utils/unwrap-and-clone'; > - + {{ $t('profile.personal.first_name') }} @@ -43,14 +33,16 @@ import { unwrapAndClone } from 'src/utils/unwrap-and-clone'; - + {{ $t('profile.personal.last_name') }} @@ -63,14 +55,16 @@ import { unwrapAndClone } from 'src/utils/unwrap-and-clone'; > - + {{ $t('profile.employee.email') }} @@ -78,14 +72,16 @@ import { unwrapAndClone } from 'src/utils/unwrap-and-clone'; - + {{ $t('profile.personal.phone_number') }} @@ -98,14 +94,16 @@ import { unwrapAndClone } from 'src/utils/unwrap-and-clone'; > - + {{ $t('profile.employee.job_title') }} @@ -113,14 +111,16 @@ import { unwrapAndClone } from 'src/utils/unwrap-and-clone'; - + {{ $t('profile.employee.company') }} @@ -133,14 +133,16 @@ import { unwrapAndClone } from 'src/utils/unwrap-and-clone'; > - + {{ $t('profile.employee.supervisor') }} @@ -148,97 +150,21 @@ import { unwrapAndClone } from 'src/utils/unwrap-and-clone'; - + {{ $t('profile.employee.bankroll_id') }} - - - - - {{ $t('profile.employee.module_access.user_access') }} - - - - - - - - - - - - - - - - - {{ $t('profile.employee.module_access.' + option.value) }} - - - - - - - - - \ No newline at end of file diff --git a/src/modules/employee-list/components/employee/add-modify-dialog.vue b/src/modules/employee-list/components/employee/add-modify-dialog.vue index 29fa55c..e3bae9f 100644 --- a/src/modules/employee-list/components/employee/add-modify-dialog.vue +++ b/src/modules/employee-list/components/employee/add-modify-dialog.vue @@ -1,22 +1,82 @@ - - - - ADD EMPLOYEE + + + + {{ $t('employee_management.' + employee_store.management_mode) }} + + + + + + + + + + + + + + + + + + + + + + + + + + - diff --git a/src/stores/employee-store.ts b/src/stores/employee-store.ts index 2a79cdc..a4592d4 100644 --- a/src/stores/employee-store.ts +++ b/src/stores/employee-store.ts @@ -7,18 +7,20 @@ export const useEmployeeStore = defineStore('employee', () => { const employee = ref(new EmployeeProfile); const employee_list = ref([]); const is_add_modify_dialog_open = ref(false); + const management_mode = ref<'modify_employee' | 'add_employee'>('add_employee'); const is_loading = ref(false); const openAddModifyDialog = async (employee_email?: string) =>{ - console.log('open window triggered'); is_add_modify_dialog_open.value = true; if (employee_email === undefined) { + management_mode.value = 'add_employee' employee.value = new EmployeeProfile(); return; } is_loading.value = true; + management_mode.value = 'modify_employee'; await getEmployeeDetails(employee_email); is_loading.value = false; } @@ -56,7 +58,8 @@ export const useEmployeeStore = defineStore('employee', () => { return { employee, employee_list, - is_add_modify_dialog_open, + is_add_modify_dialog_open, + management_mode, is_loading, getEmployeeList, getEmployeeDetails,