spreed icon indicating copy to clipboard operation
spreed copied to clipboard

[Bug]: When using Zhuyin input method, the message will send out directly, I can't choose the word first.

Open jingmisara opened this issue 2 years ago • 22 comments

⚠️ This issue respects the following points: ⚠️

  • [X] This is a bug, not a question or a configuration/webserver/proxy issue.
  • [X] This issue is not already reported on Github (I've searched it).
  • [X] Nextcloud Server is up to date. See Maintenance and Release Schedule for supported versions.
  • [X] Nextcloud Server is running on 64bit capable CPU, PHP and OS.
  • [X] I agree to follow Nextcloud's Code of Conduct.

Bug description

After upgrading to Nextcloud v26.0.0, using Nextcloud Talk on Chrome or Safari, when typing in Taiwanese Zhuyin, press the Enter key once time, and it will send the message directly.

Usually, it should take two times Enter to send the message, the first Enter is used to confirm the font, and the second Enter is used to send out the message.

Steps to reproduce

  1. Use the Zhuyin input method and type the message.
  2. Press the first time Enter to choose the word, and the message will send out directly, and the conversation column still leaves the message you just type.
  3. Press the second time Enter to send the message again.

Expected behavior

It should take two times Enter to send the message when we used Zhuyin input method, the first Enter is used to confirm the font(the message shouldn't send out), and the second Enter is used to send out the message.

Installation method

Community Manual installation with Archive

Operating system

Debian/Ubuntu

PHP engine version

PHP 8.1

Web server

Apache (supported)

Database engine version

MySQL

Is this bug present after an update or on a fresh install?

Updated to a major version (ex. 22.2.3 to 23.0.1)

Are you using the Nextcloud Server Encryption module?

None

What user-backends are you using?

  • [ ] Default user-backend (database)
  • [X] LDAP/ Active Directory
  • [ ] SSO - SAML
  • [ ] Other

Configuration report

{
    "system": {
        "skeletondirectory": "",
        "templatedirectory": "",
        "allow_local_remote_servers": true,
        "default_phone_region": "TW",
        "default_language": "zh_TW",
        "default_locale": "zh_Hant_TW",
        "defaultapp": "spreed",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "localhost",
            "next.jingmi.com.tw"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "pgsql",
        "version": "26.0.0.11",
        "overwrite.cli.url": "http:\/\/localhost",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "upgrade.disable-web": true,
        "log_type": "file",
        "logfile": "\/var\/log\/nextcloud\/nextcloud.log",
        "loglevel": "2",
        "log.condition": {
            "apps": [
                "admin_audit"
            ]
        },
        "mail_smtpmode": "smtp",
        "remember_login_cookie_lifetime": 25920000,
        "token_auth_enforced": false,
        "auth.webauthn.enabled": true,
        "auto_logout": false,
        "session_keepalive": true,
        "session_lifetime": 25920000,
        "auth.bruteforce.protection.enabled": true,
        "lost_password_link": "DISABLED - CONTACT ADMINISTRATOR",
        "log_rotate_size": "104857600",
        "trashbin_retention_obligation": "auto, 60",
        "versions_retention_obligation": "auto, 180",
        "activity_expire_days": "180",
        "simpleSignUpLink.shown": false,
        "memcache.local": "\\OC\\Memcache\\Redis",
        "filelocking.enabled": true,
        "memcache.distributed": "\\OC\\Memcache\\Redis",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "port": 0,
            "timeout": 1,
            "dbindex": 0,
            "password": "***REMOVED SENSITIVE VALUE***"
        },
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_sendmailmode": "smtp",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "26",
        "ldapProviderFactory": "OCA\\User_LDAP\\LDAPProviderFactory",
        "maintenance": false,
        "app_install_overwrite": [
            "appointments",
            "forms",
            "announcementcenter",
            "files_external_dropbox",
            "jitsi",
            "deck",
            "group_everyone",
            "impersonate",
            "facerecognition",
            "hsts",
            "user_usage_report",
            "drawio"
        ],
        "enabledPreviewProviders": [
            "OC\\Preview\\PNG",
            "OC\\Preview\\JPEG",
            "OC\\Preview\\GIF",
            "OC\\Preview\\BMP",
            "OC\\Preview\\XBitmap",
            "OC\\Preview\\MP3",
            "OC\\Preview\\TXT",
            "OC\\Preview\\MarkDown",
            "OC\\Preview\\OpenDocument",
            "OC\\Preview\\Krita",
            "OC\\Preview\\HEIC"
        ],
        "onlyoffice": {
            "verify_peer_off": true,
            "jwt_header": "AuthorizationJwt"
        },
        "mail_smtpsecure": "tls",
        "twofactor_enforced": "false",
        "twofactor_enforced_groups": [
            "admin"
        ],
        "twofactor_enforced_excluded_groups": []
    }
}

List of activated Apps

Enabled:
  - activity: 2.18.0
  - admin_audit: 1.16.0
  - bruteforcesettings: 2.6.0
  - calendar: 4.3.1
  - calendar_resource_management: 0.4.0
  - circles: 26.0.0
  - cloud_federation_api: 1.9.0
  - comments: 1.16.0
  - contacts: 5.2.0
  - contactsinteraction: 1.7.0
  - dashboard: 7.6.0
  - dav: 1.25.0
  - deck: 1.9.0
  - drawio: 2.1.0
  - encryption: 2.14.0
  - external: 5.1.0
  - externalpassword: 1.1.0
  - federatedfilesharing: 1.16.0
  - files: 1.21.1
  - files_accesscontrol: 1.16.0
  - files_pdfviewer: 2.7.0
  - files_rightclick: 1.5.0
  - files_sharing: 1.18.0
  - files_trashbin: 1.16.0
  - files_versions: 1.19.1
  - firstrunwizard: 2.15.0
  - forms: 3.2.0
  - group_everyone: 0.1.12
  - groupfolders: 14.0.0
  - integration_youtube: 0.1.3
  - jitsi: 0.16.2
  - logreader: 2.11.0
  - lookup_server_connector: 1.14.0
  - notes: 4.7.1
  - notifications: 2.14.0
  - oauth2: 1.14.0
  - photos: 2.2.0
  - previewgenerator: 5.2.1
  - provisioning_api: 1.16.0
  - serverinfo: 1.16.0
  - settings: 1.8.0
  - spreed: 16.0.0
  - systemtags: 1.16.0
  - tasks: 0.14.5
  - text: 3.7.2
  - theming: 2.1.1
  - twofactor_backupcodes: 1.15.0
  - twofactor_webauthn: 1.1.2
  - updatenotification: 1.16.0
  - user_ldap: 1.16.0
  - user_status: 1.6.0
  - user_usage_report: 1.10.0
  - viewer: 1.10.0
  - workflowengine: 2.8.0
Disabled:
  - federation: 1.16.0 (installed 1.13.0)
  - files_external: 1.18.0 (installed 1.17.0)
  - impersonate: 1.13.0 (installed 1.13.0)
  - nextcloud_announcements: 1.15.0 (installed 1.11.0)
  - password_policy: 1.16.0 (installed 1.15.0)
  - privacy: 1.10.0 (installed 1.6.0)
  - recommendations: 1.5.0 (installed 1.2.0)
  - related_resources: 1.1.0-alpha1 (installed 1.0.4)
  - sharebymail: 1.16.0 (installed 1.13.0)
  - support: 1.9.0 (installed 1.5.0)
  - survey_client: 1.14.0 (installed 1.10.0)
  - suspicious_login: 4.4.0
  - twofactor_totp: 8.0.0-alpha.0
  - weather_status: 1.6.0 (installed 1.5.0)

Nextcloud Signing status

No errors have been found.

Nextcloud Logs

No response

Additional info

No response

jingmisara avatar Mar 23 '23 03:03 jingmisara

Can you prepare a screencast of the problem? We had this issues in the past, maybe it came back with 26 :(

nickvergessen avatar Mar 23 '23 08:03 nickvergessen

Sure, here is the video.

https://drive.google.com/file/d/10EzOL_DZ9F5IPnIjJUp1KsfCqGLfgn_D/view?usp=sharing

jingmisara avatar Mar 24 '23 07:03 jingmisara

How is the input method called? Do you have a guide how we can set it up locally?

nickvergessen avatar Mar 24 '23 07:03 nickvergessen

Here is the detail about this issue.

Since Chinese “words” are glyphs, there is no alphabet per se. So we have to type in sequences of sort of “phonetics”, this will produce a list of Chinese glyph that it could be. We then have to select the correct Chinese glyph.

If I want to type a sentence of many glyphs, then it’s a long process of: spelling out the so called “phonetics”, selecting the correct character, then repeating.

In the Mac at least, up to Nextcloud 25, we could use the Chinese glyph selector correctly by moving the arrow keys to select the right glyph, then press enter to chose that character. But this would NOT send the message (since we are still typing the sentence).

It seems that from Nextcloud 26 the choosing a character on the selector now sends the message, and the result is we can no longer construct a sentence.

I hope this explains the problem in more detail. We’re using Google Chrome and Safari browser.

Unfortunately for us, Nextcloud 26 has completely broken the communication tool for the entire company who all communicate in Chinese :(

If there is any hotfix or patch we can apply, we’d love it since we’ve become paralyzed now.

jingmisara avatar Mar 27 '23 01:03 jingmisara

We are aware of the issue (and fixed it in the past: https://github.com/nextcloud/spreed/issues/1071 ) But had to migrate to another component for the input now and it seems this new input component can does something wrong.

That being said, can you try if 16.0.1 fixed it already (removed some keyup event listeners)

nickvergessen avatar Mar 27 '23 14:03 nickvergessen

We are running 16.0.2 now. Unfortunately, it's not fixed.

jingmisara avatar Mar 30 '23 06:03 jingmisara

We've updated to Talk v17.0.0, but the problem is still there.

jingmisara avatar Jun 16 '23 02:06 jingmisara

Hello, @jingmisara ! I guess I need a bit more infromation from you to help solve this issue.

As I don't have a Chinese keyboard, I followed this instruction to set up at least a virtual one. Both Chinese (Bopomofo) and Chinese (Chewing) from manual are working for me.

Pre-requisites for the video: OS: Ubuntu 22.04.2 LTS | Colleague has also checked that for Windows Browser: Google Chrome v 114.0 | Firefox v114.0.1 Talk: v17.0.0

https://github.com/nextcloud/spreed/assets/93392545/3dac6dbc-bdf5-4a2f-9b33-afc0cc2ce9f4

As I couldn't reproduce the issue, can you take a look on it and tell, what is the dfference between our actions?

  • typing behavior?
  • using macOS + Safari?
  • Different input method?

Antreesy avatar Jun 20 '23 14:06 Antreesy

Hi @Antreesy ,

  • We use OS: MacOS Browser: Google Chrome v 114.0 | Safari v 16.5.1 Talk: v17.0.0 Input Method: Chinese(Traditional) - Zhuyin

  • The typing behavior will be like this: Type in sequences of sort of “phonetics”, it will produce a list of Chinese glyphs, and we could use the Chinese glyph selector correctly by moving the arrow keys to select the right glyph, then pressing enter to choose that character. But this would NOT send the message (since we are still typing the sentence). I add the video with relevant questions.

jingmisara avatar Jun 28 '23 07:06 jingmisara

OS: MacOS Browser: Google Chrome v 114.0 | Safari v 16.5.1

Thanks for the information, now it's reproducible for us on MacOS. We'll try to fix it in one of the following minor releases

Antreesy avatar Jun 28 '23 12:06 Antreesy

I also can confirm on OSX in both Safari and Chromium-based

ShGKme avatar Jun 28 '23 13:06 ShGKme

Supposed to be fixed now with upgrade to @nextcloud/[email protected].

@jingmisara please, reopen if you still have this issue after the release.

ShGKme avatar Aug 29 '23 14:08 ShGKme

@ShGKme Appreciative of your efforts. This issue on Chrome has been successfully fixed.

However, there are still issues with Safari. Currently, on Safari, it is possible to select text successfully, but after choosing the text and pressing the Enter key, the message is sent immediately, which is not normal. Normally, it would require two presses of the Enter key (one to lock the selected message content, and another to send the message).

jingmisara avatar Sep 21 '23 08:09 jingmisara

@jingmisara Have you tested the last version?

ShGKme avatar Sep 22 '23 18:09 ShGKme

@jingmisara你測試過最後一個版本嗎?

Yes, now we are running on Talk v17.1.1

jingmisara avatar Sep 26 '23 03:09 jingmisara

Maybe the compositionstart and compositionend are not correctly triggered by Safari.

@ShGKme can you instruct @Ivansss how to test this on Mac Safari?

nickvergessen avatar Sep 26 '23 06:09 nickvergessen

Hi @jingmisara! Indeed Zhuyin input method has a bit of different behavior than the Japanese that I used to test. But as I understand this input method, it still works fine.

How I test and how I understand this method:

  1. I type a message
  2. Mac makes different auto-suggestions while I'm typing (on this step Enter works as a "submit")
  3. If I want to confirm a suggestion, I press "Space"
  4. If I want to have a suggestion list, I press "Space" twice. Then I can choose a suggestion with "Enter". This doesn't lead to sending a message.

And it works for me. Is there another use-case that doesn't work? Could you make a short video or explanation? Or maybe you use some non-default settings that are important here?

test

ShGKme avatar Oct 02 '23 12:10 ShGKme

@ShGKme can you instruct @Ivansss how to test this on Mac Safari?

Just add Chinese - Zhuyin as an input method in Keyboard settings -> Input source: https://support.apple.com/guide/chinese-input-method/zhuyin-traditional-cimzt15531/mac

image

ShGKme avatar Oct 02 '23 12:10 ShGKme

Hi @ShGKme,

I recorded videos on Safari and Chrome.

type on Safari On Safari, after selecting the text and pressing Enter, the message is sent immediately.

type on Chrome On Chrome, after selecting the text and pressing Enter, the text becomes uneditable, and then pressing Enter again sends the message.

The behavior on Chrome is the correct one.

jingmisara avatar Oct 25 '23 06:10 jingmisara