fixed reactive editing of tasks

This commit is contained in:
2025-07-07 17:54:42 +02:00
parent 7b2ccd47f4
commit 91e0bf315d
3 changed files with 18 additions and 1 deletions

View File

@@ -17,6 +17,7 @@ const showTaskEditModal = ref(false);
const taskFormModalInput = ref<Partial<Task>>({});
const showDeleteModal = ref(false);
const deleteContext = ref<Task>();
const editContext = ref<Task>();
const date = defineModel<DateTime>('date', { required: true })
const tasks = defineModel<Task[]>('tasks', { required: true })
@@ -115,6 +116,7 @@ function deleteTask() {
}
function editTask(task: Task) {
editContext.value?.updateWithOtherTask(task)
emits('editTask', task)
}
@@ -124,6 +126,7 @@ function openTaskFormModal(task: Partial<Task>) {
}
function openTaskEditModal(task: Task) {
editContext.value = task
taskFormModalInput.value = task
showTaskEditModal.value = true
}
@@ -215,5 +218,7 @@ function scheduleTask(task: Task) {
</div>
</UCard>
</template>
<style scoped></style>
<style scoped></style>
<style scoped></style>
<style scoped></style>

View File

@@ -18,6 +18,7 @@ const createModalOpened = ref(false)
const editModalOpened = ref(false)
const deleteModalOpened = ref(false)
const editTaskModalOpened = ref(false)
const editTaskContext = ref<Task>()
const taskFormModalInput = ref<Partial<Task>>({})
const deleteContext = ref<{ event: Event }>()
@@ -143,6 +144,7 @@ function create(simple: SimpleEvent) {
function openEditModal(event: Event) {
if (event.task !== undefined) {
taskFormModalInput.value = event.task
editTaskContext.value = event.task
editTaskModalOpened.value = true
} else {
editInput.value = event.toSimple()
@@ -159,6 +161,7 @@ function edit(simple: SimpleEvent) {
function editTask(task: Task) {
editTaskModalOpened.value = false
editTaskContext.value?.updateWithOtherTask(task)
emits('edit-task', task)
}

View File

@@ -56,6 +56,15 @@ export class Task {
this
)
}
updateWithOtherTask(otherTask: Task) {
this.title = otherTask.title
this.description = otherTask.description
this.done = otherTask.done
this.estimated_time = otherTask.estimated_time
this.due_date = otherTask.due_date
this.scheduled_at = otherTask.scheduled_at
}
}
export type SimpleTask = {