From 8644a6e3d08266a6fc552fcea14436788a09e02b Mon Sep 17 00:00:00 2001 From: callumalpass Date: Sun, 30 Nov 2025 18:57:07 +1100 Subject: [PATCH] fix: add missing getNextStatus mock in TaskCard context menu tests --- docs/releases/4.1.0.md | 177 +++++++++++++++++++++ docs/releases/unreleased.md | 175 -------------------- tests/unit/ui/TaskCard.contextmenu.test.ts | 3 +- 3 files changed, 179 insertions(+), 176 deletions(-) create mode 100644 docs/releases/4.1.0.md diff --git a/docs/releases/4.1.0.md b/docs/releases/4.1.0.md new file mode 100644 index 00000000..543d8070 --- /dev/null +++ b/docs/releases/4.1.0.md @@ -0,0 +1,177 @@ +# TaskNotes 4.1.0 + +## Added + +- (#1245), (#793) Added custom icon support for task statuses + - Configure a Lucide icon name (e.g., `check`, `circle`, `clock`) per status in Settings → Task Properties → Task Statuses + - Icons display instead of the colored dot, inheriting the status color + - Browse available icons at [lucide.dev](https://lucide.dev) + - Improves accessibility by allowing shape-based status differentiation + - Thanks to @3Fish for the feature request and @Raonmir2, @aubreyz, @prayidae, and @anareaty for the discussion on accessibility and icon-based indicators + +- (#1259) Added [Property Types Reference](../settings/property-types-reference.md) documentation + - Documents expected data types (text, list, date, number) for all frontmatter properties + - Includes format specifications, examples, and a complete YAML reference + - Thanks to @Oblique82 for the suggestion + +- (#1248) Added formula property support for sub-grouping in Bases Task List view + - Formula properties (e.g., `formula.myFormula`) now appear in the Sub-group by dropdown + - Supports all Bases Value types including strings, numbers, booleans, dates, and lists + - Thanks to @prayidae for the feature request + +- (#1070) Added formula property support for swimlanes in Bases Kanban view + - Formula properties now appear in the Swim Lane dropdown + - Fixed swimlanes displaying empty when grouping by formula properties + - Note: Dragging tasks between formula-based columns/swimlanes is disabled (formulas are computed values) + - Thanks to @cathywu for reporting + +- (#1010), (#1126) Added batch task selection and editing in Task List and Kanban views + - Shift+click to select multiple tasks + - Right-click selected tasks to open batch context menu + - Batch operations: change status, priority, due date, scheduled date, archive, delete + - Drag multiple selected cards in Kanban to move them together + - Click the selection count indicator to clear selection + - Thanks to @jalooc and @solidabstract for the feature requests + +- (#1207) Added inline search box to Bases views (Task List, Kanban, Calendar) + - Enable via "Enable search box" toggle in view settings + - Searches across title, status, priority, tags, contexts, projects, and visible custom properties + - Press Escape or click × to clear search + - Thanks to @renatomen for the PR + +- (#363) Added "Create or open task" command with NLP-based quick task creation + - Open via command palette or assign a hotkey + - Search existing tasks or type natural language to create new tasks (e.g., "Buy groceries tomorrow #shopping") + - Press Enter to select an existing task, Shift+Enter to create a new task + - Real-time preview shows parsed title, due date, priority, tags, and other metadata + - Can be used when adding sub-tasks to create sub-tasks on-the-fly + - Thanks to @luciolebrillante for the feature request + +- (#1044), (#1222) Added unsaved changes confirmation when closing task edit modal + - Detects modifications to any field (title, dates, priority, tags, etc.) + - Shows confirmation dialog with Save/Discard/Keep Editing options + - Prevents accidental data loss from clicking outside the modal or pressing Escape + - Thanks to @renatomen for the PR and @0-BSCode for the feature request + +- (#904) Added visual highlighting for overdue and past dates on task cards + - Overdue due dates now display in red text + - Past scheduled dates now display in blue text + - Thanks to @ras0q for the suggestion + +- (#1164) Added `priorityWeight` formula to all default Bases templates for priority-based sorting + - Formula maps each priority value to a numeric weight based on your custom priority configuration + - Sort by `formula.priorityWeight` in ascending order to get highest priority tasks first + - Example: `if(priority=="high",0,if(priority=="normal",1,if(priority=="low",2,999)))` + - Thanks to @jhedlund for the suggestion + +- (#1257), (#1064) Added configurable event stacking options for Bases Calendar view + - **Allow events to overlap**: Toggle whether timed events visually overlap or display side-by-side in week/day views + - **Max stacked events**: Limit horizontal event stacking in week/day views (0 = unlimited) + - **Max events per day**: Limit events shown per day cell in month view (0 = auto based on cell height) + - **Max event rows per day**: Limit event rows per day cell in month view (0 = unlimited) + - Configure per-view in the Bases Calendar view settings under Layout + - Thanks to @3zra47 and @hasanyilmaz for the feature requests + +## Changed + +- Improved inline task conversion to merge TasksPlugin and NLP parsing results + - Previously, if a task had hashtags (e.g., `- [ ] Buy milk tomorrow #groceries`), NLP parsing was skipped entirely + - Now NLP always parses the clean title to extract dates/times, then merges with TasksPlugin-extracted metadata + - TasksPlugin explicit values (emoji dates like 📅) take priority over NLP-inferred values + - Tags, contexts, and projects from both sources are combined and deduplicated + +- Polished task card styling for a more native Obsidian look + - Simplified hover and focus states to use native Obsidian colors + - Removed blur filter and shadows from metadata pills + - Fixed subtask chevron vertical alignment with status dot + - Reduced swimlane label column width in Kanban view + +- (#1151) Increased mini calendar heatmap color intensity for better visibility + - Days with notes now show more noticeable colors, especially with low note counts + - Intensity levels increased from 10/25/45/65% to 25/40/55/70% + - Thanks to @arreme for the suggestion + +## Fixed + +- (#1271) Fixed custom user fields not appearing in task modals after creation + - New custom fields are now automatically added to both creation and edit modals + - Deleting a custom field also removes it from modal configuration + - Updating a field's display name syncs to the modal configuration + - Thanks to @craziedde for reporting + +- (#1256) Fixed links in custom properties not rendering as clickable in task cards + - Wikilinks (`[[Note]]`) now render correctly in Bases views + - Markdown links (`[text](url)`) now render correctly in all views + - Links in list-type properties are also properly rendered + - Thanks to @3zra47 for reporting + +- (#1157) Fixed inline task embeds breaking layout when placed in indented bullet lists + - Task titles now wrap naturally within line boundaries instead of forcing the entire card to a new line + - Metadata (dates, tags, etc.) stays inline when space permits, with horizontal scrolling on hover when needed + - Thanks to @3zra47 for reporting + +- (#1241) Fixed deleting custom priorities in settings removing the wrong priority when multiple priorities exist + - Thanks to @Anthonyhunter100 for reporting + +- (#1165) Fixed Kanban view grouping by list properties (contexts, tags, projects) treating multiple values as a single combined column + - Tasks with multiple values now appear in each individual column (e.g., a task with `contexts: [work, call]` appears in both "work" and "call" columns) + - Added "Show items in multiple columns" option (enabled by default) to control this behavior + - Fixed drag-and-drop to properly add/remove individual values instead of replacing the entire list + - Fixed swimlane mode to also respect list property explosion + - Thanks to @dictionarymouse for reporting + +- (#1217) Fixed inconsistent Ctrl+Click/Cmd+Click behavior for opening notes in new tabs + - Note cards and internal links now properly support Ctrl/Cmd+Click to open in new tab + - Added middle-click support for opening in new tab + - Thanks to @diegomarzaa for reporting + +- (#1265) Fixed task edit modal corrupting markdown-style project links on save + - Links like `[Project Name](path.md)` were being wrapped in extra brackets: `[[[Project Name](path.md)]]` + - Plain text project names are now preserved as-is instead of being converted to wikilinks + - Markdown-style project links now resolve properly and display as linked (not orange/unresolved) + - Thanks to @minchinweb for reporting + +- (#1266) Fixed Kanban view scroll position resetting to top of column after any change + - Clicking status dots, priority, or other task properties no longer jumps the column back to top + - Scroll position is now preserved for both regular columns and swimlane cells + - Thanks to @essouflenfer for reporting + +- (#485), (#1221), (#1262) Fixed NLP parser not recognizing non-ASCII characters in tags, contexts, and projects + - Tags like `#investigación` were being truncated at accented characters (e.g., `#investigaci`) + - Non-Latin scripts (Chinese, Cyrillic, Japanese, etc.) were not recognized at all (e.g., `@家`, `#杂事`, `@ознакомиться`) + - Parser now uses Unicode-aware regex patterns to support all languages and scripts + - Thanks to @Arachnidai, @fidelaznar, and @qian1ing for reporting + +- (#1249) Fixed project preview in task creation modal showing quadruple brackets (`[[[[Project]]]]`) + - Projects selected from autocomplete were being wrapped in extra wikilink brackets in the preview display + - Thanks to @2vzqwz8tvg-png for reporting + +- (#1249) Fixed custom priority ordering in settings being unclear and non-intuitive + - Priority cards are now draggable to reorder (like statuses) + - Priorities are displayed in weight order (lowest to highest priority) + - New priorities are added at the end (highest priority) instead of with a fixed weight + - Thanks to @2vzqwz8tvg-png for reporting + +- (#1272) Fixed recurrence anchor not being saved when set to "completion" during task creation + - Selecting "completion" as the recurrence anchor now correctly persists to the task frontmatter + - Thanks to @blaxcky for reporting + +- (#1128) Fixed NLP parser not allowing slashes in context names + - Contexts like `@shopping/groceries` were being split into `@shopping` and `/groceries` + - Hierarchical context names now work the same as tags and projects + - Thanks to @wealthychef1 for reporting + +- (#1170) Fixed `dateCreated` and `dateModified` not using custom property names when creating notes from calendar events + - Notes created from ICS events now respect the field mapping configured in settings + - Thanks to @maddie-m for reporting + +- (#1171) Fixed calendar event toggles not responding to changes after initial load + - Toggling "Show scheduled tasks", "Show due tasks", and other event filters now correctly updates the calendar + - Previously, changing these toggles had no effect until the view was reloaded + - Thanks to @hangryscribe3 for reporting + +- (#1198) Fixed project links being created relative to the wrong file when editing from Bases views + - Relative paths in project links are now correctly resolved relative to the task note file + - Previously, editing a task from a Bases view would create project links relative to the `.base` file + - Thanks to @minchinweb for reporting + diff --git a/docs/releases/unreleased.md b/docs/releases/unreleased.md index 423f8259..c47e5d84 100644 --- a/docs/releases/unreleased.md +++ b/docs/releases/unreleased.md @@ -24,178 +24,3 @@ Example: --> -## Added - -- (#1245), (#793) Added custom icon support for task statuses - - Configure a Lucide icon name (e.g., `check`, `circle`, `clock`) per status in Settings → Task Properties → Task Statuses - - Icons display instead of the colored dot, inheriting the status color - - Browse available icons at [lucide.dev](https://lucide.dev) - - Improves accessibility by allowing shape-based status differentiation - - Thanks to @3Fish for the feature request and @Raonmir2, @aubreyz, @prayidae, and @anareaty for the discussion on accessibility and icon-based indicators - -- (#1259) Added [Property Types Reference](../settings/property-types-reference.md) documentation - - Documents expected data types (text, list, date, number) for all frontmatter properties - - Includes format specifications, examples, and a complete YAML reference - - Thanks to @Oblique82 for the suggestion - -- (#1248) Added formula property support for sub-grouping in Bases Task List view - - Formula properties (e.g., `formula.myFormula`) now appear in the Sub-group by dropdown - - Supports all Bases Value types including strings, numbers, booleans, dates, and lists - - Thanks to @prayidae for the feature request - -- (#1070) Added formula property support for swimlanes in Bases Kanban view - - Formula properties now appear in the Swim Lane dropdown - - Fixed swimlanes displaying empty when grouping by formula properties - - Note: Dragging tasks between formula-based columns/swimlanes is disabled (formulas are computed values) - - Thanks to @cathywu for reporting - -- (#1010), (#1126) Added batch task selection and editing in Task List and Kanban views - - Shift+click to select multiple tasks - - Right-click selected tasks to open batch context menu - - Batch operations: change status, priority, due date, scheduled date, archive, delete - - Drag multiple selected cards in Kanban to move them together - - Click the selection count indicator to clear selection - - Thanks to @jalooc and @solidabstract for the feature requests - -- (#1207) Added inline search box to Bases views (Task List, Kanban, Calendar) - - Enable via "Enable search box" toggle in view settings - - Searches across title, status, priority, tags, contexts, projects, and visible custom properties - - Press Escape or click × to clear search - - Thanks to @renatomen for the PR - -- (#363) Added "Create or open task" command with NLP-based quick task creation - - Open via command palette or assign a hotkey - - Search existing tasks or type natural language to create new tasks (e.g., "Buy groceries tomorrow #shopping") - - Press Enter to select an existing task, Shift+Enter to create a new task - - Real-time preview shows parsed title, due date, priority, tags, and other metadata - - Can be used when adding sub-tasks to create sub-tasks on-the-fly - - Thanks to @luciolebrillante for the feature request - -- (#1044), (#1222) Added unsaved changes confirmation when closing task edit modal - - Detects modifications to any field (title, dates, priority, tags, etc.) - - Shows confirmation dialog with Save/Discard/Keep Editing options - - Prevents accidental data loss from clicking outside the modal or pressing Escape - - Thanks to @renatomen for the PR and @0-BSCode for the feature request - -- (#904) Added visual highlighting for overdue and past dates on task cards - - Overdue due dates now display in red text - - Past scheduled dates now display in blue text - - Thanks to @ras0q for the suggestion - -- (#1164) Added `priorityWeight` formula to all default Bases templates for priority-based sorting - - Formula maps each priority value to a numeric weight based on your custom priority configuration - - Sort by `formula.priorityWeight` in ascending order to get highest priority tasks first - - Example: `if(priority=="high",0,if(priority=="normal",1,if(priority=="low",2,999)))` - - Thanks to @jhedlund for the suggestion - -- (#1257), (#1064) Added configurable event stacking options for Bases Calendar view - - **Allow events to overlap**: Toggle whether timed events visually overlap or display side-by-side in week/day views - - **Max stacked events**: Limit horizontal event stacking in week/day views (0 = unlimited) - - **Max events per day**: Limit events shown per day cell in month view (0 = auto based on cell height) - - **Max event rows per day**: Limit event rows per day cell in month view (0 = unlimited) - - Configure per-view in the Bases Calendar view settings under Layout - - Thanks to @3zra47 and @hasanyilmaz for the feature requests - -## Changed - -- Improved inline task conversion to merge TasksPlugin and NLP parsing results - - Previously, if a task had hashtags (e.g., `- [ ] Buy milk tomorrow #groceries`), NLP parsing was skipped entirely - - Now NLP always parses the clean title to extract dates/times, then merges with TasksPlugin-extracted metadata - - TasksPlugin explicit values (emoji dates like 📅) take priority over NLP-inferred values - - Tags, contexts, and projects from both sources are combined and deduplicated - -- Polished task card styling for a more native Obsidian look - - Simplified hover and focus states to use native Obsidian colors - - Removed blur filter and shadows from metadata pills - - Fixed subtask chevron vertical alignment with status dot - - Reduced swimlane label column width in Kanban view - -- (#1151) Increased mini calendar heatmap color intensity for better visibility - - Days with notes now show more noticeable colors, especially with low note counts - - Intensity levels increased from 10/25/45/65% to 25/40/55/70% - - Thanks to @arreme for the suggestion - -## Fixed - -- (#1271) Fixed custom user fields not appearing in task modals after creation - - New custom fields are now automatically added to both creation and edit modals - - Deleting a custom field also removes it from modal configuration - - Updating a field's display name syncs to the modal configuration - - Thanks to @craziedde for reporting - -- (#1256) Fixed links in custom properties not rendering as clickable in task cards - - Wikilinks (`[[Note]]`) now render correctly in Bases views - - Markdown links (`[text](url)`) now render correctly in all views - - Links in list-type properties are also properly rendered - - Thanks to @3zra47 for reporting - -- (#1157) Fixed inline task embeds breaking layout when placed in indented bullet lists - - Task titles now wrap naturally within line boundaries instead of forcing the entire card to a new line - - Metadata (dates, tags, etc.) stays inline when space permits, with horizontal scrolling on hover when needed - - Thanks to @3zra47 for reporting - -- (#1241) Fixed deleting custom priorities in settings removing the wrong priority when multiple priorities exist - - Thanks to @Anthonyhunter100 for reporting - -- (#1165) Fixed Kanban view grouping by list properties (contexts, tags, projects) treating multiple values as a single combined column - - Tasks with multiple values now appear in each individual column (e.g., a task with `contexts: [work, call]` appears in both "work" and "call" columns) - - Added "Show items in multiple columns" option (enabled by default) to control this behavior - - Fixed drag-and-drop to properly add/remove individual values instead of replacing the entire list - - Fixed swimlane mode to also respect list property explosion - - Thanks to @dictionarymouse for reporting - -- (#1217) Fixed inconsistent Ctrl+Click/Cmd+Click behavior for opening notes in new tabs - - Note cards and internal links now properly support Ctrl/Cmd+Click to open in new tab - - Added middle-click support for opening in new tab - - Thanks to @diegomarzaa for reporting - -- (#1265) Fixed task edit modal corrupting markdown-style project links on save - - Links like `[Project Name](path.md)` were being wrapped in extra brackets: `[[[Project Name](path.md)]]` - - Plain text project names are now preserved as-is instead of being converted to wikilinks - - Markdown-style project links now resolve properly and display as linked (not orange/unresolved) - - Thanks to @minchinweb for reporting - -- (#1266) Fixed Kanban view scroll position resetting to top of column after any change - - Clicking status dots, priority, or other task properties no longer jumps the column back to top - - Scroll position is now preserved for both regular columns and swimlane cells - - Thanks to @essouflenfer for reporting - -- (#485), (#1221), (#1262) Fixed NLP parser not recognizing non-ASCII characters in tags, contexts, and projects - - Tags like `#investigación` were being truncated at accented characters (e.g., `#investigaci`) - - Non-Latin scripts (Chinese, Cyrillic, Japanese, etc.) were not recognized at all (e.g., `@家`, `#杂事`, `@ознакомиться`) - - Parser now uses Unicode-aware regex patterns to support all languages and scripts - - Thanks to @Arachnidai, @fidelaznar, and @qian1ing for reporting - -- (#1249) Fixed project preview in task creation modal showing quadruple brackets (`[[[[Project]]]]`) - - Projects selected from autocomplete were being wrapped in extra wikilink brackets in the preview display - - Thanks to @2vzqwz8tvg-png for reporting - -- (#1249) Fixed custom priority ordering in settings being unclear and non-intuitive - - Priority cards are now draggable to reorder (like statuses) - - Priorities are displayed in weight order (lowest to highest priority) - - New priorities are added at the end (highest priority) instead of with a fixed weight - - Thanks to @2vzqwz8tvg-png for reporting - -- (#1272) Fixed recurrence anchor not being saved when set to "completion" during task creation - - Selecting "completion" as the recurrence anchor now correctly persists to the task frontmatter - - Thanks to @blaxcky for reporting - -- (#1128) Fixed NLP parser not allowing slashes in context names - - Contexts like `@shopping/groceries` were being split into `@shopping` and `/groceries` - - Hierarchical context names now work the same as tags and projects - - Thanks to @wealthychef1 for reporting - -- (#1170) Fixed `dateCreated` and `dateModified` not using custom property names when creating notes from calendar events - - Notes created from ICS events now respect the field mapping configured in settings - - Thanks to @maddie-m for reporting - -- (#1171) Fixed calendar event toggles not responding to changes after initial load - - Toggling "Show scheduled tasks", "Show due tasks", and other event filters now correctly updates the calendar - - Previously, changing these toggles had no effect until the view was reloaded - - Thanks to @hangryscribe3 for reporting - -- (#1198) Fixed project links being created relative to the wrong file when editing from Bases views - - Relative paths in project links are now correctly resolved relative to the task note file - - Previously, editing a task from a Bases view would create project links relative to the `.base` file - - Thanks to @minchinweb for reporting - diff --git a/tests/unit/ui/TaskCard.contextmenu.test.ts b/tests/unit/ui/TaskCard.contextmenu.test.ts index 333e7f0e..a25bfb45 100644 --- a/tests/unit/ui/TaskCard.contextmenu.test.ts +++ b/tests/unit/ui/TaskCard.contextmenu.test.ts @@ -42,7 +42,8 @@ describe('TaskCard Context Menu Event Handling', () => { isCompletedStatus: jest.fn().mockReturnValue(false), getStatusConfig: jest.fn().mockReturnValue({ color: '#666666' }), getStatusIcon: jest.fn().mockReturnValue('circle'), - getStatusColor: jest.fn().mockReturnValue('#666666') + getStatusColor: jest.fn().mockReturnValue('#666666'), + getNextStatus: jest.fn().mockReturnValue('done') }, expandedProjectsService: { isExpanded: jest.fn().mockReturnValue(false)