callumalpass_tasknotes/docs/assets
Renato Mendonca ad6d8ceeda
Group/Sort by Custom User Fields - stacked o PR #471 (User Fields Mapping) (#475)
* feat: implement multi-field user properties for dynamic filtering

- Add userFields[] data model with id, key, displayName, type
- Migrate legacy userField to userFields array on load
- Extend FilterOptions with userProperties from settings
- Update FilterBar to include user properties in dropdown
- Add evaluation logic for user:* property conditions
- Create Settings UI for managing multiple user fields
- Add comprehensive unit tests for all components
- Support Text, Number, Date, Boolean, List field types

* fix(settings/user-fields): widen inputs and align layout with Priority section

- Use grid tailored for user-fields (1fr 1fr 160px 80px)
- Make Property Name and Display Name inputs flex to full width
- Standardize type dropdown width; stack neatly on mobile
- Follow existing settings-view patterns for consistency

* feat: add bracket/quote-aware CSV splitting and missing numeric operators

- Add src/utils/stringSplit.ts with splitListPreservingLinksAndQuotes()
  - Single-pass O(n) algorithm preserves commas inside [[...]] and quotes
  - Handles wikilink aliases [[path|alias]] correctly
  - Trims tokens and ignores empty values
- Integrate splitter in FilterService.normalizeUserListValue for string inputs
- Add missing numeric operators: is-greater-than-or-equal, is-less-than-or-equal
  - Update FilterOperator type and FILTER_OPERATORS labels
  - Add support for timeEstimate and user number fields
  - Implement comparison logic in FilterUtils
- Fix instant user field availability in FilterBar after settings changes
  - Invalidate filter options cache in main.saveSettings()
  - Push fresh options to open views in settings.ts
- Add comprehensive unit tests for string splitting and filter normalization
- Fix TypeScript compilation issue with new operator validation

* docs: add comprehensive user fields documentation and examples

- Add User Fields section to Advanced Settings with setup guide
- Document all 5 field types (text, number, date, boolean, list) with examples
- Explain smart list filtering that preserves wikilinks and quotes
- Document numeric intelligence for mixed text-number formats
- Add new comparison operators (equal or greater/less than) to filtering docs
- Include practical filtering examples for custom user fields
- Add technical implementation guide for developers
- Include demonstration GIFs showing list and numeric field filtering
- Update main settings overview to reference user fields feature

* feat(filter): group by custom user fields; add dynamic group dropdown

- Support user: group keys (text/number/boolean/date/list)
- Sorting: date asc, boolean true→false, number desc, others alphabetic
- FilterBar includes user properties from FilterOptions.userProperties
- test: add coverage for boolean/list/date/unknown and FilterBar options

* feat(filtering): add sorting by user fields and wire Sort dropdown; fix grouped user-field header order to follow sort direction; emit immediate query change for sort/group; list empty values sort last

* docs(filtering): add docs for sorting/grouping by custom user fields and embed demo GIF

---------

Co-authored-by: Callum Alpass <callumalpass@gmail.com>
2025-08-24 20:30:14 +10:00
..
2025-07-17_21-03-55.png fix: Move inline task widget screenshots to docs/assets folder 2025-07-17 21:19:22 +10:00
2025-07-17_21-04-24.png fix: Move inline task widget screenshots to docs/assets folder 2025-07-17 21:19:22 +10:00
agenda-collapsible-group-and-item-count.gif feat(docs): add saved view heading screenshots and agenda collapsible groups demo\n\n- Task List: add screenshots for heading showing saved view name and completed/total\n- Subtasks Widget: add screenshot showing saved view name and counts in widget header\n- Agenda: add GIF demonstrating saved view heading, counts, and collapsible date groups (with Expand/Collapse All)\n- Include assets (PNG/GIF) under docs/assets 2025-08-18 01:32:51 +12:00
collapse-expand-all-buttons.gif feat(tasklist): expand/collapse all controls in top bar (3.19.1) 2025-08-15 23:05:26 +10:00
custom-user-fields-list-filter.gif Feature/Custom User Fields Mapping: Option to filter on your own frontmatter properties (+ smarter list and numeric filtering) (#471) 2025-08-24 20:17:51 +10:00
custom-user-fields-numeric-filter.gif Feature/Custom User Fields Mapping: Option to filter on your own frontmatter properties (+ smarter list and numeric filtering) (#471) 2025-08-24 20:17:51 +10:00
filter-badge-clear-filter-close-filter.gif fix(filter-bar): resolve UI sync issues and correct button ordering 2025-08-16 12:59:28 +00:00
left-task-subtask-chevron.gif docs: document subtask chevron position setting (inline-tasks, misc settings, demo gif) 2025-08-15 22:58:05 +10:00
saved_views_button_collapse_all.gif feat: add saved views button position setting 2025-08-15 22:50:30 +10:00
saved_views_button_no_expand_collapse_all.gif feat: add saved views button position setting 2025-08-15 22:50:30 +10:00
sort-by-custom-user-fields.gif Group/Sort by Custom User Fields - stacked o PR #471 (User Fields Mapping) (#475) 2025-08-24 20:30:14 +10:00
subtask-widget-collapsible-groups.gif docs: add collapsible groups documentation for subtask widget 2025-08-16 13:55:28 +00:00
subtask_view_nam+count+task_count.png feat(docs): add saved view heading screenshots and agenda collapsible groups demo\n\n- Task List: add screenshots for heading showing saved view name and completed/total\n- Subtasks Widget: add screenshot showing saved view name and counts in widget header\n- Agenda: add GIF demonstrating saved view heading, counts, and collapsible date groups (with Expand/Collapse All)\n- Include assets (PNG/GIF) under docs/assets 2025-08-18 01:32:51 +12:00
tasklist-collapsible-groups.gif feat(tasklist): expand/collapse all controls in top bar (3.19.1) 2025-08-15 23:05:26 +10:00
tasklist_filter_name+count_no_filter.png feat(docs): add saved view heading screenshots and agenda collapsible groups demo\n\n- Task List: add screenshots for heading showing saved view name and completed/total\n- Subtasks Widget: add screenshot showing saved view name and counts in widget header\n- Agenda: add GIF demonstrating saved view heading, counts, and collapsible date groups (with Expand/Collapse All)\n- Include assets (PNG/GIF) under docs/assets 2025-08-18 01:32:51 +12:00
tasklist_filter_name+count_with_filter.png feat(docs): add saved view heading screenshots and agenda collapsible groups demo\n\n- Task List: add screenshots for heading showing saved view name and completed/total\n- Subtasks Widget: add screenshot showing saved view name and counts in widget header\n- Agenda: add GIF demonstrating saved view heading, counts, and collapsible date groups (with Expand/Collapse All)\n- Include assets (PNG/GIF) under docs/assets 2025-08-18 01:32:51 +12:00