nextcloud / spreed

🗨️ Nextcloud Talk – chat, video & audio calls for Nextcloud
https://nextcloud.com/talk
GNU Affero General Public License v3.0
1.61k stars 429 forks source link

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

Open jingmisara opened 1 year ago

jingmisara commented 1 year ago

⚠️ This issue respects the following points: ⚠️

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?

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

nickvergessen commented 1 year ago

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

jingmisara commented 1 year ago

Sure, here is the video.

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

nickvergessen commented 1 year ago

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

jingmisara commented 1 year ago

On Mac: Set up a Chinese input source

Type Chinese using Zhuyin - Traditional

jingmisara commented 1 year ago

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.

nickvergessen commented 1 year ago

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)

jingmisara commented 1 year ago

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

jingmisara commented 1 year ago

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

Antreesy commented 1 year ago

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?

jingmisara commented 1 year ago

Hi @Antreesy ,

Antreesy commented 1 year ago

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

ShGKme commented 1 year ago

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

ShGKme commented 1 year ago

Supposed to be fixed now with upgrade to @nextcloud/vue@v7.12.2.

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

jingmisara commented 1 year ago

@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).

ShGKme commented 12 months ago

@jingmisara Have you tested the last version?

jingmisara commented 12 months ago

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

Yes, now we are running on Talk v17.1.1

nickvergessen commented 12 months ago

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

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

ShGKme commented 11 months ago

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 commented 11 months ago

@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

jingmisara commented 11 months ago

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.