contacts
contacts copied to clipboard
Add new option to hide an address book's contacts without disabling the address book
This issue results from dialog in Enable/disable address books #412.
The new option already implemented to disable an address book seems to do that on such a low level that it is then disabled per se - for all purposes. For this reason, it is not possible to disable an address book which has been shared with you rather than belonging to you.
In many use cases - team work, small to medium businesses, large contact archives used only seldom - we need a different function: to HIDE the contacts of a particular address book from the VIEW of the logged-in user (available also when not the owner). This is especially true as the historical design of the contacts app is to load all the visible contacts to the front end and then do all the nifty things like selection by category in JS. Which is great with up to (nowadays) about 1000 contacts, but becomes sluggish to unbearable the more you go over the top of that limit.
I would personally prefer that hidden contacts would still be searchable when I type in part of a name or email in the Contacts app search box. And I would certainly want that contacts hidden in the Contacts app (but not disabled) be active for the mail app, e.g. to make sure that mails from contacts known to me are not put into the spam folder.
Finally, in the settings area, if the little "dotdotdot" dropdown for each address book gets a further option "hide/show", then we should really try to explain the difference between Disable and Hide right there where the user has that choice - are tooltips possible there?
Some remote part of me is still dreaming about a backend-based variant of this app - termed by yours truly "Big Contacts" - which would allow working with many thousands of contacts, with the frontend fetching them piece by piece from the backend via traditional lazy loading / infinite scrolling, see this issue.
Be that as it may, the abilty to hide an address book would be a great step on - so thanks John, thanks Henni, thanks Alexander!
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Thanks for the summary, @timreeves . My personal preference would be that searches only be done in the visible address books. Otherwise the search results may be quite confusing.
Concerning the way how to make an address book visible or not, I'd prefer to have a check box beside each name in the address books list rather than have the option hidden in a dotdotdot menu.
It would be useful anyway to see the full list of address books, and a marker (like a checkbox) telling if the contacts from a particular address book are visible in the contacts list, or not.
I have more than 30 address books, and imagine what I have to do if I want to switch from a "display all" view to a "display only one or two" view. If you have to open the context menu for each address book and select "visible" or "not visible" then that's simply annoying. If you can just click on a checkbox next to an address book for each address book then it's much easier.
Also it would be nice to have a button like "make all address books visible" or "make make all address books invisible" so you can do a selection much easier.
Again, you may want to have a look at the "cardbook" addon for Thunderbird, or the "kontacts" app from KDE to see how usable this can be.
As before, the comments of @mburnicki are good - thanks Martin! I also use TB Cardbook (on Kubuntu), and I must admit that having the checkboxes to show/hide right next to the address book name is nifty - although I hardly ever use them as local processing of my sum total 1000 contacts is subjectively lag-free. Not sure I agree with Martins search preference though. While the logic he uses is clean, allowing search results from hidden address books could be helpful, especially when you have quite a few and some are visible and some hidden - then you might end up showing/hiding several address books while (cussing and) searching for a contact you're sure you have somewhere... Not to mention that turning all address books on is a speed problem for those of us with a total of many contacts - that's one main reason why I want to turn some of them off! As a compromise: How about displaying hits in hidden address books with a light grey background and tooltip; or possibly better, a search option (radios?) to specify with / without hidden address books?
@timreeves My search preference was only for the list of contacts shown in the contacts list, when maintaining the address books.
Of course the search should include all contacts when used by a mail app, either to select the To: contact, or to whitelist a "From:" contact. In fact I also use contact photos for most of my contacts, so I can immediately see in the list of emails on my android phone that the mail has been sent by a contact from one of my address books.
On my phone I've also just a subset of my contacts displayed in a list by default, and others only appear when they meet a search criteria. This is what you prefer, IIRC, and I prefer this on my phone, too, but not when maintaining the contacts data base. ;-)
So your proposal to show contacts from address books marked as "non visible" with light grey background in the list of search results would indeed be a good compromise. Or there should be a configuration option like "Also search invisible address books" which can quickly be toggled.
In my opinion the first step would be implementing a show/hide option. This option should change a setting which is stored in localstorage. This allows the use case that different addressbooks should be displayed on different machines (personal / work environment). Contacts of hidden addressbooks should internally be removed from the contacts array (instead of only filtering them out) to increase performance with large addressbooks.
We should also take a look at how other apps (i.e. calendar) do this.
Features like:
Also it would be nice to have a button like "make all address books visible" or "make make all address books invisible" so you can do a selection much easier.
or:
As a compromise: How about displaying hits in hidden address books with a light grey background and tooltip; or possibly better, a search option (radios?) to specify with / without hidden address books?
can be added later on, when we have the basic functionality.
I had some other things to do, so I'm really late to participate and explain what was my understandig of how the disable button works. I just wanted to say thanks to @timreeves and @mburnicki, as they just read my mind and described better than I, what I was looking for!
THANK YOU!
As I'm no developer, I can't assist in implementing, but I'm here if testing is needed.
I would consider this very useful as well in order to allow navigating throughout the various address books I have been shared with. Some I cannot modify so when tidying up my address book it would be nice to focus only on the modifiable contacts. Then I need to hide these that are shared with me.
I need this feature and I think I can implement it. Would you accept a PR for it, or is there some larger refactoring/redesign going on that would be a reason for postponing work here?
Taking calendar apps as an inspiration, I could imagine adding a colored circle to each address-book (color generated from the name or something. Maybe configurable later?) and then simply adding those circles as swatches above the groups list. They'd have a title attribute so you can see the name when hovering them.
The rest would be pretty much as described above.
What do you think?
May I suggest an alternative with search filters ?
If I have address books "work", "home" & "other" and type "home" or "addressbook:home" in the search field I'd expect to only see the "home" contacts.
Hence, clicking on the address books on the left could lead to starting the appropriate search ?
(ex. if I click on the "home" and "work" address book it could lead to starting a search with "addressbook:home,work" therefore only showing their contacts ?)
I'd like to hide an addressbook from the webview aswell. When having CardDAVs used in E-Mail clients, they get huge and clutter the view.
A "click to show/hide" feature similar to the Calendar app would be very useful.
I also would pretty much like a filter option in contacts similar to that in calendar. Otherwise I have no idea how to use contacts shared with groups
As from a users perspective it is essential to be able to focus at "needed" information. Temporarily hiding address books, as mentioned by @ristein, will be a practicable solution.
btw: pse close this thread after 5 years with a solution :-)
Reopen this until https://github.com/nextcloud/server/pull/38397 is merged.