-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reordering items
#145
Comments
@iteles did you see: dwyl/app#283 ? 💭 |
We're going to |
Just putting in another note on this as it's a feature I miss Every day when I'm searching through my list for a task I need to do next and prevents me from using the application properly (i.e. downloading my whole life onto it) because I know if I do that I won't be able to find anything again 😬 |
@iteles I agree that re-ordering is a massively important feature. 👌 For the record: At present you can "find things" by doing command+F. I have hundreds of because I am obsessed with solving this problem. The only excuse for not using the Again, I_agree_ that this feature is important. 1️⃣ 🔥 |
It is precisely because I AM dogfooding the app that I opened this issue and am noting that I still feel the pain. For a user like me, not having this feature renders the app unusable. If I have more than 30 items in my list I am completely overwhelmed and spend more time looking for what to do next than actually getting anything done. I basically only add things into the app that I have to get done in the immediate future rather than actually using it as intended. I will try to sketch this asap. |
Cool. looking forward to seeing the sketch. ✍️ |
A couple of considerations here: Drag & dropThis is the most familiar UX and by far the most desirable. The problem with designing this particular functionality as someone who does not also know how to code it is that I run the risk of making it overly complex for the MVP. There are certain parts that I know are not difficult, but the actual dragging and showing the user where the item is about to be dropped before it is dropped are where I think the highest potential to complicate occur. Would it make sense for me to suggest the UX up until this point (how a user knows something is draggable, icons and interaction until the item is 'picked up') and then leave it to you guys to tell me what is possible quickly/intelligently in terms of how the user is shown where the item is being moved to (things like other items moving gracefully down, using just a dark line to show between which two items it'll be, whether the item you're moving 'pops' and can physically/visually be dragged) in terms of the code? AccessibilityOf course the WCAG guidelines make it clear that drag n drop is not particularly accessible: https://www.w3.org/WAI/WCAG22/Understanding/dragging-movements @nelsonic As the lead Everything on this project, I'll defer to your knowledge on whether we have to progressively enhance this from the beginning or whether we can build in drag n drop and later retrofit the keyboard-focused solution. |
@iteles as the person trying to build the bridge from the other end I would very much appreciate that you take |
Quite a lot there to digest. ⏳ |
It's complex to explain but simple when seen by the person using the app. Let's 👌🏻 |
Re-ordering The important column in the In the simplest scenario: the From perspective of getting this data from the [
{ "item_id": 456, "list_id": 1, "index": 1},
{ "item_id": 123, "list_id": 1, "index": 2},
{ "item_id": 124, "list_id": 1, "index": 3},
{ "item_id": 862, "list_id": 1, "index": 4},
{ "item_id": 345, "list_id": 1, "index": 5}
] This is enough for us to make the update in the backend and broadcast it to any other connected clients/devices. @LuchoTurtle please let me know if this answers your question from standup. 🙏 |
Thank you for replying but this does not answer my question. I already understand that we'll have an I understand that the index must be updated but your response doesn't encompass scenarios where an item is "drag n dropped" from index 0 to index 9, for example and how we are changing that in the database. But it doesn't need to explain it, given that we've already discussed this prior in dwyl/learn-alpine.js#4 (comment). My question was regarding how lists were even relevant to the problem of re-ordering that I was trying to do in Phoenix for the But I understand that It makes more sense to redirect these efforts to Flutter, as you've stated. However, if we want to do so, we can't because we still need to incorporate items and API connection to https://github.com/dwyl/app. On posteriority, since we don't have the concept of lists introduced in our API, we would tackle that next. |
Without This is the simplest (naive) way of handling re-ordering. I've not seen this done properly in any examples/tutorials before so it needs some thought to do it as simple as possible. |
|
It does, thank you. Cost of queriesBy having the If anything, you'll have to use Check http://sqlfiddle.com/#!18/51660/15
I've loaded the The query you actually want is something like this: select item_id, list_id, position, inserted_at
from (
select item_id, list_id, position,
ROW_NUMBER() OVER(PARTITION BY item_id ORDER BY inserted_at ASC) AS rn,
inserted_at
from list_items
) i
where rn = 1
order by position asc Which yields the wanted result. As you can see, No primary keysBy having everything in the same table as "append-only", you can't reap the benefits of having primary keys. In fact, not having primary keys is defo not recommended and should not be something we undertake lightly. NormalizationWould normalization make sense here? If we had the history of the changes in a different table and have The trade-off would probably be the duration of the |
Reordering working with mvp-reordering-with-cids.mov |
Nice stuff!!! |
This looks great @nelsonic, I'm excited for it! |
Documented in: https://dwyl.github.io/book/mvp/18-reordering.html |
@iteles please test: https://mvp.fly.dev/ 🙏 |
This is slightly different to the OP from an aesthetic and UX perspective but has been working well for the last couple of weeks and makes the app so much more usable 🙌 As my lists grow (they were wiped temporarily due to #417) I'm sure I will be able to provide more feedback for the next iteration 👍 |
Really nice guys that you managed to add reordering :D The solution is growing! |
@iteles as always, you have the power to make any changes you would like to see. 👩💻👌 |
As a person with a lot of different tasks,
I would like a way of reordering the list of timers
So that I can ensure my most important tasks are captured at the top so that I don't lose any important/urgent items.
I think this is the highest priority next feature to include in the MVP.
I've been using the MVP for a few days now and find myself reading the whole list of tasks before starting the next one which is unsustainable (and means I barely put any tasks into it).
The annoying thing about this one is that the UI is not straightforward.
The text was updated successfully, but these errors were encountered: