diff --git a/web/src/services/api.js b/web/src/services/api.js index e11b53b..298bc87 100644 --- a/web/src/services/api.js +++ b/web/src/services/api.js @@ -122,6 +122,9 @@ export default { deleteTask(id) { return api.delete(`/tasks/${id}`) }, + reassignTask(id, agentId) { + return api.put(`/tasks/${id}/reassign`, { assigned_to: agentId }) + }, // Context/Documentation createDocumentation(data) { diff --git a/web/src/stores/taskStore.js b/web/src/stores/taskStore.js index 96a4443..1ed85c5 100644 --- a/web/src/stores/taskStore.js +++ b/web/src/stores/taskStore.js @@ -145,6 +145,25 @@ export const useTaskStore = defineStore('tasks', () => { } } + const reassignTask = async (id, agentId) => { + error.value = null + try { + const updatedTask = await api.reassignTask(id, agentId) + const index = tasks.value.findIndex(t => t.id === id) + if (index !== -1) { + tasks.value[index] = updatedTask + } + if (currentTask.value?.id === id) { + currentTask.value = updatedTask + } + return updatedTask + } catch (err) { + error.value = err.message || 'Failed to reassign task' + console.error('Error reassigning task:', err) + throw err + } + } + const clearError = () => { error.value = null } @@ -162,6 +181,7 @@ export const useTaskStore = defineStore('tasks', () => { updateTask, updateTaskStatus, deleteTask, + reassignTask, clearError } }) diff --git a/web/src/views/ProjectDetail.vue b/web/src/views/ProjectDetail.vue index fe67135..91b267c 100644 --- a/web/src/views/ProjectDetail.vue +++ b/web/src/views/ProjectDetail.vue @@ -978,28 +978,7 @@ get_project_contexts() { if (!reassigningTask.value) return try { - const response = await fetch(`/api/tasks/${reassignmentData.taskId}/reassign`, { - method: 'PUT', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify({ - assigned_to: reassignmentData.agentId - }) - }) - - if (!response.ok) { - const error = await response.text() - throw new Error(error) - } - - const updatedTask = await response.json() - - // Update the task store with the new task data - const taskIndex = taskStore.tasks.findIndex(t => t.id === updatedTask.id) - if (taskIndex !== -1) { - taskStore.tasks[taskIndex] = updatedTask - } + await taskStore.reassignTask(reassignmentData.taskId, reassignmentData.agentId) showReassignTaskModal.value = false reassigningTask.value = null