Nested/Telescoping Callouts for Task Surfacing/Viewing

Thanks to some great help from holroy (Include some file metadata to be displayed in the Dataview file link - #7 by jeetsukumaran), I found the following task views very useful to allow me to selective show/hide tasks.

I specify a source (basically the “FROM” and “WHERE” parts of a dataview TASK query). Tasks are grouped by file automatically, and we can then provide additional parameters on which to group the tasks. Task files can be further grouped based on metadata or tags.
In principle, we could nest them infinitely, but it gets visually clunky after 2-3 levels. So the code collapses grouping factors after the 2nd.

Early days yet. Lots of improvements can be made on the CSS side things, prettying things up and adding some nice icons/emojis to make things easier to parse. (I would love to have the callouts color change based on the grouping metadata values :slight_smile: )

But as a working work-in-progress, it does really well. Allowing me to zero in on tasks by date/urgency (the “Pending”), or provide other perspectives. Sometimes I want to work on tasks by “Area”, and other times based on “Project”, and yet others based on mood or energy (e.g., show me tasks organized by: task-type, task-difficulty.)

Here are tasks grouped by area:

await dv.view("__annex__/resources/obsidian/plugins/dataview/views/tasking.dataview", {tags: ["#task"], groupByFields: {"area": "unassigned" }, calloutTitle: "Areas", isContainedInCallout: true, isCalloutOpen: false})

And here is one by the tag “#flagged”:

await dv.view("__annex__/resources/obsidian/plugins/dataview/views/tasking.dataview", {tags: ["#flagged"], groupByTags: ["#flagged"], calloutTitle: "Flagged", isContainedInCallout: true, isCalloutOpen: false})