nextcloud / bookmarks

πŸ”– Bookmark app for Nextcloud
https://apps.nextcloud.com/apps/bookmarks
GNU Affero General Public License v3.0
1.02k stars 174 forks source link

Add "Folders" to Bookmarks to collect Bookmarks into Categories #514

Closed IzzySoft closed 6 years ago

IzzySoft commented 6 years ago

As #13 already requested:

To help me organize my Bookmarks, I'd like to request a new "Folder" feature in Bookmarks so I can group related Bookmarks together.

That issue was marked as resolved by @jancborchardt pointing to "tags":

There are "Tags" in Bookmarks, which cater to the use-case of "group related Bookmarks together" which was mentioned in the original issue.

That quote is taken out of context IMHO. Tags are admitteldy a way to organize bookmarks, but definitely not what that issue was about or what the vast majority of participants (including the OP, who even included a graphic depicturing folders (not tags!) in his opening post) stated to need – see e.g. this comment by @prog-amateur or this one by @Lantizia. Quoting @v3nd3tta1337:

IMO Nextcloud Bookmarks is completely useless to users without having folders. […] If I want to search (for tags), i want to search (for tags), if i want to organize, i want to organize.

Those are just a few of the latest comments there, you can find plenty more showing clearly that "tags" are not the answer to the request for folders. I clearly cannot see how that issue was closed with that argument.

So could we please move forward with the folder topic?

If you feel this being a duplicate, please reopen the original and close this one. I don't know if we still can hope for bookmark folders, with the referenced issue standing there for more than 5 years unsolved (I guess most of the other participants of #13 already gave up on it). I'm not "demanding" it – but if you don't want to implement it, simply say so and don't pretend it's solved "differently" (no, bookmarks have not been replaced by Wallabag; that's a different concept altogether – bookmarks are for reference, not for "read it later"). Please don't take this as a rant, though admittedly I'm not especially happy with the situation. I've all respect for the Nexcloud team and contributors, and am glad to have Nextcloud!

jancborchardt commented 6 years ago

@IzzySoft could you clarify please what use-case folders fulfil which tags do not? It’s strange because tags are very similar to folders, but seemingly better, as a bookmark can be in one folder. But it can have multiple tags.

Is it the nesting folders you want? If so, why does adding it to 2 tags not work?

And most importantly: We already have one method of categorizing, which is Tags – and we will not have 2 basically the same methods. Is it only the name "Tags" you take issue with?

cc @marcelklehr @blizzz

IzzySoft commented 6 years ago

Gladly I explain – in the hope I get it right:

First, with folders I can build hierarchies – where each parent groups things. For example, there're good reasons to have Gardening β†’ Vegetables in a different hierarchy than Cooking β†’ Vegetables when I'm looking for, say, tomatoes. While that can be "emulated" by tags (as e.g. the Firefox Addon "TagSieve" did in the past), there's a second thing to folders which tags can NOT achieve: Bijection. For tags, Gardening β†’ Vegetables is the same as Vegetables β†’ Gardening – which is not necessarily what the user wants.

