nextcloud / nextcloud/contacts
Multiple middle (additional) names from vCard are shown with comma
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 642
- Forks
- 220
- Avg merge
- 14h 39m
- Merged PRs (30d)
- 51
Description
Describe the bug
When a vCard with multiple middle names is uploaded, Nextcloud Contacts shows the middle names separted with commas instead of spaces.
Steps to reproduce
- Upload a vCard 4 containing
N:Last;First;Middle1,Middle2;Pre.;Suff.(vCard 3 should also work because it has the same syntax and semantics in this case). For instance, you can - use DAVx⁵ (create DAVx⁵ account with Nextcloud),
- create a contact with at least two middle names and a phone number,
- force synchronization.
- The middle name of the contact will be shown as Middle1,Middle2 instead of Middle1 Middle2. This is probably because the comma is used in vCard to separate entries, but Nextcloud Contacts interprets it as a single string.
- If you then edit the contact in Nextcloud Contacts (for instance, change the phone number), the comma in the middle names will be escaped "correctly". So the vCard is saved as
N:Last;First;Middle1\,Middle2;Pre.;Suff., which will case the wrong comma to propagate into other clients.
Expected behavior
Multiple middle names should be separated by a space in the UI.
Actual behavior
Multiple middle names arew separated by a comma in the UI.
Contact version
4.1.0
Operating system
No response
PHP engine version
PHP 8.0
Web server
Nginx
Database
No response
Operating system
No response
List of activated Apps
Enabled:
- accessibility: 1.9.0
- activity: 2.15.0
- calendar: 3.2.2
- circles: 23.1.0
- cloud_federation_api: 1.6.0
- collectives: 0.22.22
- comments: 1.13.0
- contacts: 4.1.0
- contactsinteraction: 1.4.0
- dashboard: 7.3.0
- dav: 1.21.0
- federatedfilesharing: 1.13.0
- files: 1.18.0
- files_rightclick: 1.2.0
- files_sharing: 1.15.0
- files_trashbin: 1.13.0
- files_versions: 1.16.0
- files_videoplayer: 1.12.0
- firstrunwizard: 2.12.0
- impersonate: 1.10.0
- integration_github: 1.0.2
- integration_twitter: 1.0.2
- logreader: 2.8.0
- lookup_server_connector: 1.11.0
- mail: 1.11.7
- nextcloud_announcements: 1.12.0
- notifications: 2.11.1
- oauth2: 1.11.0
- password_policy: 1.13.0
- photos: 1.5.0
- privacy: 1.7.0
- provisioning_api: 1.13.0
- serverinfo: 1.13.0
- settings: 1.5.0
- sharebymail: 1.13.0
- sociallogin: 4.14.0
- spreed: 13.0.4
- support: 1.6.0
- survey_client: 1.11.0
- talk_matterbridge: 1.23.2
- tasks: 0.14.4
- text: 3.4.1
- theming: 1.14.0
- twofactor_backupcodes: 1.12.0
- updatenotification: 1.13.0
- user_status: 1.3.1
- viewer: 1.7.0
- weather_status: 1.3.0
- workflowengine: 2.5.0
Disabled:
- admin_audit
- duplicatefinder: 0.0.13
- encryption
- federation: 1.3.0
- files_external: 1.12.1
- files_pdfviewer: 1.7.0
- recommendations: 1.1.0
- systemtags: 1.3.0
- user_ldap
Nextcloud Signing status
No errors have been found.
Configuration report
{
"system": {
"instanceid": "***REMOVED SENSITIVE VALUE***",
"passwordsalt": "***REMOVED SENSITIVE VALUE***",
"secret": "***REMOVED SENSITIVE VALUE***",
"trusted_domains": [
"cloud.bitfire.at"
],
"datadirectory": "***REMOVED SENSITIVE VALUE***",
"overwrite.cli.url": "https:\/\/cloud.bitfire.at",
"dbtype": "mysql",
"version": "23.0.3.2",
"dbname": "***REMOVED SENSITIVE VALUE***",
"dbhost": "***REMOVED SENSITIVE VALUE***",
"dbport": "",
"dbtableprefix": "oc_",
"dbuser": "***REMOVED SENSITIVE VALUE***",
"dbpassword": "***REMOVED SENSITIVE VALUE***",
"installed": true,
"default_phone_region": "AT",
"mail_from_address": "***REMOVED SENSITIVE VALUE***",
"mail_smtpmode": "sendmail",
"mail_smtpauthtype": "LOGIN",
"mail_domain": "***REMOVED SENSITIVE VALUE***",
"mysql.utf8mb4": true,
"mail_sendmailmode": "smtp",
"updater.release.channel": "stable",
"activity_expire_days": 14,
"filelocking.enabled": true,
"memcache.locking": "\\OC\\Memcache\\Redis",
"memcache.local": "\\OC\\Memcache\\Redis",
"redis": {
"host": "***REMOVED SENSITIVE VALUE***",
"port": -1,
"password": "***REMOVED SENSITIVE VALUE***"
},
"maintenance": false,
"theme": "",
"loglevel": 2
}
}
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
Reproduce the issue with the vCard N value shown in the report, then trace the Contacts vCard import, display, and edit flow. Done means multiple middle names appear separated by spaces in the UI and editing the contact does not rewrite them with an escaped comma.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 45/100