working leantime widget 93

This commit is contained in:
Alma 2025-04-12 20:57:10 +02:00
parent 47d3824807
commit 01a6c51124

View File

@ -21,6 +21,8 @@ interface Task {
authorFirstname: string;
authorLastname: string;
milestoneHeadline?: string;
editTo?: string;
editFrom?: string;
}
interface ProjectSummary {
@ -89,24 +91,29 @@ export function Flow() {
return;
}
// Sort tasks by date, using either dateToFinish or date field
// Sort tasks by any available date field
const sortedTasks = data.tasks
.filter((task: Task) => {
const hasValidDate = (dateStr: string) =>
dateStr && dateStr !== '0000-00-00 00:00:00';
return hasValidDate(task.dateToFinish) || hasValidDate(task.date);
})
.sort((a: Task, b: Task) => {
const getDate = (task: Task) => {
return task.dateToFinish && task.dateToFinish !== '0000-00-00 00:00:00'
? new Date(task.dateToFinish)
: new Date(task.date);
if (task.dateToFinish && task.dateToFinish !== '0000-00-00 00:00:00') {
return new Date(task.dateToFinish);
}
if (task.editTo && task.editTo !== '0000-00-00 00:00:00') {
return new Date(task.editTo);
}
if (task.editFrom && task.editFrom !== '0000-00-00 00:00:00') {
return new Date(task.editFrom);
}
if (task.date && task.date !== '0000-00-00 00:00:00') {
return new Date(task.date);
}
return new Date(0); // Default to oldest date if no valid date found
};
return getDate(a).getTime() - getDate(b).getTime();
})
.slice(0, 6);
console.log('Sorted and filtered tasks:', sortedTasks);
console.log('Sorted tasks:', sortedTasks);
setTasks(sortedTasks);
} catch (error) {
console.error('Error fetching tasks:', error);
@ -152,10 +159,28 @@ export function Flow() {
<div className="flex gap-3">
<div className="flex-shrink-0 w-14 h-14 rounded-lg bg-blue-50 flex flex-col items-center justify-center border border-blue-100">
<span className="text-xs text-blue-600 font-medium uppercase">
{new Date(task.dateToFinish).toLocaleDateString('fr-FR', { month: 'short' })}
{(() => {
const date = task.dateToFinish && task.dateToFinish !== '0000-00-00 00:00:00'
? new Date(task.dateToFinish)
: task.editTo && task.editTo !== '0000-00-00 00:00:00'
? new Date(task.editTo)
: task.editFrom && task.editFrom !== '0000-00-00 00:00:00'
? new Date(task.editFrom)
: new Date(task.date);
return date.toLocaleDateString('fr-FR', { month: 'short' });
})()}
</span>
<span className="text-lg text-blue-700 font-bold">
{new Date(task.dateToFinish).getDate()}
{(() => {
const date = task.dateToFinish && task.dateToFinish !== '0000-00-00 00:00:00'
? new Date(task.dateToFinish)
: task.editTo && task.editTo !== '0000-00-00 00:00:00'
? new Date(task.editTo)
: task.editFrom && task.editFrom !== '0000-00-00 00:00:00'
? new Date(task.editFrom)
: new Date(task.date);
return date.getDate();
})()}
</span>
</div>
<div className="flex-1 min-w-0 space-y-1.5">