diff --git a/frontend/src/components/schedule/ScheduleGantt.vue b/frontend/src/components/schedule/ScheduleGantt.vue index bc9a5f7..777f30f 100644 --- a/frontend/src/components/schedule/ScheduleGantt.vue +++ b/frontend/src/components/schedule/ScheduleGantt.vue @@ -139,7 +139,10 @@ :task-id="task.id" :status="task.status" :project-id="projectId" + show-assignee + :assigned-user-id="task.assigned_user_id" @status-updated="handleStatusUpdated" + @assignment-updated="handleAssignmentUpdated" /> @@ -306,7 +309,7 @@ const episodeFilter = ref(null) const collapsedGroups = ref>(new Set()) const LABEL_COLUMN_WIDTH = 224 // matches w-56 -const STATUS_COLUMN_WIDTH = 176 // matches w-44 +const STATUS_COLUMN_WIDTH = 200 // status select (130px) + assignee avatar button, with padding const FROZEN_WIDTH = LABEL_COLUMN_WIDTH + STATUS_COLUMN_WIDTH const HEADER_HEIGHT = 44 const GROUP_ROW_HEIGHT = 32 @@ -646,6 +649,11 @@ function handleStatusUpdated(taskId: number, newStatus: string) { if (task) task.status = newStatus } +function handleAssignmentUpdated(taskId: number, userId: number | null) { + const task = tasks.value.find(t => t.id === taskId) + if (task) task.assigned_user_id = userId ?? undefined +} + // --- Drag to reschedule --- interface DragState { diff --git a/frontend/src/components/task/EditableTaskStatus.vue b/frontend/src/components/task/EditableTaskStatus.vue index 8cbe834..314a61a 100644 --- a/frontend/src/components/task/EditableTaskStatus.vue +++ b/frontend/src/components/task/EditableTaskStatus.vue @@ -1,12 +1,12 @@