Content
View differences
Updated by Marc Alcobé about 4 years ago
## Specification
**As an** OpenProject user
**I want to** be able to see relevant linked files that I have on Nextcloud with work packages
**so that I**
* have all the relevant attachments concerning the work package,
* can be confident about having the latest version of the file(s),
* be confident that any updates to relevant files will not require manual relinking,
* I can associate the same file(s) with several work packages without making additional copies.
* I can update the relevant file(s) on Nextcloud and know that the work package will still point to the right file(s) with all my updates.
## Example use cases
* There is a complex calculation that needs to be done in a spreadsheet tool. The work package describes the workflow to work on a specific part of that (eg. energy projections for a construction project). Other people are working on other parts, but it's important for everybody to have access to the same latest version (including the work of other people).
* Preparing slides for a workshop. Several users need to work collaboratively on different sections. This is easier if everyone is working on a single file to avoid version conflicts and facilitate collaboration.
* Creating a new quote. This requires input from contractors to specific files.
## Implementation considerations
1. Extend the data model in OpenProject to store certain information about files hosted in external file storages, such as Nextcloud and make it accessible via
1. OpenProject admin interface: Managing file storages.
2. Project admin interface: Adding and removing file storages to projects.
3. Expose file link information with additional API endpoints (defined in <mention class="mention" data-id="40228" data-type="work_package" data-text="#40228">#40228</mention>)
2. Allow multiple, different file storages per OpenProject instance and project (defined in <mention class="mention" data-id="40536" data-type="work_package" data-text="#40536">#40536</mention>)
3. In the OpenProject frontend for work packages add a _Files_ tab that shows both, attachments (<mention class="mention" data-id="41340" data-type="work_package" data-text="#41340">#41340</mention>) and links to files in external storages (defined below).
4. Authentication and authorisation (OAuth2)
1. In order to fetch the latest meta data of a file (name, type, size ...) OpenProject needs to be able to query that information in the name of the current user.
2. For authorisation we will be using the OAuth2 standard.
## The Nextcloud section in files tab
For the Nextcloud section inside of the files tab to appear in the work package split screen, the connection between OpenProject and Nextcloud should already have been established in the settings. An admin needs to setup the the file storage in the admin settings and a project admin needs to activate the file storage on a project.
The following assumes that the link has already been made.
The Nextcloud section appears right bellow the "Attachments" section of the files tab.
* In case there is file storage setup on the project but the user has not yet authorized OpenProject to act on her behalf in Nextcloud the following message will be displayed "Login to Nextcloud. To add a link or upload files for the first time, please login to Nextcloud.", an illustration, a button to login to Nextcloud and the files related with this work package are greyed out. Note, the file names are already listed here although the current user might not have an account on Nextcloud, or might not have access rights for the files within Nextcloud. However, somebody in the project team linked that file and wanted to make it visible to other project team members. So if the current user has no access yet she will know that the file is there and that it is worth to connect her Nextcloud account and ask the file owner to also share that file with her. The overall goal of the integration is to make people find the relevant files.
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32803/content"></div></figure> src="/api/v3/attachments/32253/content"></div></figure>
* In case there is a connection done but no files linked an illustration and a message is displayed bellow the sub-header "Link files in Nexcloud. In order to link files to this work package please do it via Nextcloud". Bellow a button to access Nexcloud will be displayed.
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32804/content"></div></figure> src="/api/v3/attachments/32254/content"></div></figure>
* In case the instance has a connection but it is broken because of some technical reason or the login failed, then the following message will be displayed "No Nextcloud connection. Some Nextcloud settings are not working. Please try to login again or contact your Nexcloud administrator.", an illustration and a button to login in Nextcloud.
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32805/content"></div></figure> src="/api/v3/attachments/32255/content"></div></figure>
When there are files or folders that are already linked, this will affect the number on the _Files_ tab and will be displayed in the "Nextcloud" file list as specified bellow:
### **File list**
The file list contains a list of all files and folders that are linked with a work package trough Nextcloud. This list will be ordered by date of modification of the file (as its displayed on the list) being the first one in the list the latest modified file.
Each item in the file list is a linked file/folder, and it will be represented with these elements in a single line:
* An icon representing file type or folder (by clicking on this element the user will open the file/folder in a new tab)
* The file/folder name (by clicking on this element the user will open the file/folder in a new tab)
* Avatar of the user who did the modification/add/remove (coming from the avatar API from Nextcloud)
* Date of modification of the file
* On hover to this list element there will be multiple options:
* Download file
* Open containing folder: opens the folder where the file is stored (in the case of folders it opens the folder that contains the folder not the folder itself)
* Open file information (described bellow)
* Remove link
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32807/content"></div></figure> src="/api/v3/attachments/32256/content"></div></figure>
There is the possibility that the user have permissions to see some files but not for others, in that case the files are displayed with a transparency of 50% and in a hover status instead of the icon actions a message will be displayed.
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32808/content"></div></figure> src="/api/v3/attachments/32332/content"></div></figure>
### File Information
The lower half of the split-screen is reserved for the "File information" section. This will be opened when the user clicks on the file info icon of a file, this will have a open persistent behaviour that allows users to switch between files and their meta information until they close it through the top right "X" icon or tab again on the information button on hover of any file. For the item selected, there is two possibilities of view:
* **With preview:** we have a preview link of the file from Nextcloud and we will display it as the top part of the file information. Bellow it there will be the rest of the information. Keep in mind that not all information will be available to every Nextcloud user. The list might be incomplete for some files and users:
* Filename
* File size
* Format
* Last modified
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32258/content"></div></figure>
* **Without preview:** only the basic information will be displayed:
* Filename
* File size
* Format
* Last modified
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32259/content"></div></figure>
As the list is also navigable through tabulation and click when the split-split view is open there is an option to open files that the user hasn't permissions to see but still can open the information details, in that case we will display only the metadata shown on the list already plus a first row called Permissions:
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32260/content"></div></figure>
This zone is "sticky". If the file list above it is especially long, a vertical scroll will get shown.
### Drag and drop
When the users drag and drop files on top of the list of attachments the section for drag and dropping files will open automatically:
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32262/content"></div></figure>
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32261/content"></div></figure>
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32263/content"></div></figure>
## Related work packages
* Display the linked files and the attached files in the activity tab: <mention class="mention" data-id="42368" data-type="work_package" data-text="#42368">#42368</mention>
* Adaptation to the new attachments into the creation of work packages: <mention class="mention" data-id="42369" data-type="work_package" data-text="#42369">#42369</mention>
* OAuth process to show the files: <mention class="mention" data-id="42072" data-type="work_package" data-text="#42072">#42072</mention>
## Out of scope
The out of scope points mentioned bellow are covered in the next implementation documented in the work package <mention class="mention" data-id="41351" data-type="work_package" data-text="#41351">#41351</mention>:
* File/folder picker for referencing existing files/folders in Nextcloud
1. That file/folder picker should also allow for creating folders while picking (Not necessarily in the first version but obviously soon after)
2. Implementation options
1. One option would be to tunnel a request for file structure through OP's backend and impersonate the current user (This is currently preferred as it allows reusing the frontend for multiple storage providers)
2. Another option could be using Julian's file picker/uploader component (This is currently not the preferred option). Then the authentication would be achieved by the browser's Nextcloud session. If no session is open, the user needs to login first.
* File/folder upload
1. Allow uploading files
2. Allow uploading entire folder structures (just as NC allows it, too) _(I still don't know, how they do that. Webdav? I need to investigate it \[WL\])_
3. While picking the destination location also allow for creating new folder structures in NC, similar to the file/folder picker above.
* Setting file access permissions in Nextcloud.
* Direct file upload in OpenProject in the very first version
* Activity stream
* The lower half, below the the file list, represents the activity stream. This will contain:
* Activity related to the file (creation, modification, comments) and
* Comments posted directly on Nextcloud
* A Nextcloud icon next to the user icon indicates to the user that these elements correspond to activity on Nextcloud and not activity on the work package.
* File Information: The lower half of the split-screen is reserved for the "File information" section. This will be opened when the user clicks on the file info icon of a file, this will have a open persistent behaviour that allows users to switch between files and their meta information until they close it through the top right "X" icon or tab again on the information button on hover of any file. For the item selected, there is two possibilities of view:
* **With preview:** we have a preview link of the file from Nextcloud and we will display it as the top part of the file information. Bellow it there will be the rest of the information. Keep in mind that not all information will be available to every Nextcloud user. The list might be incomplete for some files and users:
* Filename
* File size
* Format
* Last modified
* **Without preview:** only the basic information will be displayed:
* Filename
* File size
* Format
* Last modified
* As the list is also navigable through tabulation and click when the split-split view is open there is an option to open files that the user hasn't permissions to see but still can open the information details, in that case we will display only the metadata shown on the list already plus a first row called Permissions:
* This zone is "sticky". If the file list above it is especially long, a vertical scroll will get shown.
## Visuals
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32813/content"></div></figure> src="/api/v3/attachments/32271/content"></div></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32815/content"></div></figure> src="/api/v3/attachments/32265/content"></div></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32814/content"></div></figure> src="/api/v3/attachments/32268/content"></div></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32817/content"></div></figure> src="/api/v3/attachments/32269/content"></div></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32816/content"></div></figure> src="/api/v3/attachments/32331/content"></div></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32810/content"></div></figure> src="/api/v3/attachments/32264/content"></div></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32820/content"></div></figure> src="/api/v3/attachments/32273/content"></div></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32818/content"></div></figure> src="/api/v3/attachments/32274/content"></div></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32819/content"></div></figure> src="/api/v3/attachments/32275/content"></div></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32822/content"></div></figure> src="/api/v3/attachments/32266/content"></div></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32821/content"></div></figure> src="/api/v3/attachments/32272/content"></div></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32811/content"></div></figure> src="/api/v3/attachments/32267/content"></div></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32812/content"></div></figure>
##
Figma link
The Figma mockups associated with this work package is available here:
[https://www.figma.com/file/gtLQfPe09X7XugAH8L7dTy/?node-id=337%3A22899](https://www.figma.com/file/gtLQfPe09X7XugAH8L7dTy/?node-id=337%3A22899)
_(Please ensure that the "Nextcloud in OP Integration - V1.1 (12.2)" page is selected in the top-left page list)_
##
##
## Open Questions and Subsequent Decisions
_(to keep track based _(based on our exchange on 20 December at 14h)_
* [ ] Only link files or also folders?
**Decision:** Link both files and folders in the exact same way, i.e. as a reference to the file/folder in a flat list. The user in OP can't access the _contents_ of the folder, merely see that it's linked to the work package. To access containing files, she will have to click through and access them on Nextcloud.
* [ ] Replace OP attachments with NC file links? Or join them? Or keep them separate?
**Decision**: NC file links _supplement_ OP attachments and do not replace them. Concretely, any files uploaded to a work package in the classic way (via drag/drop or the upload file selector in the Files section of a work package; via drag/drop in a comment...) will continue to be considered attachments as they are today.
* [ ] Are we going to create our own file or folder picker vs. reusing Julien's?
**Decision**: Couldn't complete discussing this topic but to future-proof our file picker and maintain consistency between different file hosting services (should they one day also be supported), we'll create our own. _This is not relevant for this WP as it belongs to <mention class="mention" data-id="41351" data-type="work_package" data-text="#41351">#41351</mention>._
* [ ] Are we sure that we will have or will never have multiple NC/Google drive/Dropbox/etc. instances connected to an OP instance?
**Decision:** We don't know yet, but surely prudent to plan ahead with the assumption that this may happen in the future.
* [ ] When are we going to implement file uploads from work packages to NC? In the first version, or the very next?
**Decision:** The product team can explore how file uploads might work from directly within OP (including the complexity that that maybe introduce); however, we do not consider this to be a deal-breaker for the first version or a beta. Whether or not this should be a minimum for a _release_, however, remains open. Also discussed was a need to examine properly how much of the file upload workflow that Nextcloud allows should be recreated in OpenProject (for example, folder creation, bulk upload, folder upload...). _This is now specified in <mention class="mention" data-id="41351" data-type="work_package" data-text="#41351">#41351</mention>._
**As an** OpenProject user
**I want to** be able to see relevant linked files that I have on Nextcloud with work packages
**so that I**
* have all the relevant attachments concerning the work package,
* can be confident about having the latest version of the file(s),
* be confident that any updates to relevant files will not require manual relinking,
* I can associate the same file(s) with several work packages without making additional copies.
* I can update the relevant file(s) on Nextcloud and know that the work package will still point to the right file(s) with all my updates.
## Example use cases
* There is a complex calculation that needs to be done in a spreadsheet tool. The work package describes the workflow to work on a specific part of that (eg. energy projections for a construction project). Other people are working on other parts, but it's important for everybody to have access to the same latest version (including the work of other people).
* Preparing slides for a workshop. Several users need to work collaboratively on different sections. This is easier if everyone is working on a single file to avoid version conflicts and facilitate collaboration.
* Creating a new quote. This requires input from contractors to specific files.
## Implementation considerations
1. Extend the data model in OpenProject to store certain information about files hosted in external file storages, such as Nextcloud and make it accessible via
1. OpenProject admin interface: Managing file storages.
2. Project admin interface: Adding and removing file storages to projects.
3. Expose file link information with additional API endpoints (defined in <mention class="mention" data-id="40228" data-type="work_package" data-text="#40228">#40228</mention>)
2. Allow multiple, different file storages per OpenProject instance and project (defined in <mention class="mention" data-id="40536" data-type="work_package" data-text="#40536">#40536</mention>)
3. In the OpenProject frontend for work packages add a _Files_ tab that shows both, attachments (<mention class="mention" data-id="41340" data-type="work_package" data-text="#41340">#41340</mention>) and links to files in external storages (defined below).
4. Authentication and authorisation (OAuth2)
1. In order to fetch the latest meta data of a file (name, type, size ...) OpenProject needs to be able to query that information in the name of the current user.
2. For authorisation we will be using the OAuth2 standard.
## The Nextcloud section in files tab
For the Nextcloud section inside of the files tab to appear in the work package split screen, the connection between OpenProject and Nextcloud should already have been established in the settings. An admin needs to setup the the file storage in the admin settings and a project admin needs to activate the file storage on a project.
The following assumes that the link has already been made.
The Nextcloud section appears right bellow the "Attachments" section of the files tab.
* In case there is file storage setup on the project but the user has not yet authorized OpenProject to act on her behalf in Nextcloud the following message will be displayed "Login to Nextcloud. To add a link or upload files for the first time, please login to Nextcloud.", an illustration, a button to login to Nextcloud and the files related with this work package are greyed out. Note, the file names are already listed here although the current user might not have an account on Nextcloud, or might not have access rights for the files within Nextcloud. However, somebody in the project team linked that file and wanted to make it visible to other project team members. So if the current user has no access yet she will know that the file is there and that it is worth to connect her Nextcloud account and ask the file owner to also share that file with her. The overall goal of the integration is to make people find the relevant files.
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32803/content"></div></figure>
* In case there is a connection done but no files linked an illustration and a message is displayed bellow the sub-header "Link files in Nexcloud. In order to link files to this work package please do it via Nextcloud". Bellow a button to access Nexcloud will be displayed.
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32804/content"></div></figure>
* In case the instance has a connection but it is broken because of some technical reason or the login failed, then the following message will be displayed "No Nextcloud connection. Some Nextcloud settings are not working. Please try to login again or contact your Nexcloud administrator.", an illustration and a button to login in Nextcloud.
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32805/content"></div></figure>
When there are files or folders that are already linked, this will affect the number on the _Files_ tab and will be displayed in the "Nextcloud" file list as specified bellow:
### **File list**
The file list contains a list of all files and folders that are linked with a work package trough Nextcloud. This list will be ordered by date of modification of the file (as its displayed on the list) being the first one in the list the latest modified file.
Each item in the file list is a linked file/folder, and it will be represented with these elements in a single line:
* An icon representing file type or folder (by clicking on this element the user will open the file/folder in a new tab)
* The file/folder name (by clicking on this element the user will open the file/folder in a new tab)
* Avatar of the user who did the modification/add/remove (coming from the avatar API from Nextcloud)
* Date of modification of the file
* On hover to this list element there will be multiple options:
* Download file
* Open containing folder: opens the folder where the file is stored (in the case of folders it opens the folder that contains the folder not the folder itself)
* Open file information (described bellow)
* Remove link
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32807/content"></div></figure>
There is the possibility that the user have permissions to see some files but not for others, in that case the files are displayed with a transparency of 50% and in a hover status instead of the icon actions a message will be displayed.
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32808/content"></div></figure>
###
The lower half of the split-screen is reserved for the "File information" section. This will be opened when the user clicks on the file info icon of a file, this will have a open persistent behaviour that allows users to switch between files and their meta information until they close it through the top right "X" icon or tab again on the information button on hover of any file. For the item selected, there is two possibilities of view:
* **With preview:** we have a preview link of the file from Nextcloud and we will display it as the top part of the file information. Bellow it there will be the rest of the information. Keep in mind that not all information will be available to every Nextcloud user. The list might be incomplete for some files and users:
* Filename
* File size
* Format
* Last modified
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32258/content"></div></figure>
* **Without preview:** only the basic information will be displayed:
* Filename
* File size
* Format
* Last modified
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32259/content"></div></figure>
As the list is also navigable through tabulation and click when the split-split view is open there is an option to open files that the user hasn't permissions to see but still can open the information details, in that case we will display only the metadata shown on the list already plus a first row called Permissions:
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32260/content"></div></figure>
This zone is "sticky". If the file list above it is especially long, a vertical scroll will get shown.
###
When the users drag and drop files on top of the list of attachments the section for drag and dropping files will open automatically:
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32262/content"></div></figure>
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32261/content"></div></figure>
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32263/content"></div></figure>
## Related work packages
* Display the linked files and the attached files in the activity tab: <mention class="mention" data-id="42368" data-type="work_package" data-text="#42368">#42368</mention>
* Adaptation to the new attachments into the creation of work packages: <mention class="mention" data-id="42369" data-type="work_package" data-text="#42369">#42369</mention>
* OAuth process to show the files: <mention class="mention" data-id="42072" data-type="work_package" data-text="#42072">#42072</mention>
## Out of scope
The out of scope points mentioned bellow are covered in the next implementation documented in the work package <mention class="mention" data-id="41351" data-type="work_package" data-text="#41351">#41351</mention>:
* File/folder picker for referencing existing files/folders in Nextcloud
1. That file/folder picker should also allow for creating folders while picking (Not necessarily in the first version but obviously soon after)
2. Implementation options
1. One option would be to tunnel a request for file structure through OP's backend and impersonate the current user (This is currently preferred as it allows reusing the frontend for multiple storage providers)
2. Another option could be using Julian's file picker/uploader component (This is currently not the preferred option). Then the authentication would be achieved by the browser's Nextcloud session. If no session is open, the user needs to login first.
* File/folder upload
1. Allow uploading files
2. Allow uploading entire folder structures (just as NC allows it, too) _(I still don't know, how they do that. Webdav? I need to investigate it \[WL\])_
3. While picking the destination location also allow for creating new folder structures in NC, similar to the file/folder picker above.
* Setting file access permissions in Nextcloud.
* Direct file upload in OpenProject in the very first version
* Activity stream
* The lower half, below the the file list, represents the activity stream. This will contain:
* Activity related to the file (creation, modification, comments) and
* Comments posted directly on Nextcloud
* A Nextcloud icon next to the user icon indicates to the user that these elements correspond to activity on Nextcloud and not activity on the work package.
* File Information: The lower half of the split-screen is reserved for the "File information" section. This will be opened when the user clicks on the file info icon of a file, this will have a open persistent behaviour that allows users to switch between files and their meta information until they close it through the top right "X" icon or tab again on the information button on hover of any file. For the item selected, there is two possibilities of view:
* **With preview:** we have a preview link of the file from Nextcloud and we will display it as the top part of the file information. Bellow it there will be the rest of the information. Keep in mind that not all information will be available to every Nextcloud user. The list might be incomplete for some files and users:
* Filename
* File size
* Format
* Last modified
* **Without preview:** only the basic information will be displayed:
* Filename
* File size
* Format
* Last modified
* As the list is also navigable through tabulation and click when the split-split view is open there is an option to open files that the user hasn't permissions to see but still can open the information details, in that case we will display only the metadata shown on the list already plus a first row called Permissions:
* This zone is "sticky". If the file list above it is especially long, a vertical scroll will get shown.
## Visuals
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32813/content"></div></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32815/content"></div></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32814/content"></div></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32817/content"></div></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32816/content"></div></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32810/content"></div></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32820/content"></div></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32818/content"></div></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32819/content"></div></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32822/content"></div></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32821/content"></div></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32811/content"></div></figure>
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/32812/content"></div></figure>
##
The Figma mockups associated with this work package is available here:
[https://www.figma.com/file/gtLQfPe09X7XugAH8L7dTy/?node-id=337%3A22899](https://www.figma.com/file/gtLQfPe09X7XugAH8L7dTy/?node-id=337%3A22899)
_(Please ensure that the "Nextcloud in OP Integration - V1.1 (12.2)" page is selected in the top-left page list)_
##
##
## Open Questions and Subsequent Decisions
_(to keep track based
* [ ] Only link files or also folders?
**Decision:** Link both files and folders in the exact same way, i.e. as a reference to the file/folder in a flat list. The user in OP can't access the _contents_ of the folder, merely see that it's linked to the work package. To access containing files, she will have to click through and access them on Nextcloud.
* [ ] Replace OP attachments with NC file links? Or join them? Or keep them separate?
**Decision**: NC file links _supplement_ OP attachments and do not replace them. Concretely, any files uploaded to a work package in the classic way (via drag/drop or the upload file selector in the Files section of a work package; via drag/drop in a comment...) will continue to be considered attachments as they are today.
* [ ] Are we going to create our own file or folder picker vs. reusing Julien's?
**Decision**: Couldn't complete discussing this topic but to future-proof our file picker and maintain consistency between different file hosting services (should they one day also be supported), we'll create our own. _This is not relevant for this WP as it belongs to <mention class="mention" data-id="41351" data-type="work_package" data-text="#41351">#41351</mention>._
* [ ] Are we sure that we will have or will never have multiple NC/Google drive/Dropbox/etc. instances connected to an OP instance?
**Decision:** We don't know yet, but surely prudent to plan ahead with the assumption that this may happen in the future.
* [ ] When are we going to implement file uploads from work packages to NC? In the first version, or the very next?
**Decision:** The product team can explore how file uploads might work from directly within OP (including the complexity that that maybe introduce); however, we do not consider this to be a deal-breaker for the first version or a beta. Whether or not this should be a minimum for a _release_, however, remains open. Also discussed was a need to examine properly how much of the file upload workflow that Nextcloud allows should be recreated in OpenProject (for example, folder creation, bulk upload, folder upload...). _This is now specified in <mention class="mention" data-id="41351" data-type="work_package" data-text="#41351">#41351</mention>._