diff --git a/src/i18n/en-ca/index.ts b/src/i18n/en-ca/index.ts index 85bf7a6..4a15e21 100644 --- a/src/i18n/en-ca/index.ts +++ b/src/i18n/en-ca/index.ts @@ -70,6 +70,7 @@ export default { supervisor: "Supervisor", company: "Company", is_supervisor: "is a supervisor", + expected_daily_hours: "Expected Daily Hours", active: "active", inactive: "inactive", }, @@ -81,7 +82,11 @@ export default { access_label: "access", details_label: "details", schedule_label: "schedule", + can_be_entered_later: "OPTIONAL: can be entered later", enter_delete_input: "type 'DELETE' to remove", + banked_hours: "available banked hours", + sick_hours: "available PTO hours", + vacation_hours: "available vacation hours", schedule_presets: { preset_list_placeholder: "Select a schedule", preset_name_placeholder: "schedule preset name", diff --git a/src/i18n/fr-ca/index.ts b/src/i18n/fr-ca/index.ts index ea06f72..889de99 100644 --- a/src/i18n/fr-ca/index.ts +++ b/src/i18n/fr-ca/index.ts @@ -70,6 +70,7 @@ export default { supervisor: "superviseur", company: "Compagnie", is_supervisor: "est un superviseur", + expected_daily_hours: "Heures quotidiennes attendues", active: "actif", inactive: "inactif", }, @@ -81,7 +82,11 @@ export default { access_label: "accès", details_label: "détails", schedule_label: "horaire", + can_be_entered_later: "FACULTATIF: peut être entré plus tard", enter_delete_input: "tappez 'SUPPRIMER' pour confirmer", + banked_hours: "heures en banque disponibles", + sick_hours: "heures d'absence payées disponibles", + vacation_hours: "heures de vacances disponibles", schedule_presets: { preset_list_placeholder: "Sélectionner un horaire", preset_name_placeholder: "nom de l'horaire", diff --git a/src/modules/employee-list/components/add-modify-dialog-form-input.vue b/src/modules/employee-list/components/add-modify-dialog-form-input.vue new file mode 100644 index 0000000..6c77b95 --- /dev/null +++ b/src/modules/employee-list/components/add-modify-dialog-form-input.vue @@ -0,0 +1,56 @@ + + + \ No newline at end of file diff --git a/src/modules/employee-list/components/add-modify-dialog-form-select.vue b/src/modules/employee-list/components/add-modify-dialog-form-select.vue new file mode 100644 index 0000000..d9357c1 --- /dev/null +++ b/src/modules/employee-list/components/add-modify-dialog-form-select.vue @@ -0,0 +1,37 @@ + + + \ No newline at end of file diff --git a/src/modules/employee-list/components/add-modify-dialog-form.vue b/src/modules/employee-list/components/add-modify-dialog-form.vue index d1db2c4..e8bc481 100644 --- a/src/modules/employee-list/components/add-modify-dialog-form.vue +++ b/src/modules/employee-list/components/add-modify-dialog-form.vue @@ -2,6 +2,9 @@ setup lang="ts" > + import AddModifyDialogFormInput from 'src/modules/employee-list/components/add-modify-dialog-form-input.vue'; + import AddModifyDialogFormSelect from 'src/modules/employee-list/components/add-modify-dialog-form-select.vue'; + import { ref, computed } from 'vue'; import { useEmployeeStore } from 'src/stores/employee-store'; @@ -20,7 +23,7 @@ return supervisors.map(supervisor => supervisor.first_name + ' ' + supervisor.last_name); }) - const setLastWorkDay = (date: string | number | null) => { + const setLastWorkDay = (date: string | number | null | undefined) => { if (typeof date === 'string' && date.length > 0) { employee_store.employee.last_work_day = date; } @@ -54,260 +57,124 @@ class="q-ma-xs" :class="$q.screen.lt.sm ? 'column' : 'row'" > - - - + :label="$t('profile.personal.first_name')" + /> - - - + :label="$t('profile.personal.last_name')" + />
- - - + :label="$t('profile.employee.email')" + /> - - - + :label="$t('profile.personal.phone_number')" + />
- - - + :label="$t('profile.employee.job_title')" + /> - - - + :label="$t('profile.employee.company')" + />
- - - + :label="$t('profile.employee.supervisor')" + /> - - - + :label="$t('profile.employee.bankroll_id')" + :placeholder="$t('employee_management.can_be_entered_later')" + /> +
+ +
+ + + + +
+
+ +
+ + +
- - + /> - - - - - - - - + />
diff --git a/src/modules/employee-list/components/employee-list-table-item.vue b/src/modules/employee-list/components/employee-list-table-item.vue index a94d980..1aef68e 100644 --- a/src/modules/employee-list/components/employee-list-table-item.vue +++ b/src/modules/employee-list/components/employee-list-table-item.vue @@ -4,7 +4,7 @@ > import { useQuasar } from 'quasar'; import type { EmployeeProfile } from 'src/modules/employee-list/models/employee-profile.models'; -import { ref } from 'vue'; + import { ref } from 'vue'; const q = useQuasar(); const is_mouseover = ref(false); @@ -22,7 +22,7 @@ import { ref } from 'vue'; const getItemStyle = (): string => { const active_style = row.last_work_day === null ? '' : 'opacity: 0.6;'; const dark_style = q.dark.isActive ? 'border: 2px solid var(--q-accent);' : ''; - const hover_style = isManagement ? (is_mouseover.value ? `transform: scale(1.1); z-index: 2;` :'transform: scale(1) skew(0)') : ''; + const hover_style = isManagement ? (is_mouseover.value ? `transform: scale(1.1); z-index: 2;` : 'transform: scale(1) skew(0)') : ''; return `${active_style} ${dark_style} ${hover_style}`; } @@ -36,7 +36,7 @@ import { ref } from 'vue';
-
{{ row.job_title }}
+ +
{{ row.job_title }}
- {{ row.email }} +
+ + {{ row.phone_number }} +
+ + extension: + + {{ row.email }}
- \ No newline at end of file diff --git a/src/modules/employee-list/components/employee-list-table.vue b/src/modules/employee-list/components/employee-list-table.vue index 5af2c2a..6b574ce 100644 --- a/src/modules/employee-list/components/employee-list-table.vue +++ b/src/modules/employee-list/components/employee-list-table.vue @@ -19,7 +19,7 @@ const is_management = auth_store.user?.user_module_access.includes('employee_management') ?? false; - const visible_columns = ref<(keyof EmployeeProfile)[]>(['first_name', 'email', 'job_title', 'last_work_day']); + const visible_columns = ref<(keyof EmployeeProfile)[]>(['first_name', 'email', 'job_title', 'phone_number', 'last_work_day']); const table_grid_container = ref(null); @@ -28,6 +28,10 @@ hide_inactive_users: true, }); + const { maxHeight } = defineProps<{ + maxHeight: number; + }>(); + const filterEmployeeRows = (rows: readonly EmployeeProfile[], terms: EmployeeListFilters, _cols: readonly QTableColumn[]): EmployeeProfile[] => { let result = [...rows]; @@ -63,7 +67,7 @@