Tags are very good for cross-references. And yes, I'm using both folders and tags. But in 95% of all cases, I go by folders. Maybe that's mainly because I was always used to that (so it's a "subjective need/preference") – but there are cases where that's a requirement.

Another example, building on the first, would be sharing subsets (I don't know if that's already possible with some tools, but I saw requests for it more than once). Let's say my profession is database administration. So I'd like to share a specific branch of my tree between my office and my home machine – without exposing anything outside that branch. That's were bijection ensures "integrity". I don't want to have some personal database projects appearing at the office computer – and I don't want some other details from work (which might be confidential) appear on my home machine. With a bijective tree (i.e. a folder structure), that's easy to handle. With tags, mistakes are easier to happen.

Hope I got it short enough to follow and straight enough to understand. Apologies for length and for anything I might have missed. If you want me to sum up what I consider "factual core details" on folders from the original issue, I gladly oblige.

jancborchardt commented 6 years ago

Ok, thanks, that explains it.

But then I think Bookmarks is probably not the right piece of software for you, or it will be quite a long time til it is. Having one method for ordering already, we won't really spend time on implementing a second because there's a ton of other things with higher priority.

IzzySoft commented 6 years ago

@jancborchardt so much I concluded from the original issue being open for 5+ years. In the beginning (i.e. 5 years ago) I had hope for that, meanwhile I already mostly gave up on it; a real alternative doesn't exist either. It already has been "quite a long time".

As I wrote earlier, I see that there are too few developers having to work on too many things (well, ask me about it – I'm in a similar situation, so I fully understand). Maybe one day someone finds time to implement it and, even better, to have bookmarks syncing with browsers – tags and hierarchy and all. Until then, can we at least keep this issue open as a reminder?

marcelklehr commented 6 years ago

@IzzySoft Thank you for the rational explanation. The discussion in the original issue felt quite emotional at some point.

For tags, Gardening β†’ Vegetables is the same as Vegetables β†’ Gardening – which is not necessarily what the user wants.

This captures the essence of difference between tags and folders, thanks for this succinct explanation. (To be specific, tagging systems simply provide a plain binary relation between labels/categories without any constraints, while folders provide left-unique binary relation between labels/categories.) Ever since this request for folders came up, I've been wracking my brain to find a situation where this constraint would be necessary. For instance, in the example you give, I don't see a semantic difference between the two permutations. Do you have any example that necessitates having a left-unique relation?

IzzySoft commented 6 years ago

First, due to the bidirectional resolution of the relations the "tree" can get pretty "wild" the deeper it is. For each aβ†’b folder there will be an additional bβ†’a tag. Now imagine a simple aβ†’bβ†’cβ†’d tree. On each level, with tags there will be 3 additional entries – which might become quite confusing. For me, it's nice to have such a structure in addition to folders – but not instead of. Everything else already has been said above.

DJCrashdummy commented 6 years ago

[...] in addition to folders – but not instead of.

:+1: that's the point! - all browsers with bookmarks i know, organize them in folders and some of them additionally support tags... (and i guess that's for a reason.)


its really a pity that for people who organize their bookmarks in folders and also want to access & edit them online, there is still no proper (privacy-friendly/self-hosted) solution. ...although Nextcloud+Bookmarks (with folders) and Floccus would be a perfect match. --> if i'm wrong, i would appreciate if anybody can correct me.

bernd-wechner commented 6 years ago

I would love to see this implemented so that it reflects basically the experience already available in web browsers. Noting that these also support ordering of items in folders ... which would I presume need another column in the oc_bookmarks table to store the order (something browsers have implicitly when they store bookmarks in ordered text files).

The issue of duplicates needs to be kept in mind as well. Floccus had some problems with dupes for a while. But basically in a browser you can have the same bookmark in different folders even with different titles, and they remain distinct entities managed separately. To with the URL of a bookmark is not guaranteed to be unique.

tessus commented 6 years ago

its really a pity that for people who organize their bookmarks in folders and also want to access & edit them online, there is still no proper (privacy-friendly/self-hosted) solution. ...although Nextcloud+Bookmarks (with folders) and Floccus would be a perfect match.

I wanted to open a feature request for folders, but found this issue instead. I couldn't agree more. All people who use a browser organize bookmarks in folders. That's not an exaggeration, but how browsers handle bookmarks. I would love to sync my folder structure to the nextcloud bookmarks app.

This might look off-topic, but explains why folders are important:

A while back I had an email correspondence with the dev of floccus. I'm not sure, if these issues have been resolved (and I haven't tested any newer version yet), but I'm wondering what would happen in the following situation: I sync my Firefox bookmarks with floccus to nextcloud. Then I use Chrome and floccus to sync my bookmarks to Chrome. So will I have the same folder structure on Chrome as I have on Firefox?

But even without the floccus sync issue, how am I supposed to find my bookmarks in the Bookmarks app? I mean I have way more than 1,000 bookmarks and I have them neatly organized in a folder structure. (e.g.: Programming -> Objective-C -> a -> b). How do I find the bookmarks in folder b? Am I supposed to tag over a thousand bookmarks manually?

bernd-wechner commented 6 years ago

As far as I can tell the bookmarks app needs a bit of work still for all these reasons. I can't even see a search box for my large collection of bookmarks. It's essentially useless at present and just, for me, a repository for floccus, and backup of my bookmarks.

Basically I am one of many people perhaps who are essentially trying to replace Xmarks and in the ideal have a really cool on-line bookmarking app that rivals pinterest and services like that too. It just needs some coding input and like all FOSS stuff, we're all invited to help I'm sure. One fay maybe, alas I have a hundred competing projects as well, as most of us do and why it's so hard to wed good FOSS projects with passionate core developers who will keep it alive. And as of 2018, on this app it looks like Marcel has been alone ... Our kudos and thanks to Marcel!

https://github.com/nextcloud/bookmarks/graphs/contributors

tessus commented 6 years ago

Can someone please answer my questions? (Maybe someone has used floccus on 2 different browsers before.)

I sync my Firefox bookmarks with floccus to nextcloud. Then I use Chrome and floccus to sync my bookmarks to Chrome. So will I have the same folder structure on Chrome as I have on Firefox?

Maybe even the dev of this app? I really would like to know also the answers to these questions:

But even without the floccus sync issue, how am I supposed to find my bookmarks in the Bookmarks app? I mean I have way more than 1,000 bookmarks and I have them neatly organized in a folder structure. (e.g.: Programming -> Objective-C -> a -> b). How do I find the bookmarks in folder b? Am I supposed to tag over a thousand bookmarks manually?

marcelklehr commented 6 years ago

Hey everyone, I'm currently both the main dev of the bookmarks app and the floccus extension. I've been kind of busy polishing the latest releases of both apps, so please excuse my delay in replying here. I do think this is a very important discussion.

I sync my Firefox bookmarks with floccus to nextcloud. Then I use Chrome and floccus to sync my bookmarks to Chrome. So will I have the same folder structure on Chrome as I have on Firefox?

You most certainly will, when using floccus v3, the only problem you might face is that Chrome doesn't have a Bookmarks Menu folder, so those bookmarks simply don't show up in chrome. But that's indeed kind of off-topic here . ;)

