Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

In Chinese environment, the name, company and title of the new contact person are disordered after the new contact person is synchronized to iOS. #910

Closed
MutingLeng opened this issue Feb 3, 2019 · 9 comments
Labels
bug Something isn't working needs info Not enough information provided stale

Comments

@MutingLeng
Copy link

MutingLeng commented Feb 3, 2019

Describe the bug

In Chinese environment, Contacts and Nextcloud 15 are completely incompatible with iOS when working together! The version of my iOS is 11.4.1. Incompatible phenomenon is that after adding a new contact to the " contact" of Nextcloud and synchronizing to iOS, the contact information in iOS is disordered. The contents of the " company" or " title" or " email" of the new contact are taken as the contact's name in iOS, while the real name of the new contact will not be displayed in iOS.

To Reproduce

Steps to reproduce the behavior:

  1. Nextcloud15 -> contacts -> new contacts.
  2. Use Chinese to fill in contact information.
  3. Wait for contact information to sync to iOS.
  4. Looking at the contact information synchronized by Nextcloud 15 in iOS contacts, you can see that the contact's information is disordered, and its name is not displayed correctly, but the company or title or email is displayed.

Expected behavior

Can correctly display contact information in iOS contacts.

Actual behavior

Looking at the contact information synchronized by Nextcloud 15 in iOS contacts, you can see that the contact's information is disordered, and its name is not displayed correctly, but the company or title or email is displayed.

Screenshots

If the display is correct, the contact person's name is "赵子龙", the company is "蜀汉集团" and the title is "五虎上将". However, in iOS (the last screenshot), you can see that the contact's name is shown as "蜀汉集团" instead of "赵子龙" and should actually be shown as "赵子龙".

  • Nextcloud 15 -> contact interface:

Alt text

  • Full contact information:

Alt text

  • Contact information in iOS:
    Alt text

Server configuration

Operating system: Debian GNU/Linux 8.11 (jessie)

Web server: nginx/1.14.2

Database: mysql Ver 14.14 Distrib 5.5.62

PHP version: PHP 7.2.13

Nextcloud version: Nextcloud 15.0.2

Contacts version: 3.0.3

Updated from an older Nextcloud or fresh install: Update from nextcloud 15.0.0

Signing status:

No errors have been found.

List of activated apps:

Enabled:
  - accessibility: 1.1.0
  - activity: 2.8.2
  - cloud_federation_api: 0.1.0
  - comments: 1.5.0
  - contacts: 3.0.3
  - dav: 1.8.1
  - federatedfilesharing: 1.5.0
  - federation: 1.5.0
  - files: 1.10.0
  - files_external: 1.6.0
  - files_markdown: 2.0.5
  - files_pdfviewer: 1.4.0
  - files_sharing: 1.7.0
  - files_texteditor: 2.7.0
  - files_trashbin: 1.5.0
  - files_versions: 1.8.0
  - files_videoplayer: 1.4.0
  - firstrunwizard: 2.4.0
  - gallery: 18.2.0
  - logreader: 2.0.0
  - lookup_server_connector: 1.3.0
  - nextcloud_announcements: 1.4.0
  - notifications: 2.3.0
  - oauth2: 1.3.0
  - password_policy: 1.5.0
  - provisioning_api: 1.5.0
  - serverinfo: 1.5.0
  - sharebymail: 1.5.0
  - support: 1.0.0
  - survey_client: 1.3.0
  - systemtags: 1.5.0
  - theming: 1.6.0
  - twofactor_backupcodes: 1.4.1
  - updatenotification: 1.5.0
  - workflowengine: 1.5.0
Disabled:
  - admin_audit
  - encryption
  - user_ldap

Nextcloud configuration:

{
    "system": {
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "MY HOST"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "mysql",
        "version": "15.0.2.0",
        "overwrite.cli.url": "https:\/\/MY HOST",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "memcache.local": "\\OC\\Memcache\\Redis",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "port": 6379
        },
        "maintenance": false,
        "theme": "",
        "loglevel": 2
    }
}

Client configuration

**Operating system:**iOS 11.4.1

**CardDAV-clients:**iOS 11.4.1


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

