1
0

feat(views): crud in frontend

This commit is contained in:
kolaente
2024-03-18 13:56:44 +01:00
parent 433584813a
commit 434b1ea0e8
10 changed files with 476 additions and 12 deletions

View File

@ -18,6 +18,7 @@ import ProjectModel from '@/models/project'
import {success} from '@/message'
import {useBaseStore} from '@/stores/base'
import {getSavedFilterIdFromProjectId} from '@/services/savedFilter'
import type {IProjectView} from '@/modelTypes/IProjectView'
const {add, remove, search, update} = createNewIndexer('projects', ['title', 'description'])
@ -210,7 +211,24 @@ export const useProjectStore = defineStore('project', () => {
project,
]
}
function setProjectView(view: IProjectView) {
const viewPos = projects.value[view.projectId].views.findIndex(v => v.id === view.id)
if (viewPos !== -1) {
projects.value[view.projectId].views[viewPos] = view
return
}
projects.value[view.projectId].views.push(view)
}
function removeProjectView(projectId: IProject['id'], viewId: IProjectView['id']) {
const viewPos = projects.value[projectId].views.findIndex(v => v.id === viewId)
if (viewPos !== -1) {
projects.value[projectId].views.splice(viewPos, 1)
}
}
return {
isLoading: readonly(isLoading),
projects: readonly(projects),
@ -235,6 +253,8 @@ export const useProjectStore = defineStore('project', () => {
updateProject,
deleteProject,
getAncestors,
setProjectView,
removeProjectView,
}
})