diff --git a/src/modelTypes/IBucket.ts b/src/modelTypes/IBucket.ts index 196628dcc..0f7ce12da 100644 --- a/src/modelTypes/IBucket.ts +++ b/src/modelTypes/IBucket.ts @@ -8,7 +8,6 @@ export interface IBucket extends IAbstract { projectId: number limit: number tasks: ITask[] - isDoneBucket: boolean position: number count: number diff --git a/src/modelTypes/IProject.ts b/src/modelTypes/IProject.ts index 20f46d6ae..18cce18a2 100644 --- a/src/modelTypes/IProject.ts +++ b/src/modelTypes/IProject.ts @@ -19,6 +19,7 @@ export interface IProject extends IAbstract { position: number backgroundBlurHash: string parentProjectId: number + doneBucketId: number created: Date updated: Date diff --git a/src/models/bucket.ts b/src/models/bucket.ts index 183736d7e..68efad161 100644 --- a/src/models/bucket.ts +++ b/src/models/bucket.ts @@ -12,7 +12,6 @@ export default class BucketModel extends AbstractModel implements IBuck projectId = '' limit = 0 tasks: ITask[] = [] - isDoneBucket = false position = 0 count = 0 diff --git a/src/models/project.ts b/src/models/project.ts index 17da3d798..c705c9838 100644 --- a/src/models/project.ts +++ b/src/models/project.ts @@ -23,6 +23,7 @@ export default class ProjectModel extends AbstractModel implements IPr position = 0 backgroundBlurHash = '' parentProjectId = 0 + doneBucketId = 0 created: Date = null updated: Date = null diff --git a/src/views/project/ProjectKanban.vue b/src/views/project/ProjectKanban.vue index ffb76d760..6e3b3b3df 100644 --- a/src/views/project/ProjectKanban.vue +++ b/src/views/project/ProjectKanban.vue @@ -37,7 +37,7 @@ >
@@ -98,7 +98,7 @@ @click.stop="toggleDoneBucket(bucket)" v-tooltip="$t('project.kanban.doneBucketHintExtended')" > - + {{ $t('project.kanban.doneBucket') }} @@ -251,6 +251,7 @@ import {calculateItemPosition} from '@/helpers/calculateItemPosition' import {isSavedFilter} from '@/services/savedFilter' import {success} from '@/message' +import {useProjectStore} from '@/stores/projects' const DRAG_OPTIONS = { // sortable options @@ -268,6 +269,7 @@ const {t} = useI18n({useScope: 'global'}) const baseStore = useBaseStore() const kanbanStore = useKanbanStore() const taskStore = useTaskStore() +const projectStore = useProjectStore() const taskContainerRefs = ref<{[id: IBucket['id']]: HTMLElement}>({}) @@ -422,10 +424,9 @@ async function updateTaskPosition(e) { ) if ( oldBucket !== undefined && // This shouldn't actually be `undefined`, but let's play it safe. - newBucket.id !== oldBucket.id && - newBucket.isDoneBucket !== oldBucket.isDoneBucket + newBucket.id !== oldBucket.id ) { - newTask.done = newBucket.isDoneBucket + newTask.done = project.value.doneBucketId === newBucket.id } if ( oldBucket !== undefined && // This shouldn't actually be `undefined`, but let's play it safe. @@ -597,9 +598,13 @@ function dragstart(bucket: IBucket) { } async function toggleDoneBucket(bucket: IBucket) { - await kanbanStore.updateBucket({ - ...bucket, - isDoneBucket: !bucket.isDoneBucket, + const doneBucketId = project.value.doneBucketId === bucket.id + ? 0 + : bucket.id + + await projectStore.updateProject({ + ...project.value, + doneBucketId, }) success({message: t('project.kanban.doneBucketSavedSuccess')}) }