Open metroidchild opened 7 years ago
I like the idea... Maybe something to consider for Nextcloud 12? cc @icewind1991
Renaming we should be able to take care of with the file id, this should also help on moves.
'version' => '13.0.2.1' and add files with other application does not show in web browser , How I force a refresh or sync files ?
After navigate to them ( because I know the name) the files appears .
solution:
sudo -u www-data php occ files:scan
With all the amazing progress Nextcloud has made, it is hard to believe that the web interface still needs manual reloading to reflect changes in the background. Needless to say Google Drive, Dropbox, One Drive all don't. So maybe this could be put on the to-do-list.
live refreshing is likely to produce wrong clicks: imagine that you were about to click on a folder "test" but the view suddenly refreshes and now your mouse is hovering on "anothertest" due to the view shifting and then you find yourself clicking on the wrong entry
a better approach would be to show a notification like Github does "the contents has changed, please click to refresh"
@PVince81 on e.g. Twitter and chat programs, when you are scrolled and there’s new content, the view does not scroll but you get the "New messages" indicator like we do on Talk. Granted, this is a long list where things can only be added at the start. (However, the issue you mention with automatic scrolling also happens in chat apps when you are scrolled to the end, but it doesn’t really result in misclick issues.)
What I’ve seen in several apps before (don’t remember where) is that it is always made sure that the entry which is vertically in the center of the screen stays there, so if you are at M somewhere and a file with A is added, actually nothing changes visually and the view is not scrolled. And if an entry is added directly above or below the vertically center entry, worst case is that only less than half of the screen moves. (It would be worth trying that out because from a UX perspective, live refresh is quite expected these days, and manually hitting refresh is tedious.)
There's another challenge with live refresh: the fact that we have pagination in place. So if you were on page 10 we'll need to rerender the first 10 pages to be able to maintain the scrolling position. Now, if we do the "click on refresh" there's also the question whether we scroll down again that deep or whether we put people back at the top, which isn't that nice.
Regarding the detection itself, at first I thought we could use the folder's etag and poll the server with a cheap PROPFIND only on the etag. This will be problematic because the etag also changes whenever there's a change deep in the tree, a change that isn't necessarily visible in the current view, so showing a "pull to refresh" or reloading the list would have no benefit.
I'm not sure yet how we could accurately detect changes specifically inside the current list, it might need inventing another kind of property that only changes when the listing of the current folder changed, excluding children.
Now, if we do the "click on refresh" there's also the question whether we scroll down again that deep or whether we put people back at the top, which isn't that nice.
Refreshing should indeed keep you at the scroll position you were last at. Ideally same if you navigate back out of a folder into the parent, you should be at the position that the folder you were just in is at / your previous scroll position there.
Looking forward to this enhancement, it will greatly improve user experience over all nextcloud navigation and usage.
EDIT: If somebody is more conservative and wanna reload manually it could be good to develop also switch in admin settings or new config parameter for users that dont want live update
Signing status
``` No errors have been found. ```App list
``` do not know where to find location in snap install ```Config report
``` do not know where to find location in snap install ```Browser log
``` security log: Content Security Policy: Directive 'frame-src' has been deprecated. Please use directive 'child-src' instead. logging: JQMIGRATE: Migrate is installed, version 1.4.0 jquery-migrate.min.js:2:542 javascript log: window.controllers is deprecated. Do not use it for UA detection. ace.js:1716 ```