@nextcloud-bot
Copy link
Member

GitMate.io thinks possibly related issues are #848 (Contact name displayed as "New contact" for contacts with only a number of enterprise name), #52 (Default contanct name should be selected after creating new contact), #488 (Removing default name for new contact and leaving it blank), #452 (Can't add new contact), and #363 (Missing domain name after adding new address book in contacts).

@skjnldsv
Copy link
Member

skjnldsv commented Feb 3, 2019

Hello @MutingLeng
Thanks a lot for your report!

After syncing it to iOS, is the contact still properly displayed on nextcloud?
Could you also do the other way around? Create a contact on iOS and sync it to nextcloud? Is the display correct?

@skjnldsv skjnldsv added bug Something isn't working needs info Not enough information provided labels Feb 3, 2019
@MutingLeng
Copy link
Author

Hi @skjnldsv ,Thank you for your reply.

After syncing it to iOS, is the contact still properly displayed on nextcloud?

After the new contact in nextcloud is synchronized to iOS, the contact can still be displayed correctly in nextcloud, and the contact information has not changed.

Could you also do the other way around? Create a contact on iOS and sync it to nextcloud? Is the display correct?

Thank you very much for your suggestion. As you said, I created a new contact on iOS,and only filled in simple and necessary information such as last name (in Chinese environment, people often fill in the full name of the contact in the last name field when adding contacts in iOS for convenience) and mobile phone number and company.Then, i waited for this information to be synchronized to nextcloud.

Next, I saw the new contact I created in iOS on nextcloud. The name of the new contact is "周公瑾" and the company is "东吴集团". However, i saw a new property type in nextcloud, which is Detailed name! In addition, the contents of Last name field in Detailed name are displayed as "周公瑾" and "周公瑾" is the name of this contact.

Then I suspect that Detailed name is the factor that affects the normal display of contact information in iOS, so I created a new contact in nextcloud again, and I added Detailed name to this contact, filled in the full name of this contact in the Last name field, and then waited to synchronize to iOS.

As expected, this new contact can be displayed normally on iOS! It did not incorrectly display the company as its name as before.

Based on the above, I think if the Detailed name is not added when a new contact is created in the nextcloud, the name of the contact will not be displayed correctly in iOS, but the company or title or something will be displayed as the name as before.

It's hard for me to draw a conclusion. I don't know if this is a BUG. Or I should have used Detailed name when creating a new contact in the nextcloud, but I didn't do it before, so it will show an error. What is your opinion? Do you have any conclusion on this?

So far, I thought there would be no new other problems, but I still found a new problem. That is, if the phone type is selected, there are many types that will display exceptions in iOS. for example, if the phone type is selected as WORK, it will be displayed as "``work" in iOS. Of the phone types, only "Mobile", "Fax", "Pager", "Voice" and "Car" can be correctly displayed in iOS. other phone types will display their English names in iOS and have two "`" before the English names.

Another problem is that if the birthday field is filled in when creating a contact in the nextcloud, the birthday of the contact will not be displayed in iOS. I'll try the method you mentioned again, which is to create a contact in iOS, fill in his birthday, and then sync to the nextcloud. I saw in nextcloud that the format of birthdays filled in through iOS is different from the format of birthdays filled in directly in nextcloud. The birthday format filled in through iOS is "January 30, 2007", while the birthday format directly filled in nextcloud is "Thu, Nov 26, 1903 12:00 AM". From this, I think it is the difference in birthday format that leads to this problem. I guess this problem also exists in other date fields.

Finally, I will provide the screenshots above, and I will briefly describe what each screenshot represents in the screenshots. Thank you.

  • Create contacts in iOS and sync to nextcloud, then you will see more Detailed name in nextcloud than before.

image

  • Create a new contact in the nextcloud again and fill in the Last name field in the Detailed name field so that the name of the contact can be correctly displayed in iOS. In addition, the phone type selected "work" and filled in the birthday field. However, the phone type and birthday cannot be displayed correctly in iOS.

image

  • As you can see, the type of phone shows the English word "work" and there are two "`"
    before the word "work". If the phone type is displayed correctly, it should not display English, but Chinese, and will not display two "`".

