keepassxc
keepassxc copied to clipboard
By default, don't show expired items in search results
Summary
When I use the search function at the top, KeePass finds both expired and unexpired items, interleaved because I'm sorting by name.
Examples
I search "VISA" and, as credit cards tend to expire and be replaced with newer ones, it finds:
- My current VISA from bank A
- ~~My old VISA from bank B~~
- ~~My even older VISA from bank B~~
- ~~My old VISA from bank A~~
- My current VISA from bank C
- My visa number for US immitgration.
- ~~My old VISA from bank C~~
- My current VISA from bank B
Note how that's a mess? Can you quickly spot my latest VISA card from bank C? Or my US immigration visa?
Context
I use the search function a lot, in fact when I'm not editing, it's the only way I interact with the app. I'm aware that I could search for visa -is:expired
, but that's too cumbersome (especially on the phone).
Proposal
Idea 1: Unless is:expired
is supplied with or without -
, by default _exclude` expired items from the search results (only when searching, not when opening a directory), and display a button "Also show expired results" at the bottom of the results list (just under the last regular search result).
Idea 2: Have a menu item and/or toolbar button to show/hide expired items in general (in search results, in directory views, etc.). When a search has results that were hidden due to it, show an "Also show expired results" button at the bottom of the results list (just under the last regular search result), which toggles this global setting. Do not persist this view setting, instead have a global configuration option for the default value of this global view setting when the app is freshly opened (personally I would set this to not show expired items, but others might feel differently).
In 2.7.2 you can save searches so you can easily recall your search to exclude expired entries. Also, why are you keeping expired credit cards? If you must, we recommend creating a group for your expired entries and disable search on that group. Generally speaking, I am less inclined to implicitly hide expired entries from search... although your idea of only showing them when is:expired is issued is a decent compromise. Your second proposal is too complicated for this niche problem.
Also, recommend sorting by date modified or created if you are interested in 'the latest' entry.
Sorting by modified date gives me inconsistent results, i.e. things jump up and down depending on when I modified them. I like things to be in a consistent place. But created date might work, I'll try that. (And obviously, I need one sorting order that works for all kinds of search queries, not just credit cards, otherwise I'd have to adjust the sorting every time.)
Also, why are you keeping expired credit cards? If you must, we recommend creating a group for your expired entries and disable search on that group.
Ah that's a good idea, thank you! I already have a "Recycle Bin" apparently. I didn't actively keep them. They just expire at the date I configured once upon a time. But just searching is:expired
and moving them all to the recycle bin has resolved my issue (for now).
although your idea of only showing them when is:expired is issued is a decent compromise.
I also think it's still a reasonable idea. But since you remarked "too complicated" on the other idea, I wonder if you meant "too complicated for users to understand/use" or "too much work to implement". If the latter, let me point out that my first idea is also only really user-friendly in combination with the button/message at the end of the result list that hints to the user that expired items are being hidden.
A button to show expired or excluded results is a good idea in general, we do that for database reports. We also get issues from folks who say search is broken but their folder disabled search 😆
Also, why are you keeping expired credit cards?
Well, why is there such a feature (marking a card as expired) in the first place?!
I use it to enable me to check the history of the card, which sometimes is very useful despite the fact that I am not using the card actively anymore. At the same time, I don't want to see them by default either because they blur matters.
And I don't want to move expired cards elsewhere: they should stay in the hierarchy, just in case.
I had is:expired-3 not show up by default in the search bar whenever KeePassXC starts. I recently switched from AppImage to Flatpak so I wasn't able to figure out where to turn this part off.
nvm. Found it. I unchecked "On database unlock, show entries that will expire within 3 days." under settings.
I'd greatly appreciate such an option as well. The drop down menu of the search bar's magnifier icon (the one with the "Case insensitive" entry) could imho be a suitable place for such an option (to show/hide expired entries in search results). Doesn't even have to be enabled by default. Just a thought...