diff --git a/frontend/src/components/project/AssetThumbnail.vue b/frontend/src/components/project/AssetThumbnail.vue index cb662f87..b0a2cdd7 100644 --- a/frontend/src/components/project/AssetThumbnail.vue +++ b/frontend/src/components/project/AssetThumbnail.vue @@ -84,7 +84,7 @@ const workspaceUrl = computed(() => { const showPreview = ref(false); const hasAnnotations = computed(() => { - // This would be determined by actual annotation data + // TODO: This would be determined by actual annotation data // For now, we'll consider assets with 'annotated' or 'review' statuses to have annotations const annotatedStatuses = ['annotated', 'pending_review', 'review_in_progress', 'review_accepted']; return props.asset && annotatedStatuses.includes(props.asset.status.toLowerCase()); diff --git a/frontend/src/components/project/dataSource/DataSourceCard.vue b/frontend/src/components/project/dataSource/DataSourceCard.vue index 5e490185..bc910fbc 100644 --- a/frontend/src/components/project/dataSource/DataSourceCard.vue +++ b/frontend/src/components/project/dataSource/DataSourceCard.vue @@ -35,11 +35,6 @@ Upload - - @@ -54,7 +49,7 @@ + + \ No newline at end of file diff --git a/frontend/src/components/project/settings/InvitationsSection.vue b/frontend/src/components/project/settings/InvitationsSection.vue new file mode 100644 index 00000000..2923a7c8 --- /dev/null +++ b/frontend/src/components/project/settings/InvitationsSection.vue @@ -0,0 +1,734 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/project/settings/MembersSection.vue b/frontend/src/components/project/settings/MembersSection.vue index bafa0b20..cfbf1212 100644 --- a/frontend/src/components/project/settings/MembersSection.vue +++ b/frontend/src/components/project/settings/MembersSection.vue @@ -1,35 +1,64 @@ + + \ No newline at end of file diff --git a/frontend/src/stores/workspaceStore.ts b/frontend/src/stores/workspaceStore.ts index 87d83ceb..b2a8f7a8 100644 --- a/frontend/src/stores/workspaceStore.ts +++ b/frontend/src/stores/workspaceStore.ts @@ -1135,6 +1135,26 @@ export const useWorkspaceStore = defineStore("workspace", { return result.navigation; }, + /** + * Assign a task to the current user and set its status to IN_PROGRESS + * This is used when auto-transitioning to the next task after completion + */ + async assignAndStartNextTask(projectId: number, taskId: number): Promise { + try { + // First assign the task to current user + await taskService.assignTaskToCurrentUser(projectId, taskId); + + // Then change status to IN_PROGRESS if not already + await taskService.changeTaskStatus(projectId, taskId, { + targetStatus: TaskStatus.IN_PROGRESS + }); + + logger.info(`Successfully assigned and started task ${taskId} for project ${projectId}`); + } catch (error) { + logger.error(`Failed to assign and start task ${taskId}:`, error); + throw error; + } + }, }, }); diff --git a/frontend/src/views/AnnotationWorkspace.vue b/frontend/src/views/AnnotationWorkspace.vue index d94169d7..9892452a 100644 --- a/frontend/src/views/AnnotationWorkspace.vue +++ b/frontend/src/views/AnnotationWorkspace.vue @@ -50,21 +50,19 @@ This task is completed - - - - diff --git a/frontend/src/views/project/TasksView.vue b/frontend/src/views/project/TasksView.vue index 73bb7e30..572a101b 100644 --- a/frontend/src/views/project/TasksView.vue +++ b/frontend/src/views/project/TasksView.vue @@ -183,7 +183,7 @@