From 818f31c220e6f8300fd790e3a07d3c8d17e6871f Mon Sep 17 00:00:00 2001 From: kolaente Date: Wed, 13 Dec 2023 19:15:48 +0100 Subject: [PATCH] fix(tasks): update sub task relations in list view after they were created Resolves https://kolaente.dev/vikunja/frontend/issues/3853 --- src/components/tasks/add-task.vue | 7 ++++++- src/views/project/ProjectList.vue | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/components/tasks/add-task.vue b/src/components/tasks/add-task.vue index dcaf90884..4e0595fe2 100644 --- a/src/components/tasks/add-task.vue +++ b/src/components/tasks/add-task.vue @@ -149,13 +149,15 @@ async function addTask() { await Promise.all(newTasks) const taskRelationService = new TaskRelationService() + const allParentTasks = tasksToCreate.filter(t => t.parent !== null).map(t => t.parent) const relations = tasksToCreate.map(async t => { const createdTask = createdTasks[t.title] if (typeof createdTask === 'undefined') { return } - if (t.parent === null) { + const isParent = allParentTasks.includes(t.title) + if (t.parent === null && !isParent) { emit('taskAdded', createdTask) return } @@ -175,6 +177,9 @@ async function addTask() { // we're only emitting here so that the relation shows up in the project emit('taskAdded', createdTask) + createdParentTask.relatedTasks[RELATION_KIND.SUBTASK] = [createdTask] + emit('taskAdded', createdParentTask) + return rel }) await Promise.all(relations) diff --git a/src/views/project/ProjectList.vue b/src/views/project/ProjectList.vue index c055a6317..870c446af 100644 --- a/src/views/project/ProjectList.vue +++ b/src/views/project/ProjectList.vue @@ -241,9 +241,9 @@ function updateTaskList(task: ITask) { loadTasks() } else { - tasks.value = [ + allTasks.value = [ task, - ...tasks.value, + ...allTasks.value, ] }