/
showFlagged.js
27 lines (27 loc) · 1000 Bytes
/
showFlagged.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
"use strict";
(() => {
var action = new PlugIn.Action(async () => {
try {
let toFocus = [];
flattenedProjects
.filter((p) => p.status == Project.Status.Active)
.flatMap((p) => p.flattenedTasks.filter((t) => t.flagged &&
(t.taskStatus == Task.Status.Available ||
t.taskStatus == Task.Status.DueSoon ||
t.taskStatus == Task.Status.Next ||
t.taskStatus == Task.Status.Overdue)))
.forEach((task) => {
if (task.containingProject && toFocus.indexOf(task.containingProject) === -1) {
toFocus.push(task.containingProject);
}
});
document.windows[0].perspective = Perspective.BuiltIn.Projects;
document.windows[0].focus = toFocus;
}
catch (err) {
console.error(err);
throw err;
}
});
return action;
})();