From b30e2a95dda354f7f7ea18408e8d07e65b5187c4 Mon Sep 17 00:00:00 2001 From: Alma Date: Sat, 12 Apr 2025 19:08:36 +0200 Subject: [PATCH] working leantime widget 65 --- components/flow.tsx | 98 +++++++++++++++++++++++---------------------- 1 file changed, 51 insertions(+), 47 deletions(-) diff --git a/components/flow.tsx b/components/flow.tsx index f7fac7b3..e70cf53c 100644 --- a/components/flow.tsx +++ b/components/flow.tsx @@ -15,6 +15,7 @@ interface Task { projectName: string; type: string; status: number; + assignedTo: number[]; editorId: string; editorFirstname: string | null; editorLastname: string | null; @@ -40,34 +41,23 @@ export function Flow() { const getStatusLabel = (status: number): string => { switch (status) { - case 0: - return 'NEW'; - case 1: - return 'INPROGRESS'; - case 2: - return 'DONE'; - case 3: - return 'NEW'; - case 4: - return 'INPROGRESS'; - case 5: - return 'DONE'; - default: - return 'UNKNOWN'; + case 1: return 'New'; + case 2: return 'Ready'; + case 3: return 'In Progress'; + case 4: return 'Review'; + case 5: return 'Done'; + default: return 'Unknown'; } }; const getStatusColor = (status: number): string => { - const statusLabel = getStatusLabel(status); - switch (statusLabel) { - case 'DONE': - return 'bg-green-100 text-green-800'; - case 'INPROGRESS': - return 'bg-yellow-100 text-yellow-800'; - case 'NEW': - return 'bg-gray-100 text-gray-800'; - default: - return 'bg-gray-100 text-gray-800'; + switch (status) { + case 1: return 'bg-blue-500'; + case 2: return 'bg-green-500'; + case 3: return 'bg-yellow-500'; + case 4: return 'bg-purple-500'; + case 5: return 'bg-gray-500'; + default: return 'bg-gray-300'; } }; @@ -113,9 +103,17 @@ export function Flow() { .filter((task: Task) => task.headline && typeof task.headline === 'string' && - task.status !== 3 // Only show tasks that are not completed (status 3) + task.status !== 5 && // Not done + Array.isArray(task.assignedTo) && task.assignedTo.length > 0 // Has assignments ) - .sort((a: Task, b: Task) => getDateToSort(a) - getDateToSort(b)); + .sort((a: Task, b: Task) => { + // First sort by status (new tasks first) + if (a.status !== b.status) { + return a.status - b.status; + } + // Then sort by due date + return getDateToSort(a) - getDateToSort(b); + }); // Limit to 6 tasks setTasks(sortedTasks.slice(0, 6)); @@ -136,7 +134,7 @@ export function Flow() { return ( - Tasks + My ToDos