nextcloud / notes

✎ Distraction-free notes and writing
https://apps.nextcloud.com/apps/notes
GNU Affero General Public License v3.0
608 stars 134 forks source link

Categorization [$125 awarded] #8

Closed Henni closed 5 years ago

Henni commented 7 years ago

continued discussion regarding owncloud/notes#2

First steps in #6 Will be implemented with subdirectories.

--- The **[$125 bounty](https://www.bountysource.com/issues/38650999-categorization?utm_campaign=plugin&utm_content=tracker%2F46751022&utm_medium=issues&utm_source=github)** on this issue has been claimed at [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F46751022&utm_medium=issues&utm_source=github).
korelstar commented 7 years ago

The old discussion has shown, that such a feature is very popular. However, there were disagreement how or even what to realize. Therefore, I give an overview, of what was discussed:

Categories (or "groups" or "folders")

Tags

korelstar commented 7 years ago

Personally, I'm not sure, what's the best way. For me, the categories approach would be sufficient. But I understand people, who argue for the tags approach. However, the tags will definitely make the UI (a little bit) more complex than using categories, and I'm perceiving that simplicity was an important design goal of this app.

I would like to cite @dasmaetthes from the old discussion:

Since 2013 you discuss if sub-folders or tags. Like this you will never go on and other's can't help with implementation. Just decide what will be the simplest one to implement and do it!

👍

Henni commented 7 years ago

@korelstar thanks for summing up the old discussion thread. Let's go for subdirectories for now. I'm already working on it and I believe that this should suffice for most of the use cases.

spoorun commented 7 years ago

It's a shame, because the benefit of tags are they represent a more modern approach to managing date (folders only existed because tagging was not possible with paper documents!) Also the nextcloud tagging framework and user interface could be used to give a more consistent approach. Users can more easily use tags across apps, and have the same set of tags without needing a different set of folders for each app. Other apps use tagging categories more than folder categories. It is appreciated that the code is more complex, but the most functional and streamline way is tagging. Subfolders and indents also look less aesthetically pleasing it could be argued.

korelstar commented 7 years ago

Another open question is how the categories should be integrated in the user interface. @Henni, do you have any concrete ideas how to integrate the categories into the existing sidebar (as you wrote in https://github.com/nextcloud/notes/pull/6#issuecomment-255964422)? My approach would orient on the contacts app design (i.e. the sidebar is a list of categories, the main window a list of notes and the editing area are can be a big overlay or take the right half of the viewport).

Henni commented 7 years ago

I'd like to keep it out of the way. Adding an additional column just for categories would add to much noise in my opinion. I have discussed this with @jancborchardt and an idea we came up with was to keep the structure as it is, but show the directories in small text below each note. Let's see, maybe I'll come around to create a mock-up for this or do you wan't to create a sketch, @jancborchardt ?

korelstar commented 7 years ago

Okay, sounds interesting. But an important feature for people with many notes is the possibility to easily filter notes by category. Please consider that, too!

stefan-niedermann commented 7 years ago

May i propose to get some inspiration from the Nextcloud News App?

Nextcloud News Screenshot

They have some kind of folder management, too. Of course the icons for the feeds are not needed, but some things like the "Starred" view could be adopted to provide a better cross-app-UX since the News-App seems to be very popular at Nextcloud.

jancborchardt commented 7 years ago

@stefan-niedermann yes, we considered that of course. :) The big problem with the folder tree is that the simplicity of »most recently edited files are up top« falls away.

And favorites are always sorted at the top anyway, just like @ryanwr did for the server https://github.com/nextcloud/server/pull/1860 – this is the best seamless integration of favorites.

spoorun commented 7 years ago

1) Having a collapsible category menu to the left would be ideal. Users who categorise items generally want to see a list of categories to click on for search, or to drag items to. They don't want to, or can't, use their memories, that defeats the point of the computer :s Also, without categories in the left-hand column, moving notes around becomes an unnecessary ordeal - requiring far more steps than a simple drag-n-drop (of one or more selected notes).

2) It's hard to see why people think fixed subdirectory categories are better than tag categories?

From a user perspective, tags are superior, and can use an almost identical interface, but just have more flexibility for those who need it. Also, other apps all use (or are planning to use) tags not subdirectories (tasks, contacts, events). It's unwise to break the Users' expected interface.

For example, why does a user need to decide, and remember, whether a finance note for their park project is tagged under park or finance? That's seriously old skool; a throwback from when it was essential with paper files.

benyanke commented 7 years ago

I would propose a compromise: singular categories (which can be translated to directories in the NextCloud filesystem), and then tags on top fo that, which can add additional categorization. Many pieces of software uses this structure, such as the NC Todo list, and I'd like to propose it for use here in the future.

