fix(views): fetch buckets through view

This commit is contained in:
kolaente 2024-03-15 22:49:37 +01:00
parent cb111df2b7
commit ca0550acea
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
3 changed files with 8 additions and 5 deletions

View File

@ -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

View File

@ -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()

View File

@ -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,