nextcloud / server

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

[Bug]: Apps UI not working in WebKit browsers (Safari, iOS/iPadOS, GNOME/Epiphany) #42249

Closed BJKle closed 7 months ago

BJKle commented 11 months ago

⚠️ This issue respects the following points: ⚠️

Bug description

When selection any app in the "your apps" "active apps" "disabled apps" section always the same app will be displayed. E.g. selection "Activity" -> "Versions" is displayed. Scrolling doesn't work as well.

Screenshot 2023-12-13 at 21 53 33

Steps to reproduce

  1. Open Apps
  2. Select an app to manipulate
  3. in my case "Versions" is displayed

Expected behavior

The selected app should be displayed to enable/disable

Installation method

None

Nextcloud Server version

28

Operating system

Debian/Ubuntu

PHP engine version

PHP 8.2

Web server

Nginx

Database engine version

MariaDB

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

Upgraded to a MAJOR version (ex. 22 to 23)

Are you using the Nextcloud Server Encryption module?

Encryption is Disabled

What user-backends are you using?

Configuration report

No response

List of activated Apps

No response

Nextcloud Signing status

No response

Nextcloud Logs

No response

Additional info

No response

joshtrichards commented 11 months ago

Hi @BJKle - I'm unable to reproduce this behavior. Can you try a different browser and/or device and/or disable extensions like ad blockers?

If it persists after that, please share what browser(s) and OSes you're seeing this behavior on. Thanks!

tiptoptrash commented 11 months ago

Hi @joshtrichards: I have the same problem. Using Safari on macOS Sonoma, iOS 14.2 and iPadOS 14.2, the problem ist present. Using Firefox on macOS Sonoma, the problem is not reproducible.

Affected are the list under "Your apps", "Active apps", "Disabled apps", "App bundles" and "Feautured apps". All those lists are static and cannot be scrolled. The other items starting with "Customization" behave totally normal.

I hope, that helps, thanks a lot!

BJKle commented 11 months ago

@joshtrichards I can't test another browser. Only safari is allowed on my system (macOS 14.2/M1). All others are blocked by admin.

Edit: @joshtrichards I tried it on someone else PC scrolling and selecting is working on Chrome. It seems to be a Safari specific Problem. I have Safari 17.2.1.

BJKle commented 10 months ago

No change with 28.0.1 😔

derrickpeavy commented 10 months ago

Can affirm:

Using Safari on macOS Monterey (12.7.1), Safari 17.1, the problem is present. Using Firefox on macOS Monterey (12.7.1), no problems.

This problem IS still present in NextCloud 28.0.1.

Pretty sure this is a CSS change that was introduced with 28.0.0.11, the list of apps will not scroll and clicking to enable or disable any app simply brings up an info panel on some other app which was not clicked.

BJKle commented 10 months ago

I tried different browsers (FF/Edge) on iOS/iPadOS and is not working as well. This really needs to get fixed.

joshtrichards commented 10 months ago

Reproduced successfully in GNOME Web (Epiphany) [V43 as distributed with Debian bookworm], which is also WebKit based just like all reported browser scenarios so far.

BJKle commented 10 months ago

I don't know where it belongs to, but must have to do with WebKit as well. In "Nextcloud Files" on a Mac I cannot "drag-and-drop" any file in Safari to my Cloud. I tried it in Firefox and it works.

cloudguy23 commented 10 months ago

I'll add that Forms app is also affected. I'm able to create forms, complete, and share forms via Safari. However, a user will encounter an error - "There was an error submitting the form" - when submitting a form that was shared with them via Safari. Chrome, Brave, Firefox all work without issue.

eweinhold commented 9 months ago

