1
0

fix(views): fetch buckets through view

This commit is contained in:
kolaente 2024-03-15 22:49:37 +01:00
parent cb111df2b7
commit ca0550acea
No known key found for this signature in database
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 {IAbstract} from './IAbstract'
import type {IUser} from './IUser' import type {IUser} from './IUser'
import type {ITask} from './ITask' import type {ITask} from './ITask'
import type {IProjectView} from '@/modelTypes/IProjectView'
export interface IBucket extends IAbstract { export interface IBucket extends IAbstract {
id: number id: number
@ -10,6 +11,7 @@ export interface IBucket extends IAbstract {
tasks: ITask[] tasks: ITask[]
position: number position: number
count: number count: number
projectViewId: IProjectView['id']
createdBy: IUser createdBy: IUser
created: Date created: Date

View File

@ -226,15 +226,15 @@ export const useKanbanStore = defineStore('kanban', () => {
allTasksLoadedForBucket.value[bucketId] = true 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) 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 // Clear everything to prevent having old buckets in the project if loading the buckets from this project takes a few moments
setBuckets([]) setBuckets([])
const bucketService = new BucketService() const taskCollectionService = new TaskCollectionService()
try { try {
const newBuckets = await bucketService.getAll({projectId}, { const newBuckets = await taskCollectionService.getAll({projectId, viewId}, {
...params, ...params,
per_page: TASKS_PER_BUCKET, per_page: TASKS_PER_BUCKET,
}) })
@ -311,7 +311,7 @@ export const useKanbanStore = defineStore('kanban', () => {
const response = await bucketService.delete(bucket) const response = await bucketService.delete(bucket)
removeBucket(bucket) removeBucket(bucket)
// We reload all buckets because tasks are being moved from the deleted 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 return response
} finally { } finally {
cancel() cancel()

View File

@ -396,13 +396,14 @@ watch(
() => ({ () => ({
params: params.value, params: params.value,
projectId, projectId,
viewId: view.id,
}), }),
({params}) => { ({params}) => {
if (projectId === undefined || Number(projectId) === 0) { if (projectId === undefined || Number(projectId) === 0) {
return return
} }
collapsedBuckets.value = getCollapsedBucketState(projectId) collapsedBuckets.value = getCollapsedBucketState(projectId)
kanbanStore.loadBucketsForProject({projectId, params}) kanbanStore.loadBucketsForProject(projectId, view.id, params)
}, },
{ {
immediate: true, immediate: true,