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