diff --git a/frontend/components/task/TaskModal.vue b/frontend/components/task/TaskModal.vue
index 88c6515..e52ec5f 100644
--- a/frontend/components/task/TaskModal.vue
+++ b/frontend/components/task/TaskModal.vue
@@ -170,6 +170,30 @@
+
+
+
Collaborateurs
+
+
+
+
+
props.users.map(u => ({ label: u.username, value: u.id }))
)
+const collaboratorOptions = computed(() =>
+ props.users
+ .filter(u => u.id !== form.assigneeId)
+ .map(u => ({ label: u.username, value: u.id }))
+)
+
+watch(() => form.assigneeId, (newAssigneeId) => {
+ if (newAssigneeId) {
+ form.collaboratorIds = form.collaboratorIds.filter(id => id !== newAssigneeId)
+ }
+})
+
const groupOptions = computed(() => {
let filtered = props.groups.filter(g => !g.archived)
if (showProjectSelect.value && form.projectId) {
@@ -624,6 +661,12 @@ function toggleTag(id: number) {
}
}
+function toggleCollaborator(userId: number) {
+ const idx = form.collaboratorIds.indexOf(userId)
+ if (idx >= 0) form.collaboratorIds.splice(idx, 1)
+ else form.collaboratorIds.push(userId)
+}
+
const weekDays = computed(() => [
{ value: 'monday', label: t('tasks.planning.days.mon') },
{ value: 'tuesday', label: t('tasks.planning.days.tue') },
@@ -648,6 +691,7 @@ function populateForm(task: Task | null) {
form.effortId = task.effort?.id ?? null
form.priorityId = task.priority?.id ?? null
form.assigneeId = task.assignee?.id ?? null
+ form.collaboratorIds = task.collaborators?.map(c => c.id) ?? []
form.groupId = task.group?.id ?? null
form.tagIds = task.tags.map(t => t.id)
form.clientTicketId = task.clientTicket?.id ?? null
@@ -694,6 +738,7 @@ function populateForm(task: Task | null) {
form.effortId = null
form.priorityId = null
form.assigneeId = null
+ form.collaboratorIds = []
form.groupId = null
form.tagIds = []
form.clientTicketId = null
@@ -906,6 +951,7 @@ async function handleSubmit() {
effort: form.effortId ? `/api/task_efforts/${form.effortId}` : null,
priority: form.priorityId ? `/api/task_priorities/${form.priorityId}` : null,
assignee: form.assigneeId ? `/api/users/${form.assigneeId}` : null,
+ collaborators: form.collaboratorIds.map(id => `/api/users/${id}`),
group: form.groupId ? `/api/task_groups/${form.groupId}` : null,
project: `/api/projects/${resolvedProjectId.value}`,
tags: form.tagIds.map(id => `/api/task_tags/${id}`),