edit, delete, move events/task

This commit is contained in:
CoGomu
2025-07-06 17:04:10 +02:00
parent 5cd9725f80
commit 4ead1cc0b9
4 changed files with 21 additions and 5 deletions

View File

@@ -41,7 +41,7 @@ router.post('/', async (req, res) => {
res.status(201).json(returnedEvent); res.status(201).json(returnedEvent);
}); });
router.put('/', (req, res) => { router.put('/:id', async (req, res) => {
const id = parseInt(req.params['id']); const id = parseInt(req.params['id']);
const updatedEvent: Partial<typeof event.$inferSelect> = req.body const updatedEvent: Partial<typeof event.$inferSelect> = req.body
@@ -50,7 +50,7 @@ router.put('/', (req, res) => {
res.status(400).send({ error: 'Needs an id' }); res.status(400).send({ error: 'Needs an id' });
return; return;
} }
db.update(event).set(updatedEvent).where(eq(event.id, id)) await db.update(event).set(updatedEvent).where(eq(event.id, id))
res.status(200).json(updatedEvent); res.status(200).json(updatedEvent);
}); });

View File

@@ -12,13 +12,15 @@ const tasks = defineModel<Task[]>('tasks', { required: true })
const emits = defineEmits<{ const emits = defineEmits<{
(e: 'createEvent', event: Event): void (e: 'createEvent', event: Event): void
(e: 'edit-task', task: Task): void (e: 'edit-task', task: Task): void
(e: 'edit-event', event: Event): void
(e: 'delete-event', id: number): void
}>() }>()
</script> </script>
<template> <template>
<UCard class="flex grow" :ui="{ body: 'w-full h-full' }"> <UCard class="flex grow" :ui="{ body: 'w-full h-full' }">
<Calendar @create="(event) => emits('createEvent', event)" @edit-task="(task) => emits('edit-task', task)" v-model:events="events" v-model:date="date" , <Calendar @create="(event) => emits('createEvent', event)" @edit-task="(task) => emits('edit-task', task)" @edit="(event) => emits('edit-event', event)" @delete="(event) => emits('delete-event', event.id ?? -1)" v-model:events="events" v-model:date="date" ,
v-model:dragged-task="draggedTask" v-model:tasks="tasks"> v-model:dragged-task="draggedTask" v-model:tasks="tasks">
</Calendar> </Calendar>
</UCard> </UCard>

View File

@@ -159,7 +159,9 @@ function deleteEvent() {
} }
function moveEvent(event: Event) { function moveEvent(event: Event) {
emits('edit', event) if (event.task !== undefined) {
emits('edit-task', event.task)
} else emits('edit', event)
} }
</script> </script>

View File

@@ -37,12 +37,24 @@ async function postTask(task: Task) {
task.id = createdTask.data.id task.id = createdTask.data.id
} }
async function deleteEvent(id: number) {
console.log('deleting Event')
await axios.delete(`/events/${id}`)
await refresh()
}
async function deleteTask(id: number) { async function deleteTask(id: number) {
console.log('deleting Task') console.log('deleting Task')
await axios.delete(`/tasks/${id}`) await axios.delete(`/tasks/${id}`)
await refresh() await refresh()
} }
async function putEvent(event: Event) {
console.log('editing event')
await axios.put(`/events/${event.id}`, event)
await refresh()
}
async function putTask(task: Task) { async function putTask(task: Task) {
console.log('editing task') console.log('editing task')
await axios.put(`/tasks/${task.id}`, task) await axios.put(`/tasks/${task.id}`, task)
@@ -60,7 +72,7 @@ function scheduleTask(task: Task) {
<Sidebar v-if="tasks !== null" v-model:tasks="tasks" v-model:date="date" @create-task="postTask" <Sidebar v-if="tasks !== null" v-model:tasks="tasks" v-model:date="date" @create-task="postTask"
@delete-task="deleteTask" @schedule-task="scheduleTask" @edit-task="putTask"/> @delete-task="deleteTask" @schedule-task="scheduleTask" @edit-task="putTask"/>
<MainContent v-if="events !== null" v-model:events="events" v-model:date="date" <MainContent v-if="events !== null" v-model:events="events" v-model:date="date"
v-model:dragged-task="draggedTask" v-model:tasks="tasks" @create-event="postEvent" @edit-task="putTask"/> v-model:dragged-task="draggedTask" v-model:tasks="tasks" @create-event="postEvent" @edit-task="putTask" @edit-event="putEvent" @delete-event="deleteEvent"/>
</div> </div>
</template> </template>