cryptee / web-client

Cryptee's web client source code for all platforms.
https://crypt.ee
Other
444 stars 22 forks source link

[Change] [Feature] Automatically sort checklists #100

Closed domanteli0 closed 3 years ago

domanteli0 commented 3 years ago

The problem:

A huge anoyance, at least for me, is then I have a checklist with checked and unchecked items mixed together. This makes a confusing list which is harded to glance at and figure out the completeness of the checklist. This is expecially true for long lists of things that are checked randomly (watched movies/movies to watch, places to visit/visited places, etc.).

The solution:

Automatically move checked items to the bottom of unchecked items.

Let's say we have a list like this:

Now if, for example, Task 2 is checked it should be automatically moved above Task 4 but bellow Task 3, like this:

The opposite should also be true. When An element is unchecked it should be moved up. For example if Task 4 is unchecked it should appear bellow Task 3 but above Task 2, like this:

Basically, that I proposed is automatic sorting of checked and unchecked elements in a list. This way checked elements stay out of the way and do not clutter the list.

paveikslas This is in my opinion much better that this: paveikslas

johnozbay commented 3 years ago

Hey there! ✌🏻

Thanks for voicing this out!

While this did come up a bunch times in the past, this is actually terrible UX practice, and even here on Github, you can see that's not how Github's checklists work, and checklists aren't grouped together :

This is because it's not a good idea to assume your tasks are linear or not. While "movies to watch" is a non-linear activity, there are many more task activities that are linear in a not-so-easy to group fashion. i.e. :

So in this example above, according to what you're suggesting :

1) Once completed, what should happen to "Call Jane to get her tax ID by Wednesday"? Should it go to the bottom of "Register Jane Employment"? If so, why did it jump out of order, perhaps the date information is important? i.e. Wednesday

2) What happens if I uncheck "Use tax ID to register employment"? Should it go back to the top of the list?

3) What should happen if I check "Register Jane Employment" without completing its subtasks? Should the whole of "Register Jane Employment" group jump below "Register Alex Employment" group? What if one of them is more time sensitive?

This gets infinitely more complicated the more you dive into things like tasks some of which you can do in parallel, and some of which you have to do in series. And due to this, none of the major note taking / task management apps group tasks / take this decision on your behalf.

Here's Apple Notes:
image

Here's Evernote: image

Here's Google Keep: image

I think that in any app where you can have text and checkboxes side by side, and checkboxes can be nested / go multiple-levels deep, this is the expected and correct UX behavior to prevent all sorts of confusion.

So I don't think we'll be implementing this, because I think it will add an unnecessarily high number of edge cases, confusion, and most importantly cross-compatibility issues between many apps our uses can move from. Incl. markdown and html itself, in which the default behavior isn't that the content jumps when it's checked off, but it stays still. So importing content, only to find it in a different order in Cryptee would also cause lots of confusion.

Hoping this makes sense and I could express why I think this is a bad idea from multiple different perspectives. I'm open to hear different thoughts on this, but I think following the rest of the industry is the logical thing to do here to prevent confusion and cross-compatibility issues.

domanteli0 commented 3 years ago

Hi, while I completely agree with you, I still think automatic sorting could be a document specific preference (off by default) next to edit locking and spell checker.

To add, that is a very outdated screenshot of Google Keep. I used to use Google Keep a 2-3 years ago and I clearly remember it having automatically sorted checklists by default (nowadays you can disable it in the setting, don't know if this was an option back then). I was actually going to use Google Keep to illustrate my point but Keep sorts things differently so I've decided against that.
Peek 2021-02-24 20-10

johnozbay commented 3 years ago

While I do agree with this in the context of a todo-list app, it doesn't make sense in the context of a rich text editor, since it still doesn't address what happens in the nested checklist scenario I mentioned above, especially in the context of a test editor. To add to my point here's another example.


Some text here


What should happen if I check only "Task 1"?

(Should it go under Task 2 and get grouped together just because they're neighbors?) (Or should it go at the very bottom of the document since there are more tasks in the document?)

What should happen if I check only "Task 1.1"?

(Should it go under Task 1.2 and get grouped together because they're neighbors / children of Task 1?) (Should it go under 2 and get grouped together because its parents Task 1 & 2 are neighbors?) (Or should it go at the very bottom of the document since there are more tasks in the document?)

What should happen if I check "Task 2"?

( Should it stay in place checked, since it is neighbors with Task 1? ) ( Or should it go at the very bottom of the document since there are more tasks in the document? )

I can go on and on about edge cases like this in the context of a rich text editor, this will complicate the logic unnecessarily, and once again it will cause all sorts of unexpected behavior with Markdown & HTML imports and exports.