Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Add custom grouping, with 'group by function' option #2028

Merged
merged 129 commits into from Jun 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
129 commits
Select commit Hold shift + click to select a range
5bc5238
feat: Add outline FunctionField class - does nothing yet.
claremacrae Jun 4, 2023
edd9c63
feat: Add 'group by function' code
claremacrae Jun 4, 2023
798ef75
feat: Only support access to Task object in 'group by function'
claremacrae Jun 4, 2023
608a375
test: Add more useful examples of using task status symbols
claremacrae Jun 4, 2023
39277c8
comment: Add TODO, mainly to make formatting of code clearer
claremacrae Jun 4, 2023
9259113
feat: Hook up 'group by function' in Query
claremacrae Jun 4, 2023
0b497b1
spike: Experiment with calling groupByFn() directly
claremacrae Jun 4, 2023
8eba908
refactor: Flip an if and unwrap the else
claremacrae Jun 4, 2023
f3d8dea
fix: Give a meaningful message for incorrect expression type
claremacrae Jun 4, 2023
38ffb61
feat: Give a meaningful message for incorrect expression type
claremacrae Jun 4, 2023
75c6199
feat: Give a meaningful message for syntax errors
claremacrae Jun 4, 2023
ac287ed
feat: Extract evaluateExpression(), to calculate any expression on Task
claremacrae Jun 4, 2023
5d858dd
test: Generate a table of status fields for custom functions
claremacrae Jun 4, 2023
8b05f33
docs: Interim commit of docs for 'group by function'
claremacrae Jun 4, 2023
f384807
test: Extract helper verifyFieldDataForReferenceDocs()
claremacrae Jun 4, 2023
c1cf69d
docs: Document all the supported fields for 'group by function'
claremacrae Jun 4, 2023
b3c64c4
docs: Format strings in field tables as code with backticks
claremacrae Jun 4, 2023
c90a97e
docs: Document more Values for Other Task Properties
claremacrae Jun 5, 2023
9b7aaaa
docs: Move reference material to Reference section & add more detail
claremacrae Jun 5, 2023
69748e8
refactor: Use early return in evaluateExpression()
claremacrae Jun 5, 2023
3f6f4b2
docs: Move Functions.md content to new section in Grouping.md
claremacrae Jun 5, 2023
ed8b5e6
docs: Work in progress on functions section in Grouping.md
claremacrae Jun 5, 2023
cc82e5c
docs: Add picture of how group by function works
claremacrae Jun 5, 2023
7892ca8
fix: Remove the need to convert non-string types to strings
claremacrae Jun 5, 2023
fa15039
fix: An empty group heading is treated as un-grouped.
claremacrae Jun 5, 2023
39ecefc
fix: An empty group heading is treated as un-grouped.
claremacrae Jun 5, 2023
c9b5334
fix: Report errors for exception, null and undefined return values
claremacrae Jun 5, 2023
ae43d0c
fix: Do not escape markdown characters in function group headings
claremacrae Jun 5, 2023
aefb015
docs: Capture my current understanding of 'group by function'
claremacrae Jun 5, 2023
5267db0
docs: Add value and type for an unpopulated task
claremacrae Jun 6, 2023
f03bd8c
test: Check behaviour of of falsey values
claremacrae Jun 6, 2023
ac65544
test: Show values of dates, and of IN_PROGRESS task
claremacrae Jun 6, 2023
dc1b0cd
docs: Update Task Properties.md for latest test output
claremacrae Jun 6, 2023
46b3f45
docs: Fix the type displayed for task.tags
claremacrae Jun 6, 2023
780d7ad
docs: Fix the values displayed for task.tags
claremacrae Jun 6, 2023
37f1fef
jsdoc: Document that GroupingTreeNode field must be populated
claremacrae Jun 7, 2023
5195bf0
fix: Simplify the handling of empty strings, as groups with empty nam…
claremacrae Jun 7, 2023
c7e450b
docs: Start a minimal page on expressions.
claremacrae Jun 7, 2023
58141f1
test: Extract a variable to re-use values
claremacrae Jun 7, 2023
8d780c7
test: Prepare to convert expression test to approval tests
claremacrae Jun 7, 2023
efbb95e
test: Remove placeholder text from ApprovalTest docs
claremacrae Jun 7, 2023
7761db0
test: Move some grouping test helpers to CustomMatchersForGrouping.ts
claremacrae Jun 7, 2023
834f0f4
refactor: Rename variable as it is no longer specific to grouping
claremacrae Jun 7, 2023
67abb3a
refactor: Move evaluateExpression() to Scripting/Expression.ts
claremacrae Jun 7, 2023
939cb0b
test: Rename FunctionFieldReference.test.ts to TaskProperties.test.ts
claremacrae Jun 7, 2023
ae6fa68
test: Move TaskProperties.test.ts to Scripting folder
claremacrae Jun 7, 2023
5d02cd5
test: Add a test of expression calculation results
claremacrae Jun 7, 2023
339f4c2
test: Add own implementation of verifyAll() - based on verifyAllCombi…
claremacrae Jun 7, 2023
5bdf900
test: Remove [] from around a in the approved file (due to use of com…
claremacrae Jun 7, 2023
76fadcf
test: Move test of evaluateExpression() to Scripting/Expression.test.ts
claremacrae Jun 7, 2023
d6a0842
test: Fix misleading variable name
claremacrae Jun 7, 2023
3de9a4e
docs: Update include file names for recent changes
claremacrae Jun 7, 2023
1efb72d
test,docs: Generate a markdown table of expression results, for docs.
claremacrae Jun 7, 2023
f060f58
test,docs: Generate a block of expression results, for docs.
claremacrae Jun 7, 2023
c885af3
docs: About Scripting Details.md now links to Expressions and scripti…
claremacrae Jun 7, 2023
3ff27f1
docs: Move scripting docs to top level of docs for visibility
claremacrae Jun 7, 2023
13d569c
docs: Start a page on Custom Grouping
claremacrae Jun 7, 2023
1ae5879
test: Rename test helper function determineExpression()
claremacrae Jun 7, 2023
21ab430
test: Move some test helpers out to own file in tests/Scripting
claremacrae Jun 7, 2023
c2722fe
docs,test: Properly format the expression results in Expressions.md
claremacrae Jun 7, 2023
3365f31
docs,test: Show an example of arithmetic in expressions
claremacrae Jun 7, 2023
79c073b
docs: Move detail of 'group by function' docs to Custom Grouping.md
claremacrae Jun 7, 2023
15179d1
docs: Remove a callout for issue that is now fixed
claremacrae Jun 7, 2023
c51e30b
test: Add example showing that ' and " can both be used
claremacrae Jun 7, 2023
1a38df3
feature: Treat group "name" null as an empty group, for user convenie…
claremacrae Jun 7, 2023
18d1ad8
docs: Note that task.tags does not contain any tag that is the global…
claremacrae Jun 8, 2023
b74329a
test: Add variety of sample custom groups in TagsField.test.ts
claremacrae Jun 8, 2023
93b15a5
test: TagsField.test.ts now makes markdown file of custom groups.
claremacrae Jun 8, 2023
9093c71
docs: Add sample 'custom grouping by tags' text to Grouping docs
claremacrae Jun 8, 2023
7e09c8a
docs: Better formatting of custom grouping samples
claremacrae Jun 8, 2023
1482e22
docs: Update Expressions.md for recent change in tests
claremacrae Jun 8, 2023
2c21b39
test: Move 'custom grouping by tag' documentation tests to separate f…
claremacrae Jun 8, 2023
03663a0
test: Extract function verifyHeadingsFromSampleGroupers()
claremacrae Jun 8, 2023
3d66063
test: Extract function verifyHelpFromSampleGroupers()
claremacrae Jun 8, 2023
5f73072
test: Clearer function names
claremacrae Jun 8, 2023
ca4e846
test: Clearer function names again
claremacrae Jun 8, 2023
3e474f8
test: Move two helper functions out to VerifyFunctionFieldSamples.ts
claremacrae Jun 8, 2023
206970a
docs: Add sample 'custom grouping by status names' text to Grouping docs
claremacrae Jun 8, 2023
ae5cf53
text: Correct descriptive text for documentation
claremacrae Jun 8, 2023
fea473c
docs: Add sample 'custom grouping by status types' text to Grouping docs
claremacrae Jun 8, 2023
ca6d897
docs: Add sample 'custom grouping by status symbols' text to Grouping…
claremacrae Jun 8, 2023
bc01773
docs: Add sample 'custom grouping by next status symbol' text to Grou…
claremacrae Jun 8, 2023
6aff8fe
docs: Add sample 'custom grouping by due date' text to Grouping docs
claremacrae Jun 8, 2023
426a995
docs: Remove incorrect task property task.status.createdDate from docs
claremacrae Jun 8, 2023
a47e63a
refactor: Add created, done, due, scheduled and start to Task
claremacrae Jun 8, 2023
bb12b3e
docs,test: Add created, done, due, scheduled and start properties on …
claremacrae Jun 8, 2023
fdc617a
test: Add fake date to DueDateFieldDocs.test.ts to fix failing tests
claremacrae Jun 9, 2023
c3804a7
docs: Add sample 'custom grouping by done date' text to Grouping docs
claremacrae Jun 9, 2023
86b8938
docs: Add sample 'custom grouping by created, scheduled and start dat…
claremacrae Jun 9, 2023
35e433d
test: Fix error that tests were using tasks without the right dates.
claremacrae Jun 9, 2023
6c12381
feat: Add support and docs for task.happens in 'group by function'
claremacrae Jun 9, 2023
54473ac
docs: Update Task Properties.md for the addition of task.happens
claremacrae Jun 9, 2023
d0f05e7
docs: Fix the type displayed for null in Task Properties.md
claremacrae Jun 9, 2023
0b6f04b
docs: Display type of Moment objects correctly
claremacrae Jun 9, 2023
2d43652
docs: Display values of Moment objects correctly
claremacrae Jun 9, 2023
a66ef9b
docs: Add a link to examples of using date properties
claremacrae Jun 9, 2023
96ba38b
test: Add samples for 'group by function task.description'
claremacrae Jun 9, 2023
b612cb4
test: Parameterize a test, to make it easier to test more properties
claremacrae Jun 9, 2023
e48cb5c
test: Inline the list of custom groups
claremacrae Jun 9, 2023
fdc92c4
test: Clearer names of approved files
claremacrae Jun 9, 2023
51c73fd
docs: Add samples for 'group by function task.description'
claremacrae Jun 9, 2023
335ed94
fix: Withdraw support for task.blockLink for now
claremacrae Jun 9, 2023
4cf50b3
test: Add test of Task.indentation
claremacrae Jun 9, 2023
3b47631
fix: Withdraw support for task fields not already released
claremacrae Jun 9, 2023
cf349aa
docs: Remove from docs file properties that will not be released as-i…
claremacrae Jun 10, 2023
3ef5b19
docs: Work-in-progress commit of Custom Grouping.md
claremacrae Jun 10, 2023
cb41947
test: Add some ideas for examples to TaskPropertyExamples.test.ts
claremacrae Jun 10, 2023
5e51f8d
feat: Add Task.recurring - but don't yet document, as Task.recurrence…
claremacrae Jun 10, 2023
8d45873
docs: Note that all task dates have time midnight currently
claremacrae Jun 10, 2023
2a5250b
docs: Remove task.priority from docs.
claremacrae Jun 10, 2023
b46d3cb
fix: Add Task.dateTimeFormat - should have been in an earlier commit.
claremacrae Jun 10, 2023
3edb988
docs: Document 'group by function task.urgency'
claremacrae Jun 10, 2023
60e97a4
docs: Comment out File Properties section until precedingHeader renamed
claremacrae Jun 10, 2023
79f1172
test: Move 'group by function task.tags' docs tests to TaskPropertyEx…
claremacrae Jun 10, 2023
1cea404
test: Move 'group by function task.status.type' docs tests to TaskPro…
claremacrae Jun 10, 2023
c797faf
test: Move 'group by function task.status.symbol' docs tests to TaskP…
claremacrae Jun 10, 2023
0f64068
test: Move 'group by function task.status.nextStatusSymbol' docs test…
claremacrae Jun 10, 2023
2cc143a
test: Correct order of test names to alphabetical
claremacrae Jun 10, 2023
d5c4ef2
test: Move 'group by function task.status.name' docs tests to TaskPro…
claremacrae Jun 10, 2023
2001ab2
test: Move 'group by function task.start' docs tests to TaskPropertyE…
claremacrae Jun 10, 2023
77d9900
test: Move 'group by function task.scheduled' docs tests to TaskPrope…
claremacrae Jun 10, 2023
d7b7844
test: Move 'group by function task.happens' docs tests to TaskPropert…
claremacrae Jun 10, 2023
3c3249b
test: Move 'group by function task.done' docs tests to TaskPropertyEx…
claremacrae Jun 10, 2023
3d7b2bb
test: Move 'group by function task.created' docs tests to TaskPropert…
claremacrae Jun 10, 2023
7018507
docs: Update embedded file names in Grouping.md
claremacrae Jun 10, 2023
c2393e4
test: Fix failing test for TaskPropertyExamples.test.ts by fixing date
claremacrae Jun 11, 2023
942e589
refactor: Don't allow null to be passed in groupByFn()
claremacrae Jun 11, 2023
f9c440e
refactor: Rename groupByFn()
claremacrae Jun 11, 2023
738a543
jsdoc: Add minimal docs to scripting code
claremacrae Jun 11, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/Introduction.md
Expand Up @@ -32,6 +32,7 @@ These are the main pages and sections, that connect to all the pages here:
>
> ### Advanced and Detail
>
> - [[About Scripting|Scripting ...]]
> - [[About Advanced|Advanced ...]]
> - [[About Other Plugins|Other Plugins ...]]
> - [[About Reference|Reference ...]]
Expand Down