Nextcloud 28.0.2 RC3 still not scrolling on safari :(

That not scrolling Bug persists in Nextcloud 28.0.2 RC3.

All Safari Browsers on all systems are affected Desktop, iPad, iPhone. Last Version and just updated current version 17.3 iOS and 14.3 macOS

apps-view
BJKle commented 9 months ago

@joshtrichards can a developer at Nexctloud GmbH please patch this. It is really annoying. Thank you.

eweinhold commented 9 months ago

Nextcloud 28.0.2 RC3 still not scrolling on safari :(

That not scrolling Bug persists in Nextcloud 28.0.2 RC3.

All Safari Browsers on all systems are affected Desktop, iPad, iPhone. Last Version and just updated current version 17.3 iOS and 14.3 macOS

Nextcloud 28.0.2 RC4 still not scrolling :(

affected views: /index.php/settings/apps settings/apps/enabled settings/apps/disabled settings/apps/app-bundles settings/apps/featured settings/apps/search

the other apps views / preview Lists are not affected. they do scroll.

eweinhold commented 9 months ago

Nextcloud 28.0.2 RC5 not scrolling.

eweinhold commented 9 months ago

Nextcloud 28.0.2 release - this bug is still not fixed. :(

joshtrichards commented 9 months ago

@eweinhold Yes, that's why this issue is still open. If you want to help nudge things forward, the underlying cause needs to be identified before a fix can be made. So feel free to dig a bit into what might be causing this behavior.

001101111011101101 commented 9 months ago

Can confirm the bug as of version 28.0.2 on Safari 17.3 (19617.2.4.11.8) It is affecting only the Apps section. The Administration Settings section behaves as expected.

nicnab commented 9 months ago

I'm not sure if this belongs in here as well but I updated a customer's Nextcloud instance to 28.0.2 last night and got the report from one (weekend working and rather tech savvy) user this morning that they can't upload files via safari anymore because when dropping a file, the "screen jumps around like crazy".

I don't have a Mac here so I can't confirm. In LibreWolf/Linux all works fine. In order to avoid bigger problems, I just downgraded to 27.1.6 via snapshot of the machine and, unfortunately, forgot to have the user send a screenshot of some kind. Maybe someone else with a Mac can confirm?

001101111011101101 commented 9 months ago

I'm not sure if this belongs in here as well but I updated a customer's Nextcloud instance to 28.0.2 last night and got the report from one (weekend working and rather tech savvy) user this morning that they can't upload files via safari anymore because when dropping a file, the "screen jumps around like crazy".

I don't have a Mac here so I can't confirm. In LibreWolf/Linux all works fine. In order to avoid bigger problems, I just downgraded to 27.1.6 via snapshot of the machine and, unfortunately, forgot to have the user send a screenshot of some kind. Maybe someone else with a Mac can confirm?

Can confirm on Sonoma 14.3 with Safari 17.3 (19617.2.4.11.8)

eweinhold commented 9 months ago

I'm not sure if this belongs in here as well but I updated a customer's Nextcloud instance to 28.0.2 last night and got the report from one (weekend working and rather tech savvy) user this morning that they can't upload files via safari anymore because when dropping a file, the "screen jumps around like crazy". ...Maybe someone else with a Mac can confirm?

can confirm. Fileuploads with safari via drag&drop just result into heavy flickering (Drag&Drop UI Loading and showing and unloading disappearing) uploads via safari browser are not possible with drag and drop.

BJKle commented 9 months ago

@eweinhold @001101111011101101 See above. I mentioned it. We need a solution not a longer thread.

tiptoptrash commented 9 months ago

I'm not sure if this belongs in here as well but I updated a customer's Nextcloud instance to 28.0.2 last night and got the report from one (weekend working and rather tech savvy) user this morning that they can't upload files via safari anymore because when dropping a file, the "screen jumps around like crazy".

I don't have a Mac here so I can't confirm. In LibreWolf/Linux all works fine. In order to avoid bigger problems, I just downgraded to 27.1.6 via snapshot of the machine and, unfortunately, forgot to have the user send a screenshot of some kind. Maybe someone else with a Mac can confirm?

Here you go. Attached is a video showing that bug. Drag&Drop is completely unusable right now with Safari. I am very lucky that this is only my personal nextcloud instance and not the big instance I am administrating, too. I avoid Nextcloud 18 because I expect a flood of user complaints.

I hope that helps a bit to track down the problems.

Best greets!

https://github.com/nextcloud/server/assets/21986310/1b7861ae-414a-402c-b773-f4b95cae74b7

BJKle commented 9 months ago

again it is another issue. see https://github.com/nextcloud/server/issues/43135 a fix is linked in this issue. please don't spam this issue, which needs to be fixed

eweinhold commented 9 months ago

The Change that was made is the switch form a list of divs for the apps-list-container in NC27 to a html table in NC28 I guess some attributes of that old apps-list-container div do not work on a html table

works in safari

NC 27 apps-list-container as list of divs

NC27_apps-list-container_as_div

dosen't work in safari

NC 28 apps-list-container as one html table

NC28_apps-list-container_as_Table

this switch to an HTML TABLE was only made on some settings pages - which all doesn't scroll on safari.

BJKle commented 8 months ago

Since we know the problem. Is there someone able to fix it?

gcoretech commented 8 months ago

As an example see: /settings/apps/installed/calendar That page is divided into three sections: the category on the left, the app list in the middle and the details of the selected app on the right.

The page seems to be generated by: https://github.com/nextcloud/server/blob/master/apps/settings/src/components/AppList/AppItem.vue

The following style is defined at the bottom of AppItem.vue:

.app-name--link::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

If you add background-color: yellow to that, the whole app list is yellow. Set content: 'X' and change position to relative, you will see just an X with yellow background right after every app name. The whole list is not yellow anymore and it's scrollable again.

I cannot fully test this because /apps/settings/src/components/AppList/AppItem.vue is not available on my nextcloud server. It seems to be added with webpack so it's not easy for me to test it.

Perhaps someone could try to remove .app-name--link::after from AppItem.vue and see if that fixes it.

mhzawadi commented 8 months ago

So I have this issue and have gone to test editing the /apps/settings/src/components/AppList/AppItem.vue file, but I dont have it on my server. My apps/settings/ is missing the src directory

Is that the issue that the file is missing?

mhzawadi commented 8 months ago

also the community zip file is missing the /apps/settings/src directory

gcoretech commented 8 months ago

@mhzawadi A nextcloud developer should have a look at this as those files are not part of a regular nextcloud installation. The code these files produce is seemingly packed/minified into javascript files that your nextcloud installation uses but it's hard to edit them directly because of the minification.

mhzawadi commented 8 months ago

Hey @gcoretech

I have the docker dev environment setup and working, I have edited .app-name--link::after to have yellow and can see it in Opera. But Safari is not yellow and still doesn't scroll.

gcoretech commented 8 months ago

Hey @mhzawadi background-color: yellow visualizes which area is affected in safari, scrolling works after changing position: absolute to position: relative.

This is from Safari developer tools (position changed to relative):

yellow-relative

All apps in the app list now have an X with a red border and yellow background right after the app name and scrolling works:

yellow-relative2

Changing position back to absolute the whole app list is yellow and all the apps are behind the yellow pane so you can't see them. Imagine the picture above all yellow, without any text.

Hope this helps.

mhzawadi commented 8 months ago

can confirm that removing position: absolute; allows the table to scroll

image
tallinn1960 commented 7 months ago

As this issue only mentions scrolling, I would like to add that app selection in the active app list is broken as well on macOS 14.4/Safari 17.4 in NC 28.0.3. On my system, the browser selects the last app in the list (in my case, the weather app) and sticks with it, no matter what app one is clicking on.

derrickpeavy commented 7 months ago

As this issue only mentions scrolling, I would like to add that app selection in the active app list is broken as well on macOS 14.4/Safari 17.4 in NC 28.0.3. On my system, the browser selects the last app in the list (in my case, the weather app) and sticks with it, no matter what app one is clicking on.

THAT IS CORRECT FOR ME AS WELL!

ShGKme commented 7 months ago

The issue is caused by Safari not applying position: relative on <tr> See: https://bugs.webkit.org/show_bug.cgi?id=240961

Both issues: broken scrolling and opening an app in the sidebar.

Removing position: absolute fixes the issue, but it removed the ability to click on the row to open app in the sidebar, making only the text of app name clickable.

44236 should with both issues keeping row clickable.

darthmarx commented 7 months ago

Not fixed in 28.0.4

joshtrichards commented 7 months ago

It's fixed in v29. It's going to require some manual intervention to finalize the backport for v28 it looks like (pending in #44327).

nicnab commented 7 months ago

Thanks for keeping us in the loop, @darthmarx and @joshtrichards !

mehlkopf commented 6 months ago

It's still not fixed in 28.0.5. Honestly, it is a great symptom of what is wrong with Nextcloud's fast update release cycle: either I am supposed to stay longer on the older versions, but then all bugs should be fixed first on these versions, OR I should always update and can assume the latest versions to be the most reliable, but that is obviously also not the case. It is really frustrating.

nicnab commented 6 months ago

Are you sure it isn't? This post says it is. I will try to test myself before upgrading my customer's instance but I first have to find a Safari to test on.

mehlkopf commented 6 months ago

Unfortunately, for me, it is not fixed as of 28.0.5. UPDATE: The post you are referring to is relating to different Safari-specific bug!

nicnab commented 6 months ago

Oh I'm sorry. Reading skills sometimes do help. As I will be the only one dealing with apps it iis not a problem for me at the moment but I understand it is for you.

joshtrichards commented 6 months ago

It's fixed in v29, but the backport requires extra manual intervention: #44327

joshtrichards commented 6 months ago

Honestly, it is a great symptom of what is wrong with Nextcloud's fast update release cycle: either I am supposed to stay longer on the older versions, but then all bugs should be fixed first on these versions, OR I should always update and can assume the latest versions to be the most reliable, but that is obviously also not the case.

It sounds like your requirements might justify always sticking with the last supported stable, which is always the most field proven. At present that would be v27. And at the time of this bug report, that was v26. Neither were impacted by this bug. So the bug wasn't even present for those choosing the most field tested (i.e. not the latest major) for their production environments.

Briefly, we actively support (generally) three majors at a given point in time:

We recently (in the last couple months) tried to clarify and better document this so that admins can make their own decisions based on what is most important in their environments: https://docs.nextcloud.com/server/latest/admin_manual/release_schedule.html

Either way, yes, this bug fix backport needs to get done in an upcoming v28 maintenance release. But there are only so many hours in the day. You're also always welcome to test/review/modify the proposed backport to nudge it forward. Or pay Nextcloud GmbH (or someone) to do so.

P.S. For the record, this is a WebKit / Apple bug we're working around (that was reported ~2 years ago): https://bugs.webkit.org/show_bug.cgi?id=240961 But, yes, we need to workaround it to provide a good user experience until resolved there.

ShGKme commented 6 months ago

Sorry, will be backported to v28 before the next minor release.

mehlkopf commented 6 months ago

@joshtrichards Thank you for your reply! First and foremost, I am very thankful for all the work you are doing, and it is good to have these clarifications regarding update strategies. Nevertheless, I think the version 28 cycle has been very rough for lots of people, and I think it should result not only in clarification of these update strategies, but also regarding testing procedures and release schedules. This app screen bug is a very minor annoyance in comparison to lots of bugs introduced in 28.0, which were thankfully gradually improved on in the .0.x versions. However, I personally think 28.0.0 should never have been released in this state, there were way too many bugs that simple testing routines (like drag and drop a file into the browser, try to move/duplicate files, overwriting files at upload, not handling new file creation properly, etc., all these things were not working in v28) could have prevented. And in the same vain, a simple test of all screens (scrollable? clickable?) in different browser would have prevented this app list bug from shipping (at least unknowingly). For me, it was the first time in years I had more than 1-2 minor issues when running a new version. So, in my opinion, something fundamentally went wrong and it would be great to see the development process learning from that – because it also cannot be the goal to just allow the most hobbyist users to use the most recent version. So overall, I think development on new things should slow down and testing should be more rigorously at least such that new .0 versions will be as stable as the other 20s version were. And I know there are lots of people working with constrained resources, so I am very thankful for all your work – I am just not certain the resources are always appropriately assigned to new developments vs. reliability/bug fixing.

adegans commented 5 months ago

I have this too on NC28.0.5 with Safari macOS and also on my iPad. I don't come in that dashboard too often, but I think it worked fine on earlier versions.

mehlkopf commented 5 months ago

Sorry, will be backported to v28 before the next minor release.

Unfortunately, 28.0.6 did not fix it for me …

nicnab commented 5 months ago

Sorry, will be backported to v28 before the next minor release.

Unfortunately, 28.0.6 did not fix it for me …

For me neither. I'm currently unsure how to proceed. Thinking about setting up a test instance with 29 and have some Mac users do tests there and then upgrade straight through to 29 if it works.

adegans commented 5 months ago

Works for me on safari/macos with 29. But it continues a bunch of other stupid issues. Like the endless socket timeout problem when the macbook awakes from sleep. And heaps of pointless sync issues I can't explain which go away after a minute or so.