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, ] }