feat(views): save task position in list view

This commit is contained in:
kolaente 2024-03-16 11:54:59 +01:00
parent f364f3bec8
commit 4170f5468f
Signed by untrusted user: konrad
GPG Key ID: F40E70337AB24C9B

View File

@ -118,6 +118,8 @@ import {useTaskStore} from '@/stores/tasks'
import type {IProject} from '@/modelTypes/IProject' import type {IProject} from '@/modelTypes/IProject'
import type {IProjectView} from '@/modelTypes/IProjectView' import type {IProjectView} from '@/modelTypes/IProjectView'
import TaskPositionService from '@/services/taskPosition'
import TaskPositionModel from '@/models/taskPosition'
const { const {
projectId, projectId,
@ -145,6 +147,8 @@ const {
sortByParam, sortByParam,
} = useTaskList(() => projectId, () => view.id, {position: 'asc'}) } = useTaskList(() => projectId, () => view.id, {position: 'asc'})
const taskPositionService = ref(new TaskPositionService())
const tasks = ref<ITask[]>([]) const tasks = ref<ITask[]>([])
watch( watch(
allTasks, allTasks,
@ -234,13 +238,17 @@ async function saveTaskPosition(e) {
const taskBefore = tasks.value[e.newIndex - 1] ?? null const taskBefore = tasks.value[e.newIndex - 1] ?? null
const taskAfter = tasks.value[e.newIndex + 1] ?? null const taskAfter = tasks.value[e.newIndex + 1] ?? null
const newTask = { const position = calculateItemPosition(taskBefore !== null ? taskBefore.position : null, taskAfter !== null ? taskAfter.position : null)
...task,
position: calculateItemPosition(taskBefore !== null ? taskBefore.position : null, taskAfter !== null ? taskAfter.position : null),
}
const updatedTask = await taskStore.update(newTask) await taskPositionService.value.update(new TaskPositionModel({
tasks.value[e.newIndex] = updatedTask position,
projectViewId: view.id,
taskId: task.id,
}))
tasks.value[e.newIndex] = {
...task,
position,
}
} }
function prepareFiltersAndLoadTasks() { function prepareFiltersAndLoadTasks() {