From ed5feee33aa7471312c740e3db7a75c6546c17bc Mon Sep 17 00:00:00 2001 From: kolaente Date: Wed, 17 Jul 2024 13:56:43 +0200 Subject: [PATCH] fix(kanban): move task to done bucket when it was marked done from the task detail view --- .../src/components/project/views/ProjectKanban.vue | 7 +++---- frontend/src/stores/kanban.ts | 7 +++++++ frontend/src/views/tasks/TaskDetailView.vue | 14 ++++++++++++-- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/frontend/src/components/project/views/ProjectKanban.vue b/frontend/src/components/project/views/ProjectKanban.vue index 06d72e131..14ad3983e 100644 --- a/frontend/src/components/project/views/ProjectKanban.vue +++ b/frontend/src/components/project/views/ProjectKanban.vue @@ -130,7 +130,8 @@ { } } } + + function moveTaskToBucket(task: ITask, bucketId: IBucket['id']) { + removeTaskInBucket(task) + task.bucketId = bucketId + addTaskToBucket(task) + } function addTaskToBucket(task: ITask) { const bucketIndex = findIndexById(buckets.value, task.bucketId) @@ -330,6 +336,7 @@ export const useKanbanStore = defineStore('kanban', () => { setTaskInBucket, addTaskToBucket, removeTaskInBucket, + moveTaskToBucket, loadBucketsForProject, loadNextTasksForBucket, createBucket, diff --git a/frontend/src/views/tasks/TaskDetailView.vue b/frontend/src/views/tasks/TaskDetailView.vue index 023d33756..f7c625aea 100644 --- a/frontend/src/views/tasks/TaskDetailView.vue +++ b/frontend/src/views/tasks/TaskDetailView.vue @@ -625,6 +625,7 @@ import {scrollIntoView} from '@/helpers/scrollIntoView' import {useAttachmentStore} from '@/stores/attachments' import {useTaskStore} from '@/stores/tasks' import {useKanbanStore} from '@/stores/kanban' +import {useBaseStore} from '@/stores/base' import {useTitle} from '@/composables/useTitle' @@ -650,6 +651,7 @@ const router = useRouter() const {t} = useI18n({useScope: 'global'}) const projectStore = useProjectStore() +const baseStore = useBaseStore() const attachmentStore = useAttachmentStore() const taskStore = useTaskStore() const kanbanStore = useKanbanStore() @@ -872,7 +874,7 @@ async function deleteTask() { router.push({name: 'project.index', params: {projectId: task.value.projectId}}) } -function toggleTaskDone() { +async function toggleTaskDone() { const newTask = { ...task.value, done: !task.value.done, @@ -882,10 +884,18 @@ function toggleTaskDone() { playPopSound() } - saveTask( + await saveTask( newTask, toggleTaskDone, ) + + if(task.value.done) { + baseStore.currentProject?.views.forEach(v => { + if (v.doneBucketId !== 0) { + kanbanStore.moveTaskToBucket(task.value, v.doneBucketId) + } + }) + } } async function changeProject(project: IProject) {