[Feature] Save Filtered Transaction Views #265

Closed
opened 2026-02-28 18:54:47 -06:00 by GiteaMirror · 16 comments
Owner

Originally created by @Kidglove57 on GitHub (Feb 8, 2023).

Verified feature request does not already exist?

  • I have searched and found no existing issue

💻

  • Would you like to implement this feature?

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

Originally created by @Kidglove57 on GitHub (Feb 8, 2023). ### Verified feature request does not already exist? - [X] I have searched and found no existing issue ### 💻 - [ ] Would you like to implement this feature? ### 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_
GiteaMirror added the user interfacefeaturehelp wanted labels 2026-02-28 18:54:47 -06:00
Author
Owner

@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): 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?
Author
Owner

@j-f1 commented on GitHub (Feb 8, 2023):

Related: https://github.com/actualbudget/actual/issues/643

@j-f1 commented on GitHub (Feb 8, 2023): Related: https://github.com/actualbudget/actual/issues/643
Author
Owner

@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.

@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.
Author
Owner

@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.

image

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.

image

@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. ![image](https://user-images.githubusercontent.com/55785687/221852773-3fd5f3a3-853d-4361-b244-7f08798246e3.png) 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. ![image](https://user-images.githubusercontent.com/55785687/221853134-6af1f3bf-d2e5-4f6e-a898-90f01a402e37.png)
Author
Owner

@j-f1 commented on GitHub (Feb 28, 2023):

That looks great! Would you be interested in implementing it @carkom?

@j-f1 commented on GitHub (Feb 28, 2023): That looks great! Would you be interested in implementing it @carkom?
Author
Owner

@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 1, 2023): Yea, I'll get a branch started for it. I'll likely need help along the way. Cheers!
Author
Owner

@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?

@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: https://github.com/carkom/actual/blob/af1a9c6814e04684eb2403dd5085049ca6a7ba29/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?
Author
Owner

@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)

@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. https://github.com/actualbudget/actual/blob/610a044f5f4f71329d27d0e8b2955455615ba6a2/packages/loot-core/src/client/data-hooks/schedules.js#L24-L57 Here’s the create/update/delete code for schedules: https://github.com/actualbudget/actual/blob/610a044f5f4f71329d27d0e8b2955455615ba6a2/packages/loot-core/src/server/schedules/app.js#L179-L298
Author
Owner

@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.

@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.
Author
Owner

@carkom commented on GitHub (Mar 28, 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.

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!

@carkom commented on GitHub (Mar 28, 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. 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!
Author
Owner

@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 👍!

@github-actions[bot] commented on GitHub (May 1, 2023): :sparkles: Thanks for sharing your idea! :sparkles: 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 👍!
Author
Owner

@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 table

I 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 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 Filters

In 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?

@rich-howell commented on GitHub (May 31, 2023): Here are some of my thoughts....I have put the same in [Discord](https://discord.com/channels/937901803608096828/1027831756545609789/1113513670878699691) `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 table` I 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 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 `Filters` In 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?
Author
Owner

@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 Filters

I, 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.

custom

@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 Filters` I, 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. ![custom](https://github.com/actualbudget/actual/assets/55785687/3bf58cbf-3d00-4655-887b-69426cc6a364)
Author
Owner

@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
Screenshot_2023-05-31 17 56 09

Then you’d be able to add a filter with a new button
Screenshot_2023-05-31 17 58 53

…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

@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 <img width="376" alt="Screenshot_2023-05-31 17 56 09" src="https://github.com/actualbudget/actual/assets/25517624/06ac5ea2-4948-4b26-8ac8-d6b7ce218475"> Then you’d be able to add a filter with a new button <img width="314" alt="Screenshot_2023-05-31 17 58 53" src="https://github.com/actualbudget/actual/assets/25517624/91198e1e-5ef7-4eb8-bb47-1eeae78943e7"> …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
Author
Owner

@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.

@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.
Author
Owner

@MatissJanis commented on GitHub (Aug 22, 2023):

Saving filters is done and available (since version v23.7.0 I think).

Removing "needs votes" label.

Screenshot 2023-08-22 at 19 22 45
@MatissJanis commented on GitHub (Aug 22, 2023): Saving filters is done and available (since version v23.7.0 I think). Removing "needs votes" label. <img width="785" alt="Screenshot 2023-08-22 at 19 22 45" src="https://github.com/actualbudget/actual/assets/886567/bfe2ae7c-559d-473e-bd1a-c7540ce8635a">
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#265