working leantime widget 93
This commit is contained in:
parent
47d3824807
commit
01a6c51124
@ -21,6 +21,8 @@ interface Task {
|
|||||||
authorFirstname: string;
|
authorFirstname: string;
|
||||||
authorLastname: string;
|
authorLastname: string;
|
||||||
milestoneHeadline?: string;
|
milestoneHeadline?: string;
|
||||||
|
editTo?: string;
|
||||||
|
editFrom?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface ProjectSummary {
|
interface ProjectSummary {
|
||||||
@ -89,24 +91,29 @@ export function Flow() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sort tasks by date, using either dateToFinish or date field
|
// Sort tasks by any available date field
|
||||||
const sortedTasks = data.tasks
|
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) => {
|
.sort((a: Task, b: Task) => {
|
||||||
const getDate = (task: Task) => {
|
const getDate = (task: Task) => {
|
||||||
return task.dateToFinish && task.dateToFinish !== '0000-00-00 00:00:00'
|
if (task.dateToFinish && task.dateToFinish !== '0000-00-00 00:00:00') {
|
||||||
? new Date(task.dateToFinish)
|
return new Date(task.dateToFinish);
|
||||||
: new Date(task.date);
|
}
|
||||||
|
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();
|
return getDate(a).getTime() - getDate(b).getTime();
|
||||||
})
|
})
|
||||||
.slice(0, 6);
|
.slice(0, 6);
|
||||||
|
|
||||||
console.log('Sorted and filtered tasks:', sortedTasks);
|
console.log('Sorted tasks:', sortedTasks);
|
||||||
setTasks(sortedTasks);
|
setTasks(sortedTasks);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error fetching tasks:', error);
|
console.error('Error fetching tasks:', error);
|
||||||
@ -152,10 +159,28 @@ export function Flow() {
|
|||||||
<div className="flex gap-3">
|
<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">
|
<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">
|
<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>
|
||||||
<span className="text-lg text-blue-700 font-bold">
|
<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>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex-1 min-w-0 space-y-1.5">
|
<div className="flex-1 min-w-0 space-y-1.5">
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user