But even without the floccus sync issue, how am I supposed to find my bookmarks in the Bookmarks app? I mean I have way more than 1,000 bookmarks and I have them neatly organized in a folder structure. (e.g.: Programming -> Objective-C -> a -> b). How do I find the bookmarks in folder b? Am I supposed to tag over a thousand bookmarks manually?

Floccus is not entirely off-topic, though, as I've gathered from this discussion. The bookmarks app, when considered in isolation, is theoretically quite useful already for organizing bookmarks. At least in my opinion folders are not strictly necessary for organizing anything, if you have tags. However, it's a fact that a majority of people have their bookmarks in their browser, where they are tightly integrated into the user interface, which is a huge advantage over the user experience with nextcloud bookmarks (even when taking into account third-party clients that are available in browsers like FreedomMarks). Sadly, and probably for historic reasons, browsers (almost exclusively) use folders for organizing bookmarks. We will likely not to be able change that.

When working on floccus, I decided to try and change as little of the bookmarks app's architecture as possible. One obstacle here is how to represent a folder structure in a tagging system. My solution is to use tags that contain the folder paths. This maintains mutability in both directions: You can change a bookmark's tag in the app and be sure exactly where it's going to end up in the browser. Exploring bookmarks on the other hand is very much obscured by this mechanism, just like reading a program in assembler is not much joy, when it has been compiled from a higher level language, with more abstract concepts.

I've slowly come to realize that for the relevance of a bookmarks app, interoperability with the way browsers organize bookmarks is essential. The features that have made nextcloud relevant more than any others are syncing and sharing things. Be it files, events, contacts, notes, passwords -- noone, installs a nextcloud server just to keep their calendar in there instead of on their phone; nobody installs a nextcloud server because they want to keep their contacts in there instead of on their phone. The whole point for me appears to be being able to sync with a central, self-hosted server, not to have another "walled garden" application server that happens to be self-hosted. In this light, I think adding support for folders may be a necessary step, to keep or (perhaps) gain the relevance of the bookmarks app UI.

jancborchardt commented 6 years ago

@marcelklehr or rather, making what we call "tags" work the way that people are used to organizing their bookmarks from the browser – which is in the way of "folders".

Same as with Files, "folders" is the main way of organizing them for the majority of people. "tags" is merely an addition used by some – although they will complain loudly when it is not implemented. As we want to design Nextcloud for a large userbase, folders should then become the main method of organization.

We could keep tags, although it seems people wanted to simply have folders for their bookmarks to be the same on every platform – which is of course what we should do.

tessus commented 6 years ago

@marcelklehr thank you very much for the detailed explanation.

Please let me now, if you need any help with designing the folder capability. I can help with the design and PHP coding. I'm useless as a JS resource. Although since you are the main dev for both applications, I suspect you already have an idea how to implement folders. Thus the only thing you might need is time. ;-)

IzzySoft commented 6 years ago

@marcelklehr @jancborchardt Glad to see you "chime in", seeing folders as essential for bookmarks. It would be great having both, folders and tags available (though if I had to chose, it would be folders). Both have their advantages. In 90%+ of all cases I use folders to find a bookmark. But there are rare cases where I forgot where I placed a certain bookmark (when it fit multiple places), or I just want to see my bookmarks from a different perspective (to pick up my above example: "all about tomatoes, whether recipes or gardening") – which is when tags are really helpful.

jancborchardt commented 6 years ago

@IzzySoft ok, then it really seems from the issue we should have went with folders first, as that is a universal standard. :)

@marcelklehr let me know if you want to have a chat or call there to define the design. :)

IzzySoft commented 6 years ago

@jancborchardt well, can't change the past – but it's possible to fix what was missed :smile:

marcelklehr commented 6 years ago

@tessus awesome! I'll need all the help I can get :)

tessus commented 6 years ago

Awesome! This is great news!!! Yiiipppiiee! (As you can see I'm very pleased.)

srd424 commented 6 years ago

This may be a stupid question .. does the nextcloud folder implementation match floccus's?

marcelklehr commented 6 years ago

@tessus Heh, I'm also quite pleased to have this off my back. :sweat_smile:

You can test the new UI in the v0.14 beta release (feedback appreciated!). I'm currently working to make floccus compatible (there'll be a new account type for the new folder system while the old account type will still be available for legacy support).

IzzySoft commented 6 years ago

Hey cool! From the GIFs at the PR it looks like bookmarks now have … folders! :tada: Just for clarification: Does that mean that, when released, there'd be even a way to sync with the browser's bookmarks – say from Firefox/Waterfox, and back? Just being curious :innocent:

And a big thanks to all involved! :bowing_man:

tessus commented 6 years ago

I'm currently quite busy, but I will try to test the beta on the weekend. -- regards Helmut K. C. Tessarek

(sent from a mobile device)

tessus commented 5 years ago

@marcelklehr ok, I finally have time to check out the app, but it seems it is not available for nc 13. Is there any code used that is not available in nc13?

marcelklehr commented 5 years ago

@tessus Yes. Only nextcloud v14 is supported.