image

  • As you can see, the birthday of the contact person is not displayed. I guess the format of the date does not meet the requirements of iOS.

image

  • Contact created in iOS and fill in birthday field, the format you can see in nextcloud after synchronizing nextcloud.

image

@j-ed
Copy link

j-ed commented Feb 4, 2019

@MutingLeng It might be worse to share the contact details in vcf format to better understand what is going on. In Nextcloud you can get this information by saving the contact details to a file, on an iPhone you can use the share contact function to send the contact details in vcf format by e.g. email.

@skjnldsv
Copy link
Member

skjnldsv commented Feb 4, 2019

Based on the above, I think if the Detailed name is not added when a new contact is created in the nextcloud, the name of the contact will not be displayed correctly in iOS, but the company or title or something will be displayed as the name as before.

Yes, this is on purpose :)
Those fields are really different.
A contact can have multiple values: It can be an organisation, a person, (a group)... So for that you can customise how it is displayed with the Display name (FN) property (in the header on the nextcloud interface)
BUT you might also want to have a detailed information about your contact, so you can manually set the Detailed name (N). For the vCard format, the FN property is mandatory, but the N is not.

I'll suggest you create a contact on nextcloud, add a detailed name field, sync it to iOS and see if the issue still occur :)
Let's see the Birthday issue after, so we don't confuse ourselves ;)

Thanks a lot for your help though! I really appreciate you taking the time to write those detailed answers! 👍

@MutingLeng
Copy link
Author

I'll suggest you create a contact on nextcloud, add a detailed name field, sync it to iOS and see if the issue still occur :)
Let's see the Birthday issue after, so we don't confuse ourselves ;)

Hi @skjnldsv , as you said, I have created a new contact person in the nextcloud and filled in the Detailed name completely. however, the Chinese name is only a "last name" + "first name" structure, and there are no "prefix" and "suffix", so "prefix" and "suffix" do not fill in anything. In addition, the new contact person's surname is "黄" and his first name is "汉升". Select his phone type as "Work" and fill in the company, title, gender, e-mail and address, and select his birthday. And please note that I intentionally filled in his "fullname" as "黄忠" because I want to find out the relationship between the contact's "fullname" and "Detailed name".Then I waited for it to sync to iOS.

And, I saw in iOS that the contact's name was correctly displayed, the contact's last name was correctly displayed as "黄" and the name was correctly displayed as "汉升".However, his "fullname"-"黄忠" was not displayed, as if "fullname" had no effect on the display of contacts.

To verify my guess, I changed his fullname to a number or other string. the result shows that if I fill in "last name" and "first name" in "Detailed name", then no matter whether fullname is any string, it will not affect the display of the contact's first name in iOS. This also solved my doubts, that is, if you want to correctly display the new contact information in iOS, you must fill in "last name" and "first name" in "Detailed name", if only "fullname" is not enough.

However, the problems of abnormal display of phone types and birthday not being displayed still exist, and it has not changed at all.

@skjnldsv
Copy link
Member

skjnldsv commented Feb 4, 2019

I'll suggest you create a contact on nextcloud, add a detailed name field, sync it to iOS and see if the issue still occur :)
Let's see the Birthday issue after, so we don't confuse ourselves ;)

Hi @skjnldsv , as you said, I have created a new contact person in the nextcloud and filled in the Detailed name completely. however, the Chinese name is only a "last name" + "first name" structure, and there are no "prefix" and "suffix", so "prefix" and "suffix" do not fill in anything. In addition, the new contact person's surname is "黄" and his first name is "汉升". Select his phone type as "Work" and fill in the company, title, gender, e-mail and address, and select his birthday. And please note that I intentionally filled in his "fullname" as "黄忠" because I want to find out the relationship between the contact's "fullname" and "Detailed name".Then I waited for it to sync to iOS.

And, I saw in iOS that the contact's name was correctly displayed, the contact's last name was correctly displayed as "黄" and the name was correctly displayed as "汉升".However, his "fullname"-"黄忠" was not displayed, as if "fullname" had no effect on the display of contacts.

