Lien Gantt
This commit is contained in:
@@ -140,15 +140,28 @@ export class MilestoneDetail {
|
||||
|
||||
protected get milestoneGanttTasks(): GanttTask[] {
|
||||
const tasks: GanttTask[] = [];
|
||||
for (const issue of this.linkedIssues) {
|
||||
const taskIds = new Set<string>();
|
||||
const sorted = [...this.linkedIssues].sort((a, b) => {
|
||||
if (!a.startDate && !b.startDate) return 0;
|
||||
if (!a.startDate) return 1;
|
||||
if (!b.startDate) return -1;
|
||||
return a.startDate.localeCompare(b.startDate);
|
||||
});
|
||||
for (const issue of sorted) {
|
||||
if (!issue.startDate || !issue.endDate) continue;
|
||||
const deps = issue.dependsOnIds
|
||||
.map((id) => `issue-${id}`)
|
||||
.filter((id) => taskIds.has(id))
|
||||
.join(',');
|
||||
tasks.push({
|
||||
id: `issue-${issue.id}`,
|
||||
name: `#${issue.id} ${issue.name}`,
|
||||
start: issue.startDate,
|
||||
end: issue.endDate,
|
||||
progress: issue.progress,
|
||||
...(deps ? { dependencies: deps } : {}),
|
||||
});
|
||||
taskIds.add(`issue-${issue.id}`);
|
||||
}
|
||||
return tasks;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user