Add effective-date transaction filtering and bulk selection

This commit is contained in:
2026-06-15 21:38:25 +02:00
parent 1c88d12f0d
commit 238a30ae0c
12 changed files with 668 additions and 28 deletions

View File

@@ -0,0 +1,41 @@
---
id: TASK-4
title: Add selection total to transactions
status: In Progress
assignee: []
created_date: '2026-06-15 19:21'
updated_date: '2026-06-15 19:24'
labels: []
dependencies: []
priority: high
ordinal: 4000
---
## Description
<!-- SECTION:DESCRIPTION:BEGIN -->
Add table selection controls on the transactions page so visible/filtered rows can be selected in bulk and the sum of selected transaction amounts is shown.
<!-- SECTION:DESCRIPTION:END -->
## Acceptance Criteria
<!-- AC:BEGIN -->
- [x] #1 A select-all control can select and clear all currently visible filtered transactions
- [x] #2 Individual row selection continues to work alongside the select-all control
- [x] #3 The UI displays the count and formatted euro total of selected transactions
- [x] #4 Automated tests cover bulk selection and selected-total behavior
<!-- AC:END -->
## Implementation Plan
<!-- SECTION:PLAN:BEGIN -->
1. Inspect current transaction table selection behavior
2. Add failing coverage for select-all and selected sum
3. Implement visible-row bulk selection and selected total UI
4. Run focused tests/build and update acceptance criteria
<!-- SECTION:PLAN:END -->
## Implementation Notes
<!-- SECTION:NOTES:BEGIN -->
Added failing Vitest coverage for visible bulk selection and selected totals, then implemented transactionsSelection helpers and wired TransactionsPage header checkbox plus selected count/sum. Focused test and build pass. Global lint currently fails on pre-existing unrelated lint errors in Convex/generated/UI files.
<!-- SECTION:NOTES:END -->

View File

@@ -0,0 +1,40 @@
---
id: TASK-5
title: Make transaction filters combinable
status: In Progress
assignee: []
created_date: '2026-06-15 19:32'
updated_date: '2026-06-15 19:34'
labels: []
dependencies: []
priority: high
ordinal: 5000
---
## Description
<!-- SECTION:DESCRIPTION:BEGIN -->
Fix the transactions page so global timeframe, account, and month-basis filters are applied together with page-level filters like search, type, category, and pending-only.
<!-- SECTION:DESCRIPTION:END -->
## Acceptance Criteria
<!-- AC:BEGIN -->
- [x] #1 Changing the date range filters the transactions list
- [x] #2 Account, month basis, search, type, category, and pending-only filters combine instead of overriding each other
- [x] #3 Automated tests cover combined transaction filtering
<!-- AC:END -->
## Implementation Plan
<!-- SECTION:PLAN:BEGIN -->
1. Trace current filter data flow from shared controls to transactions query
2. Add failing Convex test for combined date/account/category/search filtering
3. Extend transactions list query args and wire TransactionsPage to shared filters
4. Run focused tests, full tests/build, and update task notes
<!-- SECTION:PLAN:END -->
## Implementation Notes
<!-- SECTION:NOTES:BEGIN -->
Root cause: TransactionsPage did not pass global from/to/account/monthBasis filters into api.transactions.list, and transactions.list ignored date filters on the search-index path. Added red Convex tests covering combined filters and effective-month basis, then added basis/date filtering in the query and wired global filters from the page. Focused tests and build pass.
<!-- SECTION:NOTES:END -->

View File

@@ -0,0 +1,32 @@
---
id: TASK-6
title: Add transaction filter reset button
status: In Progress
assignee: []
created_date: '2026-06-15 19:35'
updated_date: '2026-06-15 19:37'
labels: []
dependencies: []
priority: medium
ordinal: 6000
---
## Description
<!-- SECTION:DESCRIPTION:BEGIN -->
Add a reset button on the transactions page that clears the active filter combination and returns global plus page-level transaction filters to their defaults.
<!-- SECTION:DESCRIPTION:END -->
## Acceptance Criteria
<!-- AC:BEGIN -->
- [x] #1 A reset button is available on the transactions page filter bar
- [x] #2 Clicking reset clears search, type, category, account, pending-only, and row selection
- [x] #3 Clicking reset returns date range and month basis to their defaults
- [x] #4 Automated tests cover the reset defaults
<!-- AC:END -->
## Implementation Notes
<!-- SECTION:NOTES:BEGIN -->
Added a transactions toolbar reset button using shared reset defaults. The button clears global filters (current month, all accounts, no categories, effective month basis), clears page filters (search, type, pending-only), and clears row selection. Added Vitest coverage for reset defaults. Focused tests and build pass.
<!-- SECTION:NOTES:END -->