To verify my guess, I changed his fullname to a number or other string. the result shows that if I fill in "last name" and "first name" in "Detailed name", then no matter whether fullname is any string, it will not affect the display of the contact's first name in iOS. This also solved my doubts, that is, if you want to correctly display the new contact information in iOS, you must fill in "last name" and "first name" in "Detailed name", if only "fullname" is not enough.

However, the problems of abnormal display of phone types and birthday not being displayed still exist, and it has not changed at all.

I'm guessing iOS have an automated parser that try to extract the data from the display name onto a detailed name (android as that as well) but it's failing and badly guessing that the first part is the first name and the second part is the last name (or the other way around depending on how you decide to format your contacts)

However, the problems of abnormal display of phone types and birthday not being displayed still exist, and it has not changed at all.

For the birthday, we only display the value based on the locale your nextcloud account have. It might be slightly different from what iOS is displaying, but the value behind should be the same. (For the fact that the Birthday is displayed as a date-time instead of just a date this is a duplicate of #795)

Could you paste here the contact you created on iOS with the working birthday and the phone type so I can analyse it please? :)

@MutingLeng
Copy link
Author

Hi @skjnldsv , I created a contact in iOS and filled in the last name, first name, company, work phone number, work email and birthday. And I got the ".vcf" file in iOS by sharing contacts. I will paste all the contents of ".vcf" below. please note that this is only test information, but the format of this information is correct.

I will also provide the ".vcf" file of the contacts created in the nextcloud, which is downloaded directly through the browser after the nextcloud has created the contacts. And, I will also provide another ".vcf" file, which is a contact created through nextcloud and has been synchronized to iOS. I obtained this contact's ".vcf" file by sharing the contact. My point of view is that the format of the contact information has changed and some fields have been lost after it is synchronized to iOS, so there is the previous error phenomenon.

  • New Contacts Created in iOS:
BEGIN:VCARD
VERSION:3.0
PRODID:-//Apple Inc.//iPhone OS 11.4.1//EN
N:张;飞;;;
FN: 飞  张 
ORG:蜀汉集团;
EMAIL;type=INTERNET;type=WORK;type=pref:admin@gmail.com
TEL;type=WORK;type=VOICE;type=pref:183 0000 0000
item1.ADR;type=WORK;type=pref:;;骡马市人民中路一段16号;成都;四川;610015;中国
item1.X-ABADR:cn
item1.X-APPLE-SUBLOCALITY:青羊区
BDAY:2000-02-14
END:VCARD

  • New contacts created in nextcloud are downloaded directly from the browser:
BEGIN:VCARD
VERSION:4.0
UID:2d25c495-9d17-4c0f-8f56-5603fabfc97a
FN:778766
ADR;TYPE=WORK:;;青羊区骡马市人民中路一段16号;成都;四川;610
 015;中国
EMAIL;TYPE=WORK:admin@hotmail.com
TEL;TYPE="WORK,VOICE":18888888888
ORG:蜀汉集团
TITLE:五虎上将
N:黄;汉升;;;
BDAY:19900125T180438
GENDER;TYPE=M:M
END:VCARD

  • ". vcf" file obtained after synchronizing to iOS:
BEGIN:VCARD
VERSION:3.0
PRODID:-//Apple Inc.//iPhone OS 11.4.1//EN
N:黄;汉升;;;
FN: 汉升  黄 
ORG:蜀汉集团;
TITLE:五虎上将
EMAIL;type=INTERNET;type=WORK;type=pref:admin@hotmail.com
item1.TEL;type=pref:18888888888
item1.X-ABLabel:"WORK
ADR;type=WORK;type=pref:;;青羊区骡马市人民中路一段16号;成都;四川;610015;中国
END:VCARD

@ghost
Copy link

ghost commented Jul 23, 2019

This issue has been automatically marked as stale because it has not had recent activity and seems to be missing some essential information. It will be closed if no further activity occurs. Thank you for your contributions.

@ghost ghost added the stale label Jul 23, 2019
@ghost ghost closed this as completed Aug 6, 2019
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working needs info Not enough information provided stale
Projects
None yet
Development

No branches or pull requests

4 participants