From 1aa72c3b569aeded49bd5046f136915e54c6c65a Mon Sep 17 00:00:00 2001 From: Matthieu Date: Thu, 19 Mar 2026 10:33:54 +0100 Subject: [PATCH] =?UTF-8?q?feat(ui)=20:=20add=20deadline/scheduled=20colum?= =?UTF-8?q?ns=20and=20sort=20options=20to=20Mes=20t=C3=A2ches=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- frontend/i18n/locales/fr.json | 6 +++++- frontend/pages/my-tasks.vue | 34 +++++++++++++++++++++++++++------- 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/frontend/i18n/locales/fr.json b/frontend/i18n/locales/fr.json index d332bcf..b66166c 100644 --- a/frontend/i18n/locales/fr.json +++ b/frontend/i18n/locales/fr.json @@ -186,7 +186,11 @@ "allAssignees": "Tous", "noTasks": "Aucune tâche", "backlog": "Backlog", - "createTask": "Créer une tâche" + "createTask": "Créer une tâche", + "sortBy": "Trier par", + "sortDefault": "Par défaut", + "sortDeadline": "Échéance", + "sortScheduledStart": "Date planifiée" }, "dashboard": { "title": "Tableau de bord", diff --git a/frontend/pages/my-tasks.vue b/frontend/pages/my-tasks.vue index 46d5ae6..86873c5 100644 --- a/frontend/pages/my-tasks.vue +++ b/frontend/pages/my-tasks.vue @@ -50,6 +50,10 @@ const selectedPriorityId = ref(null) const selectedEffortId = ref(null) const selectedAssigneeId = ref(auth.user?.id ?? null) +// Sort +type SortOption = 'default' | 'deadline' | 'scheduledStart' +const sortBy = ref('default') + // View toggle const viewMode = ref<'kanban' | 'list'>('kanban') @@ -157,6 +161,11 @@ async function loadTasks() { if (selectedTagId.value) { params['tags[]'] = `/api/task_tags/${selectedTagId.value}` } + if (sortBy.value === 'deadline') { + params['order[deadline]'] = 'asc' + } else if (sortBy.value === 'scheduledStart') { + params['order[scheduledStart]'] = 'asc' + } tasks.value = await taskService.getFiltered(params) } @@ -169,9 +178,9 @@ async function loadAll() { } } -// Watch filters to reload tasks +// Watch filters and sort to reload tasks watch( - [selectedProjectId, selectedGroupId, selectedTagId, selectedPriorityId, selectedEffortId, selectedAssigneeId], + [selectedProjectId, selectedGroupId, selectedTagId, selectedPriorityId, selectedEffortId, selectedAssigneeId, sortBy], () => { loadTasks() }, ) @@ -311,7 +320,7 @@ onMounted(async () => {