# Feature OP-10891 - Upload files to Nextcloud from within OpenProject

Project: OpenProject
Status: closed
URL: https://community.openproject.org/work_packages/OP-10891

## Planning

| Attribute | Value |
| --- | --- |
| Date |  |
| Priority | Medium |
| Target versions | 12.5.0 |
| Sprint | 12.5.0 |
| Backlog bucket |  |
| Votes |  |
| List |  |
| Roadmap |  |
| Relevance |  |

## OPEN POINTS / FEEDBACK

_No work packages_

## Features and Chunks

| ID | Subject | Type | Status | Assignee | Target versions | Spent time |
| --- | --- | --- | --- | --- | --- | --- |
| OP-11300 | Add API endpoint for fetching all necessary data for directly uploading files/folders | Implementation | rejected |  | 12.5.0 |  |
| OP-11464 | Implement StorageQuery to create upload link | Implementation | closed |  | 12.5.0 |  |
| OP-11465 | Implement model and API representer for upload link | Implementation | closed |  | 12.5.0 |  |
| OP-11466 | Implement API endpoint for creating upload link  | Implementation | closed |  | 12.5.0 |  |
| OP-11467 | Extend OpenAPI spec with new endpoint for creating upload links | Implementation | closed |  | 12.5.0 |  |
| OP-11468 | Implement StorageCommand for destroying an share link | Implementation | rejected |  | 12.5.0 |  |
| OP-11469 | Implement API endpoint for finalizing an upload | Implementation | rejected |  | 12.5.0 |  |
| OP-11470 | Integrate upload link finalize link into response for upload link creation | Implementation | rejected |  | 12.5.0 |  |
| OP-11503 | Refactor DownloadCommand into DownloadLinkQuery | Implementation | closed |  | 12.5.0 |  |
| OP-11563 | Upload File from UI | Implementation | closed |  | 12.5.0 |  |
| OP-11707 | CSP: Allow connect-src for all storages a user knows | Implementation | closed |  | 12.5.0 |  |
| OP-11713 | Extend "files" endpoint with permissions | Implementation | rejected | Andreas Pfohl | 12.5.0 |  |
| OP-11772 | Use direct upload tokens as provided by the NC app | Implementation | closed |  | 12.5.0 |  |
| OP-11821 | Change API response of storage files endpoint | Implementation | closed |  | 12.5.0 |  |
| OP-11839 | API specification: Add prepare upload endpoint | Implementation | closed |  |  |  |
| OP-11861 | Extend OpenAPI spec for storage files endpoint | Implementation | closed |  | 12.5.0 |  |

## Bugs and other work packages

| ID | Type | Subject | Status | Assignee | Target versions | Spent time | Module |
| --- | --- | --- | --- | --- | --- | --- | --- |
| OP-11898 | Bug | Missing translation for error message when multiple files are dragged and dropped | closed |  | 12.5.0 |  |  |

## Technical Details

| Attribute | Value |
| --- | --- |
| Module |  |
| Feature Flag |  |
| Requires doc change | Yes |
| Enterprise plan |  |

## Details

| Attribute | Value |
| --- | --- |
| Pull preview |  |
| Mockups |  |
| Found in mobile app version |  |
| Follow-up feedback e-mail |  |
| Accessibility | No |

## People

| Attribute | Value |
| --- | --- |
| Assignee |  |
| Accountable |  |
| Product manager |  |
| Developers |  |
| Designer | Marc Alcobé |
| Ordered by |  |
| Signed off by |  |
| Interest by |  |

## Estimates and progress

| Attribute | Value |
| --- | --- |
| PD (min) |  |
| PD (max) |  |
| Work |  |
| Labor costs |  |

## Description

**As** a user  
**I want to** upload a file from my device to Nextcloud and link it to a OpenProject work package  
**so that** I can keep track of the files related to my work packages directly from OpenProject

## **Acceptance criteria**

  - The location picker specified in <mention class="mention" data-id="43655" data-type="work_package" data-text="#43655">\#43655</mention> needs to be fully functional to be able to complete this flow.
  - The process of uploading a file should be the next:
    1.  The user clicks on the link "upload files" on the files tab:  
        <img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/37320/content">
    2.  The system file picker opens and the user selects the file/s that ones to upload  
        <img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/37321/content">
    3.  User needs to select in which folder of Nextcloud the file will be uploaded:  
        <img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/37445/content"><img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/37446/content">
    4.  Click on the "Choose location" button in the action bar.
    5.  A loading message appears on top of the screen as a tooltip (like in attachments). *(Needs to be checked depending on the time of response)*
    6.  A success message appears on top of the screen as a tooltip (like in attachments).
  - In case the user clicks on the cancel or outside the modal (50% black area) all the selection is canceled and the modal its closed.

## **Figma**

<https://www.figma.com/file/gtLQfPe09X7XugAH8L7dTy/Nextcloud-Integration?node-id=2442%3A67371>
