nextcloud / nextcloud/contacts
Aggregate duplicate contact cards into a single entry in the frontend
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.
When a contact exists in multiple address books (e.g., a local card and a system/read-only card), duplicate contact cards appear in the app, causing confusion and a cluttered contact list.
Describe the solution you'd like
On the frontend, duplicate contact cards for the same person should be automatically aggregated and displayed as a single unified contact entry. The underlying separate cards would remain intact on the backend. When a user edits the aggregated contact, changes should be written only to the writable card (i.e., the non-system address book card), leaving the read-only system card untouched.
Related
https://github.com/nextcloud/server/issues/4643
Original ticket text
Describe the bug
I am using the Contacts app to organize different groups of people involved in a project, and I need to invite a few external users as guests to allow them to contribute to it. Doing so bypasses contacts already defined in my contact book and instead creates duplicate (read-only) contacts. I am unable to merge custom and read-only contacts, and cannot edit the guest-user contact to use it as the main contact with contact groups and other information. I am forced to have two contacts in the book.
Potential follow-up of #1772.
Steps to reproduce
- Create a contact with an external email address (creates custom contact).
- Try to share a folder in the Files app using the same external email address (it does not list your new contact).
- Instead, invite that person as a guest user using the same external email address (creates guest contact).
OR
- Share a folder in the Files app using an external email address, by inviting that person as a guest user (creates guest contact).
- Create a contact with the same external email address (creates custom contact).
Expected behavior
I expected to have a single contact per external email address.
Actual behavior
In either case listed above, one can go to Contacts and see the duplicates. The guest contact has an "compound" email like "external@address.domain@my-server.domain", is "read-only" and cannot be merged.
Contact version
31.0.14 Enterprise
Operating system
No response
PHP engine version
None
Web server
None
Database
None
Additional info
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
Start by tracing the frontend contact-list rendering and the edit flow for writable versus read-only cards; no specific files or tests are named in the issue. Confirm how duplicate people are identified, then verify that one unified entry is displayed, edits affect only the writable card, and the separate backend cards remain intact.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100