nextcloud / nextcloud/contacts
Drag & Drop assignment of Contacts only works reliably when marking the contact first.
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 642
- Forks
- 220
- Avg merge
- 14h 39m
- Merged PRs (30d)
- 51
Description
Describe the bug
Hi NC Fam!
I found a weird behaviour that "most of the times" when dragging and dropping contacts, without priory highlighting of the entry.
I was able to reproduce this on Brave / Chromium engine, Safari and Firefox. Seems a global issue, not browser-related
Steps to reproduce
- Go to 'Contacts'
- Have a group you want to add users to
- go to "ungrouped Contacts', directly drag and drop users into the new group
- It seems like the change is committed, however, when reloading, most of the contacts added to the group won't be stored.
Expected behavior
Contacts should be saved properly, as the UI indicates.
Actual behavior
Contacts are displayed in the group until you reload. Changes then are gone.
Contact version
8.3.7
Operating system
osx
PHP engine version
PHP 8.3
Web server
Apache (supported)
Database
PostgreSQL
Additional info
As this is easier to understand by seeing the behaviour, ive created a short screencast demonstrating.
https://drive.google.com/file/d/1xTpLw7RYyQy4LNn5jiOgd-55DM1vNAH_/view?usp=sharing
The Event that is "NOT" Triggered is the PUT Event with the VCF on https://nc.horst/remote.php/dav/addressbooks/users/admin/contacts/[contactId.vcf]
Truncated Curl (Cookies, Tokens anyonymized)
curl 'https://nc.horst/remote.php/dav/addressbooks/users/admin/contacts/08EA2FDB-18FD-44FA-A617-C5BF8E1CEC99.vcf' \ -X 'PUT' \ -H 'accept: application/json, text/plain, */*' \ -H 'accept-language: de-DE,de;q=0.7' \ -H 'cache-control: no-cache' \ -H 'content-type: text/vcard; charset=UTF-8; charset=UTF-8' \ -b 'oc_sessionPassphrase=b8...co; __Host-nc_sameSiteCookielax=true; __Host-nc_sameSiteCookiestrict=true; o....d9; nc_username=admin; nc_token=37....qF; nc_session_id=19....d9' \ -H 'depth: 0' \ -H 'if-match: "c...."' \ -H 'origin: https://nc.horst' \ -H 'pragma: no-cache' \ -H 'priority: u=1, i' \ -H 'requesttoken: iq....arU=' \ -H 'sec-ch-ua: "Chromium";v="146", "Not-A.Brand";v="24", "Brave";v="146"' \ -H 'sec-ch-ua-mobile: ?0' \ -H 'sec-ch-ua-platform: "macOS"' \ -H 'sec-fetch-dest: empty' \ -H 'sec-fetch-mode: cors' \ -H 'sec-fetch-site: same-origin' \ -H 'sec-gpc: 1' \ -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36' \ -H 'x-requested-with: XMLHttpRequest, XMLHttpRequest' \ --data-raw $'BEGIN:VCARD\r\nVERSION:3.0\r\nFN:Hildegard Hopfensmoothie\r\nN:Hopfensmoothie;Hildegard;;;\r\nEMAIL;TYPE=INTERNET:hildi@brauerei-wellness.test\r\nTEL;TYPE=WORK:0800-BIER-HER\r\nORG:Institut für angewandtes Vorglühen\r\nTITLE:Chief Hydration Officer\r\nUID:e278ca7c-ac50-4599-a6c6-48e16bdbfd46\r\nREV:20260407T0811Z\r\nCATEGORIES:World Domination Group\r\nEND:VCARD'
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 reproducing the Contacts drag-and-drop flow described in the issue and monitor requests to the CardDAV contact URL. Verify that moving an unhighlighted contact triggers the PUT request and that the assignment remains after reloading; the issue provides no source file or test name.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- api, frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100