Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[F2V] Files list #30135

Closed
21 of 31 tasks
skjnldsv opened this issue Dec 7, 2021 · 1 comment · Fixed by #39808
Closed
21 of 31 tasks

[F2V] Files list #30135

skjnldsv opened this issue Dec 7, 2021 · 1 comment · Fixed by #39808
Labels
Milestone

Comments

@skjnldsv
Copy link
Member

skjnldsv commented Dec 7, 2021

This ticket is part of the files to vue migration

Goal

Have the files list content based on the OCA.Files.Views Views
WITH VIRTUAL SCROLLING ⚠️

QA

  • No design changes (other than finally using existing vue components)
  • Handle URL more elegantly
    • /f/{fileId} still redirects to the default view
    • /apps/files/{view}/{fileid}
  • Breadcrumbs
    • Split current path
    • Each folder is clickable and load the files
    • Last folder can have a button that trigger a js action (e.g sharing icon)
      Requires OCA.Files.List.Breadcrumbs (pick better name if you want)
  • Columns (first 3 are hardcoded)
    • Checkbox
    • Name
    • Actions provided by the OCA.Files.Actions
    • Provided by OCA.Files.Views
  • Listing
    • Retrieve full list of files: virtual scrolling ⚠️
    • ScrollTo if path is a direct file
    • Cache FileInfos by fileId
    • When browsing away and back, all the files should be displayed directly and a loading indicator stating the list is being refreshed. Indicator should be a the bottom of the list. If most of the refreshes are fast enough (to be tested), ignore the indicator and just refresh silently in the back.
    • Clicking the main name triggers the default action if defined, the download action if none defined
    • Sort folders before files in ALL sorting modes. Not only name sorting.
  • Multiselect
    • When a multiselect starts, store the list of selected FileInfo
    • Reset when changing folder/view
    • Show list of available options filling as much with as possible. The rest of the actions are put into a dropdown
  • Right click on an item open the menu at the location of the cursor
    • Deprecate files_rightclick
    • Make the right-click enabled by default but togglable in the files settings (per user)
  • Error handling
    • Try to redirect to first parent if direct link to file doesn't exists
    • Redirect to root if both file nor direct parent exists

Bonus for later

  • Design this in an API-kind of way so later we can also just call the list with the default view (e.g. a filepicker) (and without the actions ❓)
  • Can decide which column to show/hide per view Design team said no

Listing API and discussion

Currently I actually don't know if there is any need to let other scripts/apps interact with the content.
Any idea/comments?

@skjnldsv skjnldsv added enhancement 0. Needs triage Pending check for reproducibility or if it fits our roadmap 1. to develop Accepted and waiting to be taken care of and removed 0. Needs triage Pending check for reproducibility or if it fits our roadmap labels Dec 7, 2021
@skjnldsv skjnldsv added this to the Nextcloud 24 milestone Dec 7, 2021
@icewind1991
Copy link
Member

/apps/files/{view}/{fileid}

Using only the fileid in the url wont work, as multiple paths can point to the same fileid (trough sharing mostly), this can lead to cases where a user is browsing /somefolder/foo, reload and have the path change to /someotherfolder/foo. It will still show the same folder contents, but the path shown in the breadcrumb will be different.

@skjnldsv skjnldsv moved this to Done in Files to vue Aug 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

3 participants