From ca0550aceacee7f2ed2948b33fc303c79901c234 Mon Sep 17 00:00:00 2001 From: kolaente Date: Fri, 15 Mar 2024 22:49:37 +0100 Subject: [PATCH] fix(views): fetch buckets through view --- frontend/src/modelTypes/IBucket.ts | 2 ++ frontend/src/stores/kanban.ts | 8 ++++---- frontend/src/views/project/ProjectKanban.vue | 3 ++- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/frontend/src/modelTypes/IBucket.ts b/frontend/src/modelTypes/IBucket.ts index 0f7ce12da..dccd0d842 100644 --- a/frontend/src/modelTypes/IBucket.ts +++ b/frontend/src/modelTypes/IBucket.ts @@ -1,6 +1,7 @@ import type {IAbstract} from './IAbstract' import type {IUser} from './IUser' import type {ITask} from './ITask' +import type {IProjectView} from '@/modelTypes/IProjectView' export interface IBucket extends IAbstract { id: number @@ -10,6 +11,7 @@ export interface IBucket extends IAbstract { tasks: ITask[] position: number count: number + projectViewId: IProjectView['id'] createdBy: IUser created: Date diff --git a/frontend/src/stores/kanban.ts b/frontend/src/stores/kanban.ts index d55102f43..600150c18 100644 --- a/frontend/src/stores/kanban.ts +++ b/frontend/src/stores/kanban.ts @@ -226,15 +226,15 @@ export const useKanbanStore = defineStore('kanban', () => { allTasksLoadedForBucket.value[bucketId] = true } - async function loadBucketsForProject({projectId, params}: { projectId: IProject['id'], params }) { + async function loadBucketsForProject(projectId: IProject['id'], viewId: IProjectView['id'], params) { const cancel = setModuleLoading(setIsLoading) // Clear everything to prevent having old buckets in the project if loading the buckets from this project takes a few moments setBuckets([]) - const bucketService = new BucketService() + const taskCollectionService = new TaskCollectionService() try { - const newBuckets = await bucketService.getAll({projectId}, { + const newBuckets = await taskCollectionService.getAll({projectId, viewId}, { ...params, per_page: TASKS_PER_BUCKET, }) @@ -311,7 +311,7 @@ export const useKanbanStore = defineStore('kanban', () => { const response = await bucketService.delete(bucket) removeBucket(bucket) // We reload all buckets because tasks are being moved from the deleted bucket - loadBucketsForProject({projectId: bucket.projectId, params}) + loadBucketsForProject(bucket.projectId, bucket.projectViewId, params) return response } finally { cancel() diff --git a/frontend/src/views/project/ProjectKanban.vue b/frontend/src/views/project/ProjectKanban.vue index a436366ad..4f928bcb7 100644 --- a/frontend/src/views/project/ProjectKanban.vue +++ b/frontend/src/views/project/ProjectKanban.vue @@ -396,13 +396,14 @@ watch( () => ({ params: params.value, projectId, + viewId: view.id, }), ({params}) => { if (projectId === undefined || Number(projectId) === 0) { return } collapsedBuckets.value = getCollapsedBucketState(projectId) - kanbanStore.loadBucketsForProject({projectId, params}) + kanbanStore.loadBucketsForProject(projectId, view.id, params) }, { immediate: true,