In any case, no matter what method is chosen, I'll be very happy, as it will be usable for my school and meeting note-taking purposes. As is, it's difficult to use, sadly....

fmikker commented 7 years ago

Using markdown as the storage format would add tag functionality. See: https://github.com/nextcloud/notes/issues/24

korelstar commented 7 years ago

Using markdown as the storage format would add tag functionality. See: #24

@fmikker I don't see any connection between the file extension and tagging functionality. Can you please explain this in more detail?

fmikker commented 7 years ago

@korelstar Sorry, I wasn't thinking quite clearly, I was thinking of the tagging functionality in static HTML generators such as jekyll and hugo. Disregard my previous statement.

Anrock commented 7 years ago

Couldn't tags be emulated, using folders approach, by symlinks to note file? I.e. if note is tagged with "foo" and "bar", there is symlinks to this note in "foo" and "bar" folder, while real note file lies in root Notes folder.

MoBe80 commented 7 years ago

I would like to add +1 for a tag based approach. I see two possibilitys for the implementation...

  1. Use the NextCloud Tagging Framework.
  2. or if we like to keep it "filebased", we can store the tags in the filename like tagspaces. They use a syntax like filename [tag1 tag2 tag2].md. The benefit of this approach is we will get a (offline) desktop client.
jibweb commented 7 years ago

I'm quickly joining the discussion between tags and folders .... it feels more logical to go for tags now that they are part of the framework. But then, it would be nice to offer an option to export them as well ! Also, it could allow some auto-generated tags (like notes edited in the last 10 days or whatever else, which could be nice)

My main comment would be on the UI. How about a tag / folder selector right next to the "+" button ? By default the selector in on "All Notes", you can choose your subfolder / tag to filter the notes, and it keeps the UI pretty simple, does not get in the way of the classification by last edit or whether it's starred or not ... Also, it works for both subfolders and tags, so if the devs change their mind about it down the road, the UI can stay !

Maxnor commented 7 years ago

Regardless if you go with tags or folders, one of both is really needed for a better overview. So +1 for the topic :)

benyanke commented 7 years ago

Maxnor

Yes! It's almost unusable as is, as sad as that is to say.

enoch85 commented 7 years ago

When will this be implemented?

jancborchardt commented 7 years ago

Folks, sorry but your comments don't really help. Everyone works on this in their free time. Any contribution, be it time or in the form of a monetary bounty through https://bountysource.org is very appreciated.

derschneewolf commented 6 years ago

Hi everybody, I'm really curious to get a tag-feature working. Currently (neither in the web interface, nor in the Android App I can see the "category") I would even try to implement it. I've seen that you can tag already files in nextcloud, and I strongly assume you can somehow read this information and write it back to the files. They only question would then be: how to display it. I made a short mockup on that (quite similar to the file-tag-feature): mockup_tags_v01 What do you think about that?

Any big concerns or issues with that?

As step one (and to get the layout working) I could even start to display the current "category" (= folder) as a tag.

Is it okay if I do that? Or is anybody else currently working on that?

=== technical analysis (not sure where to store this, I will probably fork it to make pull requests to the original) https://github.com/nextcloud/server/blob/master/apps/files/js/tagsplugin.js seems the position where the tag handling occurs parts of that need to be included into https://github.com/nextcloud/notes/blob/master/db/note.php I suppose; or if I see that correctly, the favorite-function is already working with the tags?

MoBe80 commented 6 years ago

Looks good. Just as I would expect it.

korelstar commented 6 years ago

@derschneewolf Great that you would like to contribute to this issue!

Some words about the current state of implementation:

You see, there is already much work done using the "sub-directory as category" approach. Therefore, I suggest to go on this way further and don't implement tags, since two orthogonal approaches would be very confusing for users.

However, I like your mockup and maybe this approach can be used for displaying and changing the category of a note. I've thought on how to display categories in the navigation for a long time and made a mockup, too:

notes

The idea is to show the first-level categories, only (like in the Android app). The navigation consists of two parts:

Instead of splitting the navigation into an upper and lower part, it's also possible to introduce a second navigation.

However, I've not implemented anything on the GUI, only the backend (API, see above) is there. The mockup is just an idea which is oriented on how to work with a big bunch of notes.

derschneewolf commented 6 years ago

Thank you @korelstar for your long message and the very good overview. Indeed I was on an old version of the Notes App. Just bought it in the App Store and now I see the categories there. Okay I agree, having tags AND a category hierarchy might be to much. Maybe we can switch the tags on later via a user setting or something like that if a user wants to have them.

I like your mockup, so the first part expands automatically somehow when you want to change the category? Okay, then you don't have to scroll so much for the actual notes. I'll set up my development environment and give it a try :)

