nextcloud / nextcloud/contacts
Create virtual address books from existing one by category
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 642
- Forks
- 220
- Avg merge
- 14h 39m
- Merged PRs (30d)
- 51
Description
Is your feature request related to a problem? Please describe.
I have following problem / use case:
I don't want Whatsapp to check all my phone numbers against Whatsapp servers. Therefore I've created a separate address book for Whatsapp contacts only. This addressbook always gets out of sync with my main address book.
In business context I could create a virtual address book for each client but also have all contacts together in a main address book. I would have more control over address book shares: I only share contacts with persons that need the contact data.
Describe the solution you'd like
The user can create a virtual address book based on a specific category of an existing address book. Lets say for example:
- Category: "Foo"
- Existing address book: "Main"
- Virtual address book: "Virtual-Foo"
Only contacts with the category "Foo" appear in the "Virtual-Foo". When a new contact is pushed to "Virtual-Foo" it automatically gets the category "Foo". When accessing the a retrieving contact over the virtual address book, the category "Foo" is removed. This makes the process transparent to the client which uses "Virtual-Foo" (Imagine the user removes the category "Foo" manually on his client device this could cause problems which we can avoid here).
Main address book:
| Contact | Category | Phone Number |
|---|---|---|
| Jane | Family, Foo | 0001 |
| Joe | Family | 0002 |
| Jenny | Foo | 0003 |
| Boss | Work | 0004 |
"Virtual-Foo" address book:
| Contact | Category | Phone Number |
|---|---|---|
| Jane | Family | 0001 |
| Jenny | - | 0003 |
Describe alternatives you've considered
An alternative I see is to modify the client but this needs to be done for many platforms. A central solution would be better.
Additional context
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no files, tests, or entry points; start by locating the Contacts address-book and CardDAV handling, then trace how categories are stored and exposed. Done means a virtual address book filters by one category, synchronizes new contacts back to the source category, and hides that category when contacts are retrieved.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100