Upload files directly in data object

Feature Request

🥅 Goal

As a shepard user I want a comfortable drag and drop file upload on data object page so that I can quickly upload files and directly create a reference in one workflow .

🏅 Acceptance Criteria

  1. The "data" section on the data object page holds a drop zone where file(s) can be dropped directly with drag and drop

  2. Second possibility is to click on the "Click to upload" link that opens the local browser file dialog where I can select the files for upload.

  3. Doing so opens an upload dialogue.

    1. The files that were already selected (or via drag and drop) are already shown here
    2. further files can be added
    3. files can be removed from the list of files to be uploaded (x or trash bin)
  4. The upload dialogue forces the user to select a file container

    1. the file name of the first file in the list is pre-filled as default
    2. Existing file containers can be selected with a auto-fill helper field where you can type name or id. Only containers that are also writable shall be shown in the selection.
      1. the default file container is pre-selected in the dialogue
      2. there is a slider that allows to create a new container in the dialogue
        1. clicking it forces you to input name and permission ("public" "public readable" "private") for the new container
      3. if the selected container (existing or new) is not yet the default file container for the parent collection, there is a checkbox to assign the container as default file container.
      4. if the selected container is the default file container, the same checkbox is displayed as checked, but greyed out
  5. the dialogue forces the user to select a name for the reference.

    1. the filename of the first file in the list is pre-filled as a suggestions for the selection name
    2. There are some tooltips shown when hovering over "Reference Name" or the container input field (see design).
  6. On confirmation of the dialogue, upload and creation of the reference starts. User is notified with green toasts in case of success of the complete operation.

    1. user is notified if container is successfully created
    2. in case one of the uploads fail, no reference is created and a red error toast is shown. files already successfully uploaded already remain in the container and the error toast links to the container.
    3. during the file upload we make the buttons unavailable and show some kind of user feedback progress animation

Special Testing hints

💣 Out of Scope

New container view will be extended with a dropdown for container type later.

Check how much effort it is to make the upload progress cancellable. It is nice to have and not mandatory.

💡 Hints

First design in figma: https://www.figma.com/design/ivBPq71AuUl2ohFnrzHIKF/Visual-Design?node-id=2309-17174&t=0hasFxVhFsasnIzZ-0

🤔 Risks & Open Questions

Edited by wiglef
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information