benyanke commented 6 years ago

I think folders is a critical thing to really make this usable - I just can't use this app for my use case without something like that.

But realistically, I could see tags and folders implemented as two distinct features. Folders should be much easier, as it just changes the structure in the filesystem, but tags would require the database to provide the one-to-many relationship.

TLDR: If you're looking for suggestions, I suggest starting with just folders, without worrying about tags right away.

jancborchardt commented 6 years ago

@korelstar @derschneewolf we should start with only one system of organization. Either folders/categories or tags. :)

If we go with tags (very nice mockup @derschneewolf). I'm not sure about the sidebar change since it will vastly complicate the interface away from the simple notes list we have now.

We could for example, when a note is open, either automatically show notes with the same tag up top in the navigation, or do that on click of the tag.

If we do go with the navigation change to entries and not notes, I wouldn't make it folder-style with notes in there, but then directly go with how Mail and Contacts do it with the second level navigation. That is a really big change from the simplicity too though. :/ cc @Henni

Either way I'd say we need to do this step by step and not all at once. :) The tagging is a fairly non-invasive first enhancement it seems, if we make sure it's subdued when you don't use it at all.

korelstar commented 6 years ago

I agree with @jancborchardt and I also think it's a good idea to start with displaying and providing an interface for changing the category of the current note (e.g. like in the mockup from @derschneewolf).

However, to be clear:

Either folders/categories or tags.

Since there are already many things in the notes app (especially in the public API) that uses the "folder as category" concept, this means that we go on with categories and do not realize tags!

jancborchardt commented 6 years ago

@korelstar so that means that a note can only be in one folder/category. Then instead of a tag list like in the mockup, it should be a single dropdown with the categories. The rest of the style can stay similar like @derschneewolf mocked up.

benyanke commented 6 years ago

Also should mention: it might be nice to have a 'magic' folder name called 'archived.'

Personally, I'm using this to replace google keep, and I often archive notes I don't need in view, but want saved for archival or future search purposes.

jancborchardt commented 6 years ago

@benyanke maybe it's best to integrate that with the "Deleted files" app. And show it on the bottom of the sidebar just like in files. cc @schiessle, you wrote that component, right?

benyanke commented 6 years ago

I thought that at first, but on second thought, I'm not sure it really makes sense. 'Archived' has an entirely different connotation than 'deleted'/'trashed'.

For example, you might auto-empty a trashcan, but you'd absolutely never want to empty an archive.

(I've also edited my above comment to be more clear)

weipah commented 6 years ago

I would like to see a simple tagging & filtering feature like in the mockup from @derschneewolf (https://github.com/nextcloud/notes/issues/8#issuecomment-342983278)

Threw in a bounty as well.

benyanke commented 6 years ago

Count me in for $10 as well, this would be a critical feature for me being able to move away from Google Keep.

weipah commented 6 years ago

@benyanke you can find it here. You can register and be a "backer" on the right, iirc.

benyanke commented 6 years ago

Thanks, just figured it out and edited my comment above. Checking out now on the bounty site.

godfuture commented 6 years ago

I would pay to see both coming! Folders are good for sharing. Tags are good accessibility.

benyanke commented 6 years ago

Join the party @godfuture !

https://www.bountysource.com/issues/38650999-categorization?utm_campaign=plugin&utm_content=tracker%2F46751022&utm_medium=issues&utm_source=github

dajabe commented 6 years ago

Came looking for a tagging feature, I appreciate categories are easier to implement and more backwards compatible but from a usability perspective tagging that then allows notes to appear in multiple categories is far more desirable. One approach will only get some of your audience and the other approach will get both camps as you can use tags like folders but can't use folders like tags. Adding myself a reminder to add to the bounty for this feature.

Edit: Forgot to mention that I would prefer to be able to tag within the file itself so I could create and tag notes via any text editor using markdown. The first line of the file could be read for tagging For example: !#Journal#Ideas#Money

This would then create 3 tags for the file.

Not sure how helpful this idea is but it would make me happy :)

korelstar commented 6 years ago

@derschneewolf Did you find some time to work in this?

korelstar commented 6 years ago

FYI: I started with the implementation of the navigation and will provide a PR, soon.

korelstar commented 6 years ago

Please have a look at #210: There you find the implementation for integrating categories into the navigation. Please give feedback to this over there!

Larsene commented 6 years ago

i can't contribute by my time or my knowledge to this projet, so i've joined the bountysource as i think this is a really needed functionality.

Thanks for your Notes app :-)

korelstar commented 5 years ago

We're done! I just created a new release v2.5.0, which contains a new front-end for organizing notes in categories.

Just for your reference: I've implemented this in these PRs: #228, #210, #265.