diff --git a/web/components/ui/MainContent.vue b/web/components/ui/MainContent.vue index f10add7..5e778c7 100644 --- a/web/components/ui/MainContent.vue +++ b/web/components/ui/MainContent.vue @@ -14,14 +14,24 @@ const emits = defineEmits<{ (e: 'edit-task', task: Task): void (e: 'edit-event', event: Event): void (e: 'delete-event', id: number): void + (e: 'delete-task', id: number): void }>() +function deleteItem(event: Event) { + if (event.task !== undefined) { + emits('delete-task', event.task.id ?? -1) + } else { + emits('delete-event', event.id ?? -1) + } +} + diff --git a/web/components/ui/calendar/Calendar.vue b/web/components/ui/calendar/Calendar.vue index 5e5da0b..b2180c4 100644 --- a/web/components/ui/calendar/Calendar.vue +++ b/web/components/ui/calendar/Calendar.vue @@ -12,11 +12,13 @@ const date = defineModel('date', { required: true }) const draggedTask = defineModel('draggedTask', { required: true }) const draggedEvent = ref() const createInput = ref>({}) -const createModalOpened = ref(false) const editInput = ref>({}) const editContext = ref<{ event: Event }>() +const createModalOpened = ref(false) const editModalOpened = ref(false) const deleteModalOpened = ref(false) +const editTaskModalOpened = ref(false) +const taskFormModalInput = ref>({}) const deleteContext = ref<{ event: Event }>() type Day = { @@ -86,6 +88,22 @@ const days = computed(() => { }) }) +const deleteTitle = computed(() => { + if (deleteContext.value === undefined || deleteContext.value.event.task === undefined) { + return 'Delete Event' + } else { + return 'Delete Task' + } +}) + +const deleteDescription = computed(() => { + if (deleteContext.value === undefined || deleteContext.value.event.task === undefined) { + return 'Are you sure you want to delete this event?' + } else { + return 'Are you sure you want to delete this task?' + } +}) + const emits = defineEmits<{ (e: 'create', event: Event): void (e: 'edit', event: Event): void @@ -123,9 +141,14 @@ function create(simple: SimpleEvent) { } function openEditModal(event: Event) { - editInput.value = event.toSimple() - editContext.value = { event: event } - editModalOpened.value = true + if (event.task !== undefined) { + taskFormModalInput.value = event.task + editTaskModalOpened.value = true + } else { + editInput.value = event.toSimple() + editContext.value = { event: event } + editModalOpened.value = true + } } function edit(simple: SimpleEvent) { @@ -134,11 +157,25 @@ function edit(simple: SimpleEvent) { emits('edit', editContext.value.event) } +function editTask(task: Task) { + editTaskModalOpened.value = false + emits('edit-task', task) +} + function openDeleteModal(event: Event) { deleteContext.value = { event: event } deleteModalOpened.value = true } +function deleteItem() { + if (deleteContext.value === undefined) return + if (deleteContext.value.event.task !== undefined) { + deleteTask() + } else { + deleteEvent() + } +} + function deleteEvent() { if (deleteContext.value === undefined) return emits('delete', deleteContext.value?.event) @@ -158,6 +195,14 @@ function deleteEvent() { deleteModalOpened.value = false } +function deleteTask() { + if (deleteContext.value === undefined || deleteContext.value.event.task === undefined) return + emits('delete', deleteContext.value.event) + tasks.value = tasks.value.filter(t => t.id !== (deleteContext.value?.event.task?.id ?? -1)) + deleteContext.value = undefined + deleteModalOpened.value = false +} + function moveEvent(event: Event) { if (event.task !== undefined) { emits('edit-task', event.task) @@ -173,10 +218,12 @@ function moveEvent(event: Event) { - + + +