Content
View differences
Updated by Marc Alcobé about 4 years ago
## Open Questions and Subsequent Decisions
_(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.
* [ ] 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...).
## Specification
**As an** OpenProject user
**I want to** be able to see associate 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 the same file(s) with several work packages with making additional copies.
* I can update the relevant file(s) on Nextcloud and know that the workpackage 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 Nextcloud:
* ID
* Path (the hierarchy in Nextcloud's folder structure)
* Name
* File Type (~~and (and corresponding icon, if possible~~ _Icons are provided by OP_) possible)
* Other meta (whatever is possible to extract) (for file information, does the API return any of these?)
* Format (eg. PDF, Word document, RTF, JPEG...)
* Last modified
* Created by
* Created (date)
2. Expose this information with additional API endpoints
1. Return a list of all files linked to a particular work package
2. Return a list of all work packages linked to a single file adding a new work package filter on file ID. (this ID.(this information will be displayed/accessed on Nextcloud)
3. Add a"Nextcloud" section tab to work package split screen (described more in the files tab detail below) that allows the user to see and access on Nextcloud linked files. This tab should allow the user to:
1. See what files has been linked to this work package
2. ~~Add Add folder(s) and file(s) as links~~ In this version linking is only possible through Nextcloud links
3. 2. ~~Remove Remove each link (manually)~~ In this version removing is only possible through Nextcloud \[<mention class="mention" data-id="42086" data-type="user" data-text="@Wieland Lindenthal">@Wieland Lindenthal</mention> is this correct?\] (manually)
4. 3. Download the file or folder locally
5. 4. Open Access the specific file(s) in Nextcloud (in a new tab)
6. Open the containing file or folder in Nextcloud (in a new tab)
7. 5. See the information of the file(s) (metadata)
8. Log/connect Log in to Nextcloud if the user is not connected
4. Make these linked files and folders visible under the "Files" section of a work package full screen view _(mockups in progress, a few points of clarification required)_
5. Authentication and authorisation authorization (OIDC)
_(This is really a tricky one and we need to work get a better understanding of it. The specification here is not sufficient. Here some suggestions \[<mention class="mention" data-id="42086" data-type="user" data-text="@Wieland Lindenthal">@Wieland Lindenthal</mention> what is the current status on this? Can we update the specs for this?\])_ \[WL\])_
1. Show login (unless already logged in), then authorize OP backend to access NC on behalf of the user.
2. Save these user tokens in the backend.
3. Make sure to solicit updated tokens before they time out using refresh tokens (Cronjob?).
6. 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)~~
_(Open question <mention class="mention" data-id="72512" data-type="user" data-text="@Marc Alcobé">@Marc Alcobé</mention> <mention class="mention" data-id="72513" data-type="user" data-text="@Parimal Satyal">@Parimal Satyal</mention> <mention class="mention" data-id="3" data-type="user" data-text="@Niels Lindenthal">@Niels Lindenthal</mention>: How do we determine who has access to these instantly created folders? Do simply inherit the access privileges from the parent folder? \[WL\])_
_(**Response from Product:** <mention class="mention" data-id="42086" data-type="user" data-text="@Wieland Lindenthal">@Wieland Lindenthal</mention>: Excellent question; file upload introduces new challeneges that we still haven't fully had a chance to appreciate. I suggest we first discuss and decide together if we want to include file upload in v1 before getting to specifying/mocking-up the details.)_
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.
7. ~~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.~~
_(**Note from Product**: This sectionstriked out only until we decide what to do about file upload)_
8. Delete a link between a work package and a file/folder
## The Nextcloud section in files tab
For the Nextcloud section inside of the files tab to appear in the work package split screen, the bridge between OpenProject and Nextcloud should already have been established in settings. The precise interface to do has yet to be described, but for now it involves sharing the API access token with the OpenProject app in Nextcloud \[<mention class="mention" data-id="42086" data-type="user" data-text="@Wieland Lindenthal">@Wieland Lindenthal</mention> what about the bridge interface? Do we need to do something here?\] Nextcloud.
The following assumes that the link has already been made.
The Nextcloud section tab appears right bellow to "Watchers" and left to Github. Clicking on it with display an empty screen with three buttons:
* Link files or folders
* Sort by
* Settings
When there are files or folders that are already linked, there will be a number next to the "Attachments" section word "Nextcloud" with the number of linked items. For example: "**Nextcloud (4)**" (if there are for example 3 files and 1 folder linked to the work package).
_Note that this split screen view is naturally also available in split screen view accessed via a work package list._
### **Link files tab. or folders**
Clicking on this button has two possible behaviors:
* In case there If the user is not logged in to Nextcloud, then a connection done but no files linked an illustration login dialogue is displayed ~~(with the username/email field; a password field; a "forgot password?" link and message the "Log in to Nextcloud" button).~~ The login dialogue is provided by NextCloud and is not designed or implemented by OpenProject. _(Note: mockups don't show the NextCloud login screen yet)._
* If the user is logged in, a file-picker dialogue is displayed bellow
The file picker allows the sub-header "Link files user to navigate through the folders on Nextcloud visible to OpenProject. By default (and by design in Nexcloud. In order the first first iteration), this will be everything under the "OpenProject" folder under home that was created at the moment the two accounts _("accounts"? you mean the two instances, OP and NC \[WL\])_ were linked. _(I am not a big fan of that. Why do we need to link files restrict the integration to this only work package please do it via Nextcloud". Bellow within a button specific folder? Why can't we allow access to everything the current Nextcloud user has access Nexcloud will be displayed. to? \[WL\]) <-- What did we decide here <mention class="mention" data-id="72513" data-type="user" data-text="@Parimal Satyal">@Parimal Satyal</mention> <mention class="mention" data-id="72512" data-type="user" data-text="@Marc Alcobé">@Marc Alcobé</mention>?_
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/30565/content"></div></figure>
When there are The user is then free to navigate through the folder hierarchy to locate files and folders to link. They may either select a single file or folder, multiple files and folders that are already linked, this will affect to link by clicking on the number corresponding checkbox(es) next to each item and then clicking on the Files tab and will primary "Link Selected" button. This button remains disabled until at least one file or folder is selected.
A folder can both be displayed clicked to drill in to it, or selected by clicking on the "Nextcloud" checkbox next to it. A file obviously can only be selected.
The linked files and folders then show up in the file list as specified bellow: below where the "Link files and folders" and Settings buttons are.
_Note: Please note that both technically and functionally, a link to a file or a folder works the same way. Linking a folder **does not** link the enclosed files to the work package, just the folder itself._
### **File list**
The The upper half of the area below the buttons represents the 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 package, separated in two parts by date of modification of the file (as its displayed on the list) being the first one default in the list the latest modified file \[<mention class="mention" data-id="42086" data-type="user" data-text="@Wieland Lindenthal">@Wieland Lindenthal</mention>, I think we still need to validate this is possible\] alphabetical order, as in:
* All files (A-Z)
* All folders (A-Z)
Each item in the file list is a linked file/folder, and it will be represented file, with these elements in a single line:
* An icon representing file type (acquired from Nextcloud, else we can provide a generic file icon), 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 file size
* Download button (direct link to the user will open the file/folder file)
* View in Nextcloud button (opens in a new tab)
* Date of modification of A more icon with, for the file
moment, only one item
* User who did Remove link
**Sort by**
Clicking on the modification \[<mention class="mention" data-id="42086" data-type="user" data-text="@Wieland Lindenthal">@Wieland Lindenthal</mention> is this correct? or is the creator of the file?\] "Sort by" button displays a drop-down with these options:
* Alphabetical (A-Z) _(selected by default)_
* On hover to this list element there will be multiple options:
Last modified (newest first)
* Download file
File size biggest first
* Open containing folder: opens File size: smallest first
**Open:** These options to be discussed.
Clicking on one of the folder where other options changes the file is stored (in sort order accordingly. The files and folders are nevertheless listed separately (files first, then folders).
**Settings button**
_A description of the case behavior of folders it opens the folder that contains the folder not the folder itself)
* Open file information (described bellow)
* Remove link Settings button will subsequently be added._
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/30567/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 users clock on the is empty till a file info icon of a file, this will have a open persistent behaviour that will allow users to switch between files informations until they close it through the top right "X" icon or tab again on the information button on hover of any file. folder is selected. 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:
* Filename
* File size
* Format
* Last modified
* Created by
* Created (date) lists:
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/30568/content"></div></figure>
* **Without preview:** only the basic information will be displayed:
* Filename
* File size
* Format
* Last modified
* Created by
* Created (date)
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/30569/content"></div></figure>
This zone is "sticky", in that if the file list above it is especially long, a vertical scroll will be needed.
_Note: this zone will almost certainly also evolve to include the Activity stream once we decide to include that._
##
## Out of scope
The out of scope points mentioned bellow are covered Nextcloud elements in the next implementation documented in the work package <mention class="mention" data-id="41351" data-type="work_package" data-text="#41351">#41351</mention>: Activity tab
* 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 _To be to tunnel a request for file structure through OP's backend and impersonate the current user (This defined..._
_(I believe that this is currently preferred as it allows reusing the frontend out of scope 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 MVP, right? \[WL\])_
3. While picking the destination location also allow for creating new folder structures in NC, similar to the file/folder picker above.
## Out of scope
* Setting file access permissions in Nextcloud.
* Direct file upload in OpenProject in the very first version (though obviously will come very soon after)
* Activity stream **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.
~~**Sort by**~~
~~Clicking on the "Sort by" button displays a drop-down with these options:~~
* ~~Alphabetical (A-Z)~~ _~~(selected by default)~~_
* ~~Last modified (newest first)~~
* ~~File size biggest first~~
* ~~File size: smallest first~~
## Visuals
_An empty Nextcloud tab in a work package split screen view_
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/30570/content"></div></figure> src="/api/v3/attachments/24689/content"></div></figure>
_A single file (selected) in the file list, with file information visible underneath and a (1) next to the Nextcloud tab title_
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/30573/content"></div></figure> src="/api/v3/attachments/24690/content"></div></figure>
_The file picker allows the user to traverse the folder hierarchy to locate files and folders to link with the current work package_
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/30572/content"></div></figure> src="/api/v3/attachments/24691/content"></div></figure>
_Each file or folder list has action buttons to download or view in Nextcloud, and a more button. Note the Nextcloud tab title now says (4)._
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/30571/content"></div></figure> src="/api/v3/attachments/24693/content"></div></figure>
## Figma link
The Figma prototype 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) [https://www.figma.com/file/gtLQfPe09X7XugAH8L7dTy/?node-id=64%3A16362](https://www.figma.com/file/gtLQfPe09X7XugAH8L7dTy/?node-id=64%3A16362)
_(Please ensure that the "Nextcloud in OP Integration - V1.1" (basic)" page is selected in the top-left page list)_
##
##
## Open Questions and Subsequent Decisions
_(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>._
_(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.
* [ ] 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...).
##
**As an** OpenProject user
**I want to** be able to see
**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 the same file(s) with several work packages with making additional copies.
* I can update the relevant file(s) on Nextcloud and know that the workpackage 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 Nextcloud:
* ID
* Path (the hierarchy in Nextcloud's folder structure)
* Name
* File Type (~~and
* Other meta (whatever is possible to extract)
* Format (eg. PDF, Word document, RTF, JPEG...)
* Last modified
* Created by
* Created (date)
2. Expose this information with additional API endpoints
1. Return a list of all files linked to a particular work package
2. Return a list of all work packages linked to a single file adding a new work package filter on file ID. (this
3. Add a"Nextcloud" section
1. See what files has been linked to this work package
2. ~~Add
3.
4.
5.
6. Open the containing
7.
8. Log/connect
4.
5.
_(This is really a tricky one and we need to work get a better understanding of it. The specification here is not sufficient. Here some suggestions \[<mention class="mention" data-id="42086" data-type="user" data-text="@Wieland Lindenthal">@Wieland Lindenthal</mention> what is the current status on this? Can we update the specs for this?\])_
1. Show login (unless already logged in), then authorize OP backend to access NC on behalf of the user.
2. Save these user tokens in the backend.
3. Make sure to solicit updated tokens before they time out using refresh tokens (Cronjob?).
6. 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)~~
_(Open question <mention class="mention" data-id="72512" data-type="user" data-text="@Marc Alcobé">@Marc Alcobé</mention> <mention class="mention" data-id="72513" data-type="user" data-text="@Parimal Satyal">@Parimal Satyal</mention> <mention class="mention" data-id="3" data-type="user" data-text="@Niels Lindenthal">@Niels Lindenthal</mention>: How do we determine who has access to these instantly created folders? Do simply inherit the access privileges from the parent folder? \[WL\])_
_(**Response from Product:** <mention class="mention" data-id="42086" data-type="user" data-text="@Wieland Lindenthal">@Wieland Lindenthal</mention>: Excellent question; file upload introduces new challeneges that we still haven't fully had a chance to appreciate. I suggest we first discuss and decide together if we want to include file upload in v1 before getting to specifying/mocking-up the details.)_
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.
7. ~~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.~~
_(**Note from Product**: This sectionstriked out only until we decide what to do about file upload)_
8. Delete a link between a work package and a file/folder
## The Nextcloud section in files tab
For the Nextcloud section inside of the files tab to appear in the work package split screen, the bridge between OpenProject and Nextcloud should already have been established in settings. The precise interface to do has yet to be described, but for now it involves sharing the API access token with the OpenProject app in Nextcloud \[<mention class="mention" data-id="42086" data-type="user" data-text="@Wieland Lindenthal">@Wieland Lindenthal</mention> what about the bridge interface? Do we need to do something here?\]
The following assumes that the link has already been made.
The Nextcloud section
* Link files or folders
* Sort by
* Settings
When there are files or folders that are already linked, there will be a number next to
_Note that this split screen view is naturally also available in split screen view accessed via a work package list._
### **Link
* If the user is logged in, a file-picker dialogue is
The file picker allows
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/30565/content"></div></figure>
When there are
A folder can both
The linked files and folders then show up in the file
The
* All folders (A-Z)
* An icon representing file type
* The file/folder name (by clicking on this element
* The file size
* Download button (direct link to
* View
* Date of modification of
**Sort by**
Clicking on
* Alphabetical (A-Z) _(selected by default)_
* On hover to this list element there will be multiple options:
**Open:** These options to be discussed.
Clicking on one of
**Settings button**
_A description of
* 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/30567/content"></div></figure>
###
###
The lower half of the split-screen is reserved for the "File information" section. This will be opened when the users clock on the
* **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:
* Filename
* File size
* Format
* Last modified
* Created by
* Created (date)
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/30568/content"></div></figure>
* **Without preview:** only the basic information will be displayed:
* Filename
<figure class="image op-uc-figure" style="width:75%;"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/30569/content"></div></figure>
This zone is "sticky", in that if the file list above it is especially long, a vertical scroll will be needed.
## Out of scope
The out of scope points mentioned bellow are covered
* 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
_(I believe that this
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
3. While picking the destination location also allow for creating new folder structures in NC, similar to the file/folder picker above.
## Out of scope
* 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.
~~**Sort by**~~
~~Clicking on the "Sort by" button displays a drop-down with these options:~~
* ~~Alphabetical (A-Z)~~ _~~(selected by default)~~_
* ~~Last modified (newest first)~~
* ~~File size biggest first~~
* ~~File size: smallest first~~
## Visuals
## Figma link
The Figma prototype 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"
##
##
## Open Questions and Subsequent Decisions
_(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>._