minor bug fix with schedule preview not showing up in the schedule tab when looking at the details of an employee who has a schedule preset assigned to them.
96 lines
3.3 KiB
TypeScript
96 lines
3.3 KiB
TypeScript
/* eslint-disable */
|
|
import { ref } from "vue";
|
|
import { defineStore } from "pinia";
|
|
import { SchedulePresetsService } from "src/modules/employee-list/services/schedule-presets-service";
|
|
import { SchedulePreset, SchedulePresetFrontend } from "src/modules/employee-list/models/schedule-presets.models";
|
|
|
|
|
|
export const useSchedulePresetsStore = defineStore('schedule_presets_store', () => {
|
|
const schedule_presets = ref<SchedulePreset[]>([new SchedulePreset]);
|
|
const current_schedule_preset = ref<SchedulePresetFrontend>(new SchedulePresetFrontend);
|
|
const is_manager_open = ref(false);
|
|
|
|
const setCurrentSchedulePreset = (preset_id: number) => {
|
|
if (preset_id === -1) {
|
|
current_schedule_preset.value = new SchedulePresetFrontend;
|
|
return;
|
|
}
|
|
current_schedule_preset.value = new SchedulePresetFrontend(schedule_presets.value.find(preset => preset.id === preset_id)!)
|
|
};
|
|
|
|
const openSchedulePresetManager = (preset_id: number) => {
|
|
if (preset_id === -1) {
|
|
current_schedule_preset.value = new SchedulePresetFrontend;
|
|
} else {
|
|
setCurrentSchedulePreset(preset_id);
|
|
}
|
|
|
|
is_manager_open.value = true;
|
|
};
|
|
|
|
const createSchedulePreset = async (preset: SchedulePreset): Promise<boolean> => {
|
|
try {
|
|
const response = await SchedulePresetsService.createSchedulePresets(preset);
|
|
return response.success;
|
|
} catch (error) {
|
|
console.error('DEV ERROR || error while creating schedule preset: ', error);
|
|
return false;
|
|
}
|
|
};
|
|
|
|
const updateSchedulePreset = async (preset: SchedulePreset): Promise<boolean> => {
|
|
try {
|
|
const response = await SchedulePresetsService.updateSchedulePresets(preset);
|
|
return response.success;
|
|
} catch (error) {
|
|
console.error('DEV ERROR || error while updating schedule preset: ', error);
|
|
return false;
|
|
}
|
|
|
|
};
|
|
|
|
const deleteSchedulePreset = async (preset_id: number): Promise<boolean> => {
|
|
try {
|
|
await SchedulePresetsService.deleteSchedulePresets(preset_id);
|
|
return true;
|
|
} catch (error) {
|
|
console.error('DEV ERROR || error while deleting schedule preset: ', error);
|
|
return false
|
|
}
|
|
};
|
|
|
|
const findSchedulePresetList = async (): Promise<boolean> => {
|
|
try {
|
|
const response = await SchedulePresetsService.getSchedulePresetsList();
|
|
if (response.success && response.data) schedule_presets.value = response.data;
|
|
|
|
return response.success;
|
|
} catch (error) {
|
|
console.error('DEV ERROR || error while searching for schedule presets: ', error);
|
|
|
|
return false
|
|
}
|
|
};
|
|
|
|
const applySchedulePreset = async (): Promise<boolean> => {
|
|
try {
|
|
return true;
|
|
} catch (error) {
|
|
console.error('DEV ERROR || error while building schedule: ', error);
|
|
return false
|
|
}
|
|
};
|
|
|
|
return {
|
|
schedule_presets,
|
|
current_schedule_preset,
|
|
is_manager_open,
|
|
setCurrentSchedulePreset,
|
|
openSchedulePresetManager,
|
|
createSchedulePreset,
|
|
updateSchedulePreset,
|
|
deleteSchedulePreset,
|
|
findSchedulePresetList,
|
|
applySchedulePreset,
|
|
}
|
|
}) |