vault backup: 2025-12-10 11:37:35

This commit is contained in:
2023-05-15 17:16:05 +02:00
committed by Thomas Peetz
parent 91bf72fc87
commit 73f2162ddf
6049 changed files with 513094 additions and 227748 deletions
+80
View File
@@ -0,0 +1,80 @@
const goalPages = dv.pages("#process/goal");
let goals = new Set();
let activeProjects = new Set();
for(let goalPage of goalPages) {
const projects = goalPage.file.inlinks.where((p) => {
const mp = dv.page(p.path);
return mp.tags?.includes("process/project");
});
const aufgaben = projects.values.map((p) => {
const mp = dv.page(p);
return mp.file.inlinks.where((t) => {
const mt = dv.page(t.path);
return mt.tags?.includes("process/task");
})
});
let totalTasksInTasks = 0;
const totalTasksGoalPage = goalPage.file.tasks.length;
const totalTasksInProjects = projects.values.reduce((acc, p) => {
const mp = dv.page(p.path);
const aufgaben = mp.file.inlinks.where((t) => {
const mt = dv.page(t.path);
return mt.tags?.includes("process/task");
});
totalTasksInTasks += aufgaben.values.reduce((act, t) => {
const mt = dv.page(t.path);
return act + mt.file.tasks.length;
}, 0);
return acc + mp.file.tasks.length;
}, 0);
let finishedTasksInTasks = 0;
const finishedTasksGoalPage = goalPage.file.tasks.where(
(t) => t.fullyCompleted === true
).length;
const finishedTasksInProjects = projects.values.reduce((acc, p) => {
const mp = dv.page(p.path);
const aufgaben = mp.file.inlinks.where((t) => {
const mt = dv.page(t.path);
return mt.tags?.includes("process/task");
});
finishedTasksInTasks += aufgaben.values.reduce((act, t) => {
const mt = dv.page(t.path);
return act + mt.file.tasks.where((t) => t.fullyCompleted === true).length;
}, 0);
return acc + mp.file.tasks.where((t) => t.fullyCompleted === true).length;
}, 0);
const Target = totalTasksGoalPage + totalTasksInProjects + totalTasksInTasks;
const Progress = finishedTasksGoalPage + finishedTasksInProjects + finishedTasksInTasks;
const containerEl = createDiv();
const align = input?.alignLeft ? "left" : "center";
Object.assign(containerEl.style, {
display: "flex",
"flex-direction": "column",
"align-items": align,
"justify-content": "center",
});
const max = Target || 0;
const value = Progress || 0;
const percent = Math.round((value / max) * 100) || 0;
const progressBar = containerEl.createEl("progress");
Object.assign(progressBar, { max, value });
const progressText = containerEl.createEl("div");
Object.assign(progressText, {
textContent: `${percent}% completed`,
});
if (max > 0 && max != value) {
goals.add([goalPage.file.link, dv.paragraph(containerEl.innerHTML), value, max, goalPage.Projects]);
}
}
dv.table(["Title", "Bar", "Progress", "Target", "Projects"], Array.from(goals));