edit, delete, move events/task
This commit is contained in:
@@ -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);
|
||||
});
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user