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);
});
router.put('/', (req, res) => {
router.put('/:id', async (req, res) => {
const id = parseInt(req.params['id']);
const updatedEvent: Partial<typeof event.$inferSelect> = req.body
@@ -50,7 +50,7 @@ router.put('/', (req, res) => {
res.status(400).send({ error: 'Needs an id' });
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);
});

View File

@@ -12,13 +12,15 @@ const tasks = defineModel<Task[]>('tasks', { required: true })
const emits = defineEmits<{
(e: 'createEvent', event: Event): void
(e: 'edit-task', task: Task): void
(e: 'edit-event', event: Event): void
(e: 'delete-event', id: number): void
}>()
</script>
<template>
<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">
</Calendar>
</UCard>

View File

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

View File

@@ -37,12 +37,24 @@ async function postTask(task: Task) {
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) {
console.log('deleting Task')
await axios.delete(`/tasks/${id}`)
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) {
console.log('editing 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"
@delete-task="deleteTask" @schedule-task="scheduleTask" @edit-task="putTask"/>
<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>
</template>