nextcloud / server

☁️ Nextcloud server, a safe home for all your data
https://nextcloud.com
GNU Affero General Public License v3.0
26.91k stars 4.02k forks source link

/settings/users context menu unusable in mobile browsers #21260

Closed nursoda closed 2 months ago

nursoda commented 4 years ago

Steps to reproduce

(0. have multiple users in your nextcloud)

  1. in a MOBILE browser navigate to /settings/users
  2. click on the three-dot-menu on the right hand side, select "Deactivate user"

Expected behaviour

In DESKTOP browser, the mouse hover is (slightly) visible in the context menu. When klicked on the menu entry, the user is deactivated.

Actual behaviour

In MOBILE browser, there is no mouse hover. Tapping the menu entry opens up what was UNDER the menu, the user is NOT deactivated.

Client configuration

Faulty behaviour (regression) confirmed on Brave(Chrome) and Firefox on Android 10 (all current), and on Safari on iOS 13.5.1.

Server configuration

NC19.0.0 on NGINX/PHP-FPM on Arch (all current).

szaimen commented 3 years ago

I can reproduce this on NC21.0.2


cc @nextcloud/javascript Maybe there is a simple fix to this?

nursoda commented 3 years ago

Just re-tested on NC 21.0.2, cannot reproduce this exact workflow issue either. But…

  1. in a MOBILE browser (current Brave on Android 10), deactivate a user
  2. switch to "Deactivated users" and try to re-"Activate" it – doesn't work for me (just stays as it is, reloading doesn't reflect any change made)

Sorry, I didn't meant to close the bug, don't know how to re-open.

nursoda commented 3 years ago

Screenshot_20210602-160057

lars-sh commented 2 years ago

A similar ticket to this one was open in the Impersonate app's issues (see link above).

I just had one more look at this one. To me it seems as if the touch event is fired just a little bit after the popup was closed. Sadly I've really no experience with Vue, which seems to be used to open and hide these popups, but I was able to set up a workaround, which keeps the menu open for 100ms prior hiding it - enough time for the touch event to be fired.

Things work out well if I replace line https://github.com/nextcloud/server/blob/d9e4e48868a3ae207562693cc7505120d31b385a/apps/settings/src/components/UserList/UserRowSimple.vue#L180 with setTimeout(() => { this.$emit('update:openedMenu', false); }, 100).

In a production system you can edit dist/settings-users-****.js and replace hideMenu:function(){this.$emit("update:openedMenu",!1)} with hideMenu:function(){setTimeout(()=>{this.$emit("update:openedMenu",!1)},100)}.

@skjnldsv, do you think this is a workaround, which it makes sense to raise a Pull Request for?

Maybe this helps someone.

szaimen commented 1 year ago

Hi, please update to 24.0.8 or better 25.0.2 and report back if it fixes the issue. Thank you!

lars-sh commented 1 year ago

I checked again with Nextcloud 25.0.2 and the problem is still the same.

nursoda commented 1 year ago

I particularly have the issue that on my mobile (big font due to bad short range sight) I cannot use the three-dot-menu in /settings/users: I can access and open it, but none of the menu items is executed. Instead, underlying elements are executed.

https://user-images.githubusercontent.com/8425483/211411342-bd6d35d4-a800-438b-8d49-ecfdcca8fc0e.mp4

This was recorded on November 13th, 2022, and I just tried the same steps in Firefox and Vanadium on Nitrophone 2a (preinstalled GrapheneOS on Pixel 6a) against my test instance running NC 25.0.3rc1 – no changes, my shown issues are just the same.

Ark74 commented 1 year ago

Hello guys this issue is still present on 26.0.1 Have tested Firefox and Chrome on Android, none of the options in the Users menu works.

That includes the impersonate button. Cheers

lars-sh commented 1 year ago

Since I gave a rough workaround in https://github.com/nextcloud/server/issues/21260#issuecomment-1208712609 already one could expect the problem might be easier to identify and fix.

Is there anything we can do to support on fixing this?

@Ark74, @nursoda, I don't know how Nextcloud issues are prioritized, but maybe it helps to give the initial request a thumbs-up.

Columbus240 commented 10 months ago

I can reproduce this with NextCloud version 27.1.2.

eX00r commented 10 months ago

Hello guys this issue is still present on 27.0.2 Have tested Firefox and Chrome on Android, none of the options in the Users menu works.

nursoda commented 10 months ago

I confirm that /settings/users is in large parts unusable on NC 27.1.4 on Firefox/Android 14 (GrapheneOS).

However on NC28 RC4 on FX/A14 the issue seems to be resolved. Not perfectly (I may create a screencast for the devs if that helps), but usable and good enough for me.

lars-sh commented 9 months ago

I confirm, the issue is fixed with Nextcloud 28 on iPhone as well.