working leantime widget 109

This commit is contained in:
Alma 2025-04-12 22:23:51 +02:00
parent a111efd952
commit 78f469a0ee

View File

@ -10,8 +10,8 @@ interface Task {
id: number;
headline: string;
description: string;
dateToFinish: string;
date: string;
dateToFinish: string | null;
date: string | null;
projectId: number;
projectName: string;
status: number;
@ -95,62 +95,68 @@ export function Flow() {
return;
}
// Log the raw API response
console.log('Raw API response:', {
taskCount: data.tasks.length,
firstTask: data.tasks[0],
taskFields: Object.keys(data.tasks[0])
});
// Debug log to see all tasks and their dates
data.tasks.forEach((task: Task) => {
console.log(`Task ${task.id} - ${task.headline} - Full task:`, task);
console.log(`Task ${task.id} - Date fields:`, {
// Log the complete task object first
console.log(`Task ${task.id} - Complete data:`, {
id: task.id,
headline: task.headline,
dateToFinish: task.dateToFinish,
date: task.date,
status: task.status,
editorId: task.editorId,
raw: task
projectName: task.projectName
});
});
const getValidDate = (task: Task): Date | undefined => {
// First try dateToFinish as it's the primary due date field
if (task.dateToFinish) {
console.log(`Task ${task.id} - Checking dateToFinish:`, {
value: task.dateToFinish,
type: typeof task.dateToFinish
const rawDateToFinish = task.dateToFinish;
console.log(`Task ${task.id} - Raw dateToFinish:`, {
value: rawDateToFinish,
type: typeof rawDateToFinish,
hasValue: !!rawDateToFinish
});
if (rawDateToFinish && rawDateToFinish !== '0000-00-00 00:00:00') {
const date = new Date(rawDateToFinish);
const isValid = !isNaN(date.getTime());
console.log(`Task ${task.id} - Date parsing result:`, {
input: rawDateToFinish,
parsed: date.toISOString(),
isValid: isValid
});
if (task.dateToFinish !== '0000-00-00 00:00:00') {
const date = new Date(task.dateToFinish);
console.log(`Task ${task.id} - Parsed dateToFinish:`, {
input: task.dateToFinish,
parsed: date,
isValid: !isNaN(date.getTime()),
timestamp: date.getTime()
});
if (!isNaN(date.getTime())) {
return date;
}
if (isValid) {
return date;
}
}
// Then try date field as fallback
if (task.date && task.date !== '0000-00-00 00:00:00') {
const date = new Date(task.date);
const rawDate = task.date;
if (rawDate && rawDate !== '0000-00-00 00:00:00') {
const date = new Date(rawDate);
if (!isNaN(date.getTime())) {
return date;
}
}
console.log(`Task ${task.id} - No valid date found`, {
dateToFinish: task.dateToFinish,
date: task.date
});
return undefined;
};
// Process and sort tasks
// Process and sort tasks - only non-completed tasks
const processedTasks = data.tasks
.filter((task: Task) => task.status !== 5) // Exclude completed tasks
.map((task: Task): TaskWithDate => {
const validDate = getValidDate(task);
console.log(`Task ${task.id} - Processing result:`, {
console.log(`Task ${task.id} - Final processing:`, {
headline: task.headline,
dateToFinish: task.dateToFinish,
validDate: validDate?.toISOString(),