mirror of
https://github.com/actualbudget/actual.git
synced 2026-03-25 07:42:48 -05:00
[Feature] Save Filtered Transaction Views #265
Closed
opened 2026-02-28 18:54:47 -06:00 by GiteaMirror
·
16 comments
No Branch/Tag Specified
master
claude/browser-compatible-api-QbhHh
matiss/theme-catalog-responsive-layout
claude/improve-cli-transactions-waTUY
matiss/remove-browser-connection-extension
claude/publish-react-native-ios-j8qoT
js-proxy
claude/fix-flaky-ci-job-5gDdz
react-query-rules
react-query-useSchedules
claude/nightly-theme-validation-scan-DzOGD
claude/debug-simplefin-error-ZuKzB
matiss/desktop-client-subpath-imports
claude/fix-simplefin-ssrf-T31gX
claude/release-notes-validation-X7rvR
add-claude-github-actions-1772738270730
cursor/sync-performance-notification-9899
react-query-prefs
matiss/chunked-sync-and-progress-ux
v26.2.1
copilot/sub-pr-6880
fix-react-query-clear-on-close-budget
copilot/sub-pr-6140
feat/auto-note
feat/scoped-bank-sync
cursor/desktop-transactions-react-table-1d0c
fix-exhaustive-deps-App
copilot/fix-find-replace-bug
release/v26.2.0-pre
matiss/browser-tests
mobile-fix-drag-and-drop-across-groups
budget-table-v2
PayeeAutocomplete2
pglite
bugfix/plugins/fix-plugins-sw
feat/plugins/plugins-core-package
prerelease
matiss/unicode-minus-fix
cursor/fix-actual-github-issue-6206-gemini-3-pro-preview-9c37
TransactionFormPage
cursor/implement-mortgage-and-loan-account-type-78ca
tests-update-fill-with-pressSequentially
mobile/link-modal
deps/25.11
cursor/fix-update-vrt-apply-ci-job-dispatch-b324
sync-server-plugins
cursor/propose-patch-for-github-issue-5680-2a18
fix/compiler-preserve-inner-dollar-escapes
cursor/analyze-actual-budget-issue-and-propose-fix-5b70
coderabbitai/docstrings/0c070e5
cursor/add-wip-prefix-and-comment-to-prs-d78d
jfdoming/08-21-auto-focus-on-navigate-in-all-browsers
show-totals-on-mobile-budget-banners
allow-child-transactions-make-transfer
mobile-calculator-keyboard
payee-geolocation
enhance/restore_scroll_position
dm-fix-second-click-on-mobile-new-transaction-2
scrollToLocationBudget
alert-autofix-38
tsconfig-composite
mobile-fix-uncategorized-transactions-on-tracking-budgets
server-budget-handlers
fix-sql-injection-in-cleanup-template
non-chrome-draggable-workaround
mobile-budget-page-swipe-navigation
ts-db-all
stable
dark-theme-with-brand-colors
fix-mobile-delete-group
ts-db-select
UnderKoen/reconcile-context-menu
master-before-server-merge
v25.2.1
ts-runQuery
rename-redux-hooks
UnderKoen/3557-persist-state-in-history
remove-redux-CLOSE_BUDGET
fix-exhaustive-deps-errors-FinancesApp
redux-toolkit-createSlice-backup
accounts-function-component
ts-useSplitsExpanded
loot-core-server-package
useTransactios-in-TransactionEdit
react-aria-input
move-redux-to-desktop-client
QueryState-type
fix-themes-applied-late
mobile-vrts
revert-3295-spendingCardFix
react-aria-button-4
split-payee-on-mobile
twk3/pin-apis-crdt
notes-tag-autocomplete
ts-LoadBackup
dnd-kit
package-upgrades
v26.3.0
v26.2.1
v26.2.0
v26.1.0
v25.12.0
v25.11.0
v25.10.0
v25.9.0
v25.8.0
v25.7.1
v25.7.0
v25.6.1
v25.6.0
v25.5.0
v25.4.0
v25.3.1
v25.3.0
v25.2.1
v25.2.0
v25.1.0
v24.12.0
v24.11.0
v24.10.1
v24.10.0
v24.9.0
v24.8.0
v24.7.0
v24.6.0
v24.5.0
v24.4.0
v24.3.0
v24.2.0
v24.1.0
v23.12.0
v23.11.0
v23.10.0
v23.9.0
v23.8.1
v23.8.0
v23.7.2
v23.7.1
v23.7.0
v23.6.0
v23.5.0
v23.4.2
v23.4.1
v23.4.0
v23.3.2
v23.3.0
v23.2.9
v23.2.5
v23.1.12
v22.12.9
Labels
Clear labels
AI generated
API
bank sync
budgeting
bug
can’t replicate
dependencies
docker
documentation
electron
experimental feature
feature
feedback
goal templates
good first issue
help wanted
importers
maintenance
needs info
needs testing
needs triage
needs votes
openid
payees
pull-request
regression
reports
responsive
rules
schedules
server
✨ merged
split transactions
tech debt
theme
transaction import
transaction reconciliation
transactions
translations
upstream
user interface
✅ approved
wontfix
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/actual#265
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Kidglove57 on GitHub (Feb 8, 2023).
Verified feature request does not already exist?
💻
Pitch: what problem are you trying to solve?
Actual provides a comprehensive filter tool to view transactions filtered by a date range and then by category, payee, note etc. By using the tick selection at the top of the filtered view a total can be seen. I use this frequently, However, it is laborious to remake these filters each time they are used. It would be wonderful to have a way to save frequently used filter “views”. Perhaps as a prelude or supplement to a more comprehensive reports solution?
Describe your ideal solution to this problem
A way (and place) to save filtered transaction views for reuse.
Teaching and learning
No response
@j-f1 commented on GitHub (Feb 8, 2023):
I like this idea! Maybe you could pick an icon/name for the saved filter and then it would show up above the list of accounts?
@j-f1 commented on GitHub (Feb 8, 2023):
Related: https://github.com/actualbudget/actual/issues/643
@Kidglove57 commented on GitHub (Feb 8, 2023):
That is an excellent idea. To avoid cluttering the sidebar these saved filters could be held in a closed (by default) drop-down menu (much like "Closed Accounts" are now).
An old Mac budgeting app called "Moneywell" uses exactly this approach.
@carkom commented on GitHub (Feb 28, 2023):
I really like the way Actual currently does Filters - super easy and intuitive to follow. It's been suggested to add checkboxes to the filters list #699 but I think this would severly limit the current UIs abilities.
Here's an option that could satisfy both issues, and IMO give a really clean, intuitive flow.
First: a new "Custom Filters" page gets dropped into the "More" section of the sidebar. This allows the current sidebar to remain unchanged and de-cluttered.
Second: the "Customer Filters" page functions very similarly to the rules page. Where you see a list of your current custom filters and can add/edit/delete them. The "create new filter" button brings up a window very similar to the new rules window. This is where checkboxes can be implemented to bulk add/delete filters by group and negate any that need removed. Can add as many filters as you like.
Third: The new custom filters list will be shown in the current implementation of filters where if you click on "Custom" you'll get the option to apply any of your current custom filters list.
@j-f1 commented on GitHub (Feb 28, 2023):
That looks great! Would you be interested in implementing it @carkom?
@carkom commented on GitHub (Mar 1, 2023):
Yea, I'll get a branch started for it. I'll likely need help along the way. Cheers!
@carkom commented on GitHub (Mar 2, 2023):
I have what I think is a pretty good start on it. I'm not an expert in React or js so could use an assist. I'm better with front end elements so I'm falling over a bit on the actual saving of a new list. I have the page built (mostly copied from RulesPage logic) and the sidebar created. I have the form working just need help with the creation, recall and saving of a new list.
Branch: https://github.com/carkom/actual/tree/customFilter
Line where my knowledge runs out:
af1a9c6814/packages/desktop-client/src/components/ManageCustomFilters.js (L499)I also need help with the "onSave" part of the form, how/where does it actually save the current form info?
@j-f1 commented on GitHub (Mar 17, 2023):
Hi! Sorry for the delay in responding here. I think this will need a new data structure in the database, see https://github.com/actualbudget/actual/blob/master/packages/api/migrations/1618975177358_schedules.sql for the database migration that added schedules. You’d then need to add code to the client side to create/update saved filters. Here’s some relevant code for schedules, but you’d need to develop code for any mutations you’d want to perform too.
610a044f5f/packages/loot-core/src/client/data-hooks/schedules.js (L24-L57)Here’s the create/update/delete code for schedules:
610a044f5f/packages/loot-core/src/server/schedules/app.js (L179-L298)@CaptainLexington commented on GitHub (Mar 20, 2023):
It would be nice if there were an option for setting a filter to be enabled persistently, as well. I would make a filter to hide Cleared transactions and apply it to all my on-budget accounts.
@carkom commented on GitHub (Mar 28, 2023):
Hi @j-f1, thanks for the reply. I don't think I know enough about the backend workings of React to do this job adequately. Does someone who knows this better have any time they can put toward this issue? Thanks!
@github-actions[bot] commented on GitHub (May 1, 2023):
✨ Thanks for sharing your idea! ✨
This repository is now using lodash style issue management for enhancements. This means enhancement issues will now be closed instead of leaving them open. This doesn’t mean we don’t accept feature requests, though! We will consider implementing ones that receive many upvotes, and we welcome contributions for any feature requests marked as needing votes (just post a comment first so we can help you make a successful contribution).
The enhancement backlog can be found here: https://github.com/actualbudget/actual/issues?q=is%3Aissue+label%3A%22needs+votes%22+sort%3Areactions-%2B1-desc
Don’t forget to upvote the top comment with 👍!
@rich-howell commented on GitHub (May 31, 2023):
Here are some of my thoughts....I have put the same in Discord
Do we want the ability to name/title the filters? - I said yes, so that they are easier to select in the filter drop down list of transactions tableI think this is a massive yes, it would become really tricky to manage if filters were not managable.
Do we want to be able to set a "default" filter for each page?They are not at the moment, is this something we want to change? How do you then remove the filter that is applied as a default, what would that workflow look like?
Would this be globally over all account pages or would it be possible to set this per account? How would I manage which filters are set on which pages?
Other thoughts/comments?Personally I am not a massive fan of the narrative
Custom Filterswe have Rules some of which are custom made and they all live under the headingRulesI feel this should be the same forFiltersIn your RFC you show the drop down with a custom option at the bottom, what happens when you click that? Does a modal appear to apply a filter to the page? What if I have a default filter set, if I refresh will the custom non default filter be removed and my default filter applied?
What if someone adds a large amount of Filters, how do we prevent the screen that appears when you click custom from becoming massive but give users the flexibility to add Filters should they wish?
If I have applied a custom filter and want to remove it how would that work? What would the workflow for that look like?
@carkom commented on GitHub (May 31, 2023):
Thanks for the discussion points. All are needed to be decided on. I agree with you that "default" filters are problematic and should likely be left out.
Personally I am not a massive fan of the narrative Custom Filters we have Rules some of which are custom made and they all live under the heading Rules I feel this should be the same for FiltersI, agree on naming conventions "Filters" rather than "Custom Filters" for the creation page. A point to consider: when choosing the "Filters" drop down on transactions page the new option at the bottom would also say "Filters" which isn't super intutitive. Would you suggest we keep that as saying "Custom Filters" to help avoid confusion? Or may "Pre-made" or "Saved Filters"?
What if someone adds a large amount of Filters, how do we prevent the screen that appears when you click custom from becoming massive but give users the flexibility to add Filters should they wish?My vision was that this would copy current functionality with a list and a scroll bar. That way you can add as many as you would like and they could all be listed in a format that matches existing UI.
If I have applied a custom filter and want to remove it how would that work? What would the workflow for that look like?As before, I'd imagine we copy existing functionality for when a custom filter is chosen. Just like when a category filter is chosen it shows up under the title bar with an "X" next to it. This both shows that the filter is applied and gives an opportunity clear it if you like.
This does bring up another point in my mind - can custom filters be applied alongside regular filters? My first inclination is to say yes, if you want to add another filter to an existing custom filter you would be able to do that.
@j-f1 commented on GitHub (May 31, 2023):
Maybe the existing filter menu could be swapped to a menu with a button to create a blank filter, choose from a recently applied filter (we could auto-save these), or pick a saved filter? (this might need autocomplete UI to allow filtering if people have a lot of filters

Then you’d be able to add a filter with a new button

…and maybe there’d be a way to save the current display as a new filter, or (if you started from an existing filter) update that filter
@carkom commented on GitHub (May 31, 2023):
I like this. Could go with "New", "Save Current", "Quick Filter", "Recents", "Saved". The last 3 would open sub menus. Quick filter being the existing filter options (so we can keep that UI). Recents has 5 most recent filters. Saved would open a scrollable list of all your saved filters so you could have as many as you want really.
Tricky part about this implementation is logic on when/how to save a "Recent" filter. Do you capture as soon as one is chosen or updated? Or when the page is abandoned, then you capture the last filter on it. I could see it making things a bit complicated.
I like the idea, it does add useable options. I might advocate for the simplest solution to start off. Can add to it later if we decide it's the right move.
@MatissJanis commented on GitHub (Aug 22, 2023):
Saving filters is done and available (since version v23.7.0 I think).
Removing "needs votes" label.