diff --git a/frontend/src/views/project/ProjectList.vue b/frontend/src/views/project/ProjectList.vue index a23f04091..31cd453b8 100644 --- a/frontend/src/views/project/ProjectList.vue +++ b/frontend/src/views/project/ProjectList.vue @@ -73,7 +73,7 @@ > @@ -118,6 +118,8 @@ import {useTaskStore} from '@/stores/tasks' import type {IProject} from '@/modelTypes/IProject' import type {IProjectView} from '@/modelTypes/IProjectView' +import TaskPositionService from '@/services/taskPosition' +import TaskPositionModel from '@/models/taskPosition' const { projectId, @@ -145,6 +147,8 @@ const { sortByParam, } = useTaskList(() => projectId, () => view.id, {position: 'asc'}) +const taskPositionService = ref(new TaskPositionService()) + const tasks = ref([]) watch( allTasks, @@ -234,13 +238,17 @@ async function saveTaskPosition(e) { const taskBefore = tasks.value[e.newIndex - 1] ?? null const taskAfter = tasks.value[e.newIndex + 1] ?? null - const newTask = { - ...task, - position: calculateItemPosition(taskBefore !== null ? taskBefore.position : null, taskAfter !== null ? taskAfter.position : null), - } + const position = calculateItemPosition(taskBefore !== null ? taskBefore.position : null, taskAfter !== null ? taskAfter.position : null) - const updatedTask = await taskStore.update(newTask) - tasks.value[e.newIndex] = updatedTask + await taskPositionService.value.update(new TaskPositionModel({ + position, + projectViewId: view.id, + taskId: task.id, + })) + tasks.value[e.newIndex] = { + ...task, + position, + } } function prepareFiltersAndLoadTasks() {