diff --git a/src/i18n/en-ca/index.ts b/src/i18n/en-ca/index.ts index 72c0e4b..575f88c 100644 --- a/src/i18n/en-ca/index.ts +++ b/src/i18n/en-ca/index.ts @@ -21,9 +21,13 @@ export default { access_label: "access", details_label: "details", schedule_label: "schedule", + enter_delete_input: "type 'DELETE' to remove", schedule_presets: { preset_list_placeholder: "Select a schedule", preset_name_placeholder: "schedule preset name", + delete_warning: "", + delete_warning_employee_1: "This schedule is used by", + delete_warning_employee_2: "Deleting this preset will not affect previous timesheets, but they will no longer be able to apply this preset to their timesheets going forward.", }, module_access: { dashboard: "Dashboard", diff --git a/src/i18n/fr-ca/index.ts b/src/i18n/fr-ca/index.ts index 31a4b7e..c1869a1 100644 --- a/src/i18n/fr-ca/index.ts +++ b/src/i18n/fr-ca/index.ts @@ -21,9 +21,13 @@ export default { access_label: "accès", details_label: "détails", schedule_label: "horaire", + enter_delete_input: "tappez 'SUPPRIMER' pour confirmer", schedule_presets: { preset_list_placeholder: "Sélectionner un horaire", preset_name_placeholder: "nom de l'horaire", + delete_warning: "Êtes-vous certain de vouloir supprimer cet horaire?", + delete_warning_employee_1: "Cet horaire est présentement utilisé par", + delete_warning_employee_2: "La suppression n'affectera pas leurs feuilles de temps antérieures, mais ils ne pourront plus appliquer cet horaire à leurs feuilles de temps à partir de maintenant.", }, module_access: { dashboard: "Accueil", diff --git a/src/modules/employee-list/components/add-modify-dialog-schedule-preview.vue b/src/modules/employee-list/components/add-modify-dialog-schedule-preview.vue index 65c761a..631909e 100644 --- a/src/modules/employee-list/components/add-modify-dialog-schedule-preview.vue +++ b/src/modules/employee-list/components/add-modify-dialog-schedule-preview.vue @@ -2,7 +2,7 @@ setup lang="ts" > - import { date } from 'quasar'; + // import { date } from 'quasar'; import { useSchedulePresetsStore } from 'src/stores/schedule-presets.store'; const schedule_preset_store = useSchedulePresetsStore(); @@ -27,7 +27,7 @@ import { useSchedulePresetsStore } from 'src/stores/schedule-presets.store'; {{ $t(`shared.weekday.${weekday.day.toLowerCase()}`) }}
diff --git a/src/modules/employee-list/components/add-modify-dialog-schedule.vue b/src/modules/employee-list/components/add-modify-dialog-schedule.vue index a156bfd..9bedebd 100644 --- a/src/modules/employee-list/components/add-modify-dialog-schedule.vue +++ b/src/modules/employee-list/components/add-modify-dialog-schedule.vue @@ -3,13 +3,14 @@ lang="ts" > import HorizontalSlideTransition from 'src/modules/shared/components/horizontal-slide-transition.vue'; - import SchedulePresetsDialog from 'src/modules/employee-list/components/schedule_presets_dialog.vue'; + import SchedulePresetsDialog from 'src/modules/employee-list/components/schedule-presets-dialog.vue'; import AddModifyDialogSchedulePreview from './add-modify-dialog-schedule-preview.vue'; - import { onMounted, ref } from 'vue'; + import { onMounted, ref, watch } from 'vue'; import { useSchedulePresetsStore } from 'src/stores/schedule-presets.store'; import { useEmployeeStore } from 'src/stores/employee-store'; -import { useEmployeeListApi } from '../composables/use-employee-api'; + import { useEmployeeListApi } from '../composables/use-employee-api'; + import type { PresetManagerMode } from 'src/modules/employee-list/models/schedule-presets.models'; const schedule_preset_store = useSchedulePresetsStore(); const employee_store = useEmployeeStore(); @@ -17,6 +18,7 @@ import { useEmployeeListApi } from '../composables/use-employee-api'; const preset_options = ref<{ label: string, value: number }[]>([]); const current_preset = ref<{ label: string | undefined, value: number }>({ label: undefined, value: -1 }); + const manager_watcher = ref(schedule_preset_store.is_manager_open); const getPresetOptions = (): { label: string, value: number }[] => { const options = schedule_preset_store.schedule_presets.map(preset => { return { label: preset.name, value: preset.id } }); @@ -24,15 +26,30 @@ import { useEmployeeListApi } from '../composables/use-employee-api'; return options; }; - onMounted(() => { + const onClickSchedulePresetManager = (mode: PresetManagerMode, preset_id?: number) => { + schedule_preset_store.schedule_preset_dialog_mode = mode; + schedule_preset_store.openSchedulePresetManager(preset_id ?? current_preset.value.value); + } + + const loadSelectedPresetOption = () => { preset_options.value = getPresetOptions(); const current_option = preset_options.value.find(option => option.value === employee_store.employee.preset_id); current_preset.value = current_option ?? { label: undefined, value: -1 }; + schedule_preset_store.setCurrentSchedulePreset(current_preset.value.value); + }; + + onMounted(() => { + loadSelectedPresetOption(); }); + + watch(manager_watcher, loadSelectedPresetOption)