nextcloud / deck

đź—‚ Kanban-style project & personal management tool for Nextcloud, similar to Trello
https://apps.nextcloud.com/apps/deck
GNU Affero General Public License v3.0
1.22k stars 279 forks source link

Attach files to cards [$30 awarded] #109

Closed juliusknorr closed 6 years ago

juliusknorr commented 7 years ago

Users should be able to attach files to cards.

Edit:

--- The **[$30 bounty](https://www.bountysource.com/issues/44724860-attach-files-to-cards?utm_campaign=plugin&utm_content=tracker%2F52758431&utm_medium=issues&utm_source=github)** on this issue has been claimed at [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F52758431&utm_medium=issues&utm_source=github).
juliusknorr commented 7 years ago

Let's move this to 0.3 since it requires more work and due dates will be added without the attachment approach.

9662 commented 7 years ago

Point 3 (files): is that about displaying a file (image, maybe video / sound?) inline, or about actually storing files in Deck? If the latter, isn't that redundant, seeing as storing files is the main purpose of Nextcloud?

The way I use it is to store the files in Nextcloud and then link to them (via the “local link” feature in NC, e.g., And this is our [latest bad idea](https://cloud.example.com/f/112233), blah and blah). This allows me to have access to all of NC's features such as access permissions, expiry dates, auto-removal of files, etc., etc.

juliusknorr commented 7 years ago

Using the local file link sounds like a good idea except that files and the deck might have different permissions and therefore some users might not be able to work with the files.

For a first implementation my plan was to just allow to attach files to cards by selecting them from the Nextcloud files using a file picker.

For uploads storing in the Nextcloud filesystem might be an issue because we don't know where the files should be stored. Maybe we could expose some kind of virtual folders to the Nextcloud files app that will just contain the files uploaded directly to deck. But I need to dig more into the API Nextcloud provides for files to make this more clear.

9662 commented 7 years ago

except that files and the deck might have different permissions and therefore some users might not be able to work with the files.

Yes, I actually consider that a feature and have used it in that way. E.g., you can mention something in a card while pointing to sensitive details in a file with more restrictive permissions.

For uploads storing in the Nextcloud filesystem might be an issue because we don't know where the files should be stored.

The Notes app commandeers a directory (Notes/) in the user's home dir, where notes are stored. If file uploads are deemed necessary from within Deck, it could possibly follow a similar approach (Deck uploads/), or have the uploading user specify a path on the Nextcloud installation. In either case, it may have to adjust the uploaded file's permissions to match those of the board.

I would suggest that whichever approach is taken, in the end the files should be stored as regular Nextcloud files.

One thing to keep in mind: sooner or later Deck will have a client app written for it. In that case, the Deck API should be able to work even if using an application password with no file system access.

From a security point of view, the HTTP Upload XEP may offer some inspiration, in particular the security section.

Comment updated with links and some more details.

pieter-groeneweg commented 7 years ago

Just some thoughts on the attachments added to cards.

Files are stored in Nextcloud the usual way. When I file is added as an attachment in Deck, the file should be available in the files app. This file automatically is shared with the members of the Deck Board. This then also shows in the files app with the shared icon. Adding an attachment implies you need the other members of the board to know so you need to share anyway.

9662 commented 7 years ago

Insightful comment above. However, since one can just link to the file in the usual Markdown way, e.g.,

For more details please see our [Evil Plan](https://cloud.example.com/f/666)

is this feature really necessary or is it getting into gold-plating territory?

pixelipo commented 7 years ago

@9662 that requires a lot of "work" from a user - go to Files app, find the file needed, copy the link, return to Deck app, find the card add (and know) the Markdown code needed.

Additionally, user won't get information on the board that a certain item has attachment. Another user, the board is shared with, might have a different path to that same file.

Finally, if we want to go the Trello way, thumbnail-sized versions of attached image would show on board view of the given card - Markdown prevents this possibility.

pieter-groeneweg commented 7 years ago

Yes it is really a required feature. Showing this to several co-workers using Trello, they say it is nice, but far from complete. It really does need an image and file sharing feature to be able to compete with other KanBan alike applications.

juliusknorr commented 7 years ago

that requires a lot of "work" from a user - go to Files app, find the file needed, copy the link, return to Deck app, find the card add (and know) the Markdown code needed.

:+1: Yes, we should make it easy to attach a file with a file selector.

Finally, if we want to go the Trello way, thumbnail-sized versions of attached image would show on board view of the given card - Markdown prevents this possibility.

Not sure about that, but I guess that is something to discuss once we have the basic file feature.

9662 commented 7 years ago

that requires a lot of "work" from a user - go to Files app, find the file needed, copy the link, return to Deck app, find the card add (and know) the Markdown code needed.

Perhaps, but wouldn't it be desirable for that to be improved in the Nextcloud frontend itself (e.g., https://github.com/nextcloud/server/issues/6005), rather than to be worked around on a per-application basis?

Additionally, user won't get information on the board that a certain item has attachment.

Deck can scan the contents of the note for any in-cloud links (or for any links whatever) and show an appropriate indication.

Another user, the board is shared with, might have a different path to that same file.

Not if you use direct links as I mentioned above:

screenshot_20171116_183713

Finally, if we want to go the Trello way,

That is a separate discussion. Personally, I would concentrate on matching those guys on snappiness and performance first, then think about features, given the mismatch on hands available.

thumbnail-sized versions of attached image would show on board view of the given card - Markdown prevents this possibility.

It is perfectly possible to configure the markdown processor to scan the links and produce thumbnails (server- or client-side). This would be a separate requirement than “attach files” though.

Note: I am not against this feature per se, I am however rather dubious about the driver for it, which seems to boil down to “someone else has it, let's copy them!” Why not focus instead on what users' actual requirements are, and then implement them in a way that takes advantage of the application's own environment? Precisely, a big advantage of Deck over the competitor mentioned above is that it is embedded within a cloud solution. Why not take advantage of that and integrate seamlessly with its host, instead of duplicating features and functionality, with the consequent increase in code maintainability costs and cognitive load for the user?

ArjonBu commented 6 years ago

Any update for this feature?

juliusknorr commented 6 years ago

@Arjoni It won't make it into 0.3. I want to do a release soon, so we are compatible with the upcoming NC13.

Feel free to add a bounty if you want to support the development of this feature. https://www.bountysource.com/issues/44724860-attach-files-to-cards

SueCarreira commented 6 years ago

Hi Julius, are there any news on this feature? Kind regards, S.

helmut72 commented 6 years ago

What if the attachment is stored in Nextcloud? Download the file and upload into Deck?

juliusknorr commented 6 years ago

@helmut72 That would be a different issue, feel free to open one for that. In general Nextcloud lacks of an API to allow proper sharing into apps right now. The relevant server issue is at https://github.com/nextcloud/server/issues/10292

helmut72 commented 6 years ago

@juliushaertl Thanks for explanation.