Task list item copies are linked together #2091

Open
opened 2024-01-30 19:03:18 +00:00 by polgarc · 8 comments

Description

If I copy-paste a task item, they become kind of linked together: if I click on one of them, all the copies are ticked too.
This doesn't seem to be 100% consistent though: sometime not all of them get ticked, overall it's very confusing experience.

After some more testing it seems that the issue is not related to the copy-paste, rather the items having the same name. If you simply type the same item names instead of copy-paste, the issue occurs.

Steps to reproduce:

  1. Create a task
  2. Edit the description, add a 'Task list' item with a name
  3. Select and copy the row (ctrl+c)
  4. Paste it a few times below (ctrl+v)
  5. Save the description
  6. Click on the first item
  7. All of them gets ticked (sometimes only after a refresh).

Vikunja Frontend Version

0.22.1+10-0484923b8a

Vikunja API Version

v0.22.1+2-78353d1ffe

Browser and version

Firefox 122.0 (Linux)

Can you reproduce the bug on the Vikunja demo site?

Yes

Screenshots

item2 was copied a few times:

image

After clicking on the first item2:

image

After clicking on the first item2 again, they look like on the first screen shot.

### Description If I copy-paste a task item, they become kind of linked together: if I click on one of them, all the copies are ticked too. This doesn't seem to be 100% consistent though: sometime not all of them get ticked, overall it's very confusing experience. After some more testing it seems that the issue is not related to the copy-paste, rather the items having the same name. If you simply type the same item names instead of copy-paste, the issue occurs. Steps to reproduce: 1. Create a task 2. Edit the description, add a 'Task list' item with a name 3. Select and copy the row (ctrl+c) 4. Paste it a few times below (ctrl+v) 5. Save the description 6. Click on the first item 7. All of them gets ticked (sometimes only after a refresh). ### Vikunja Frontend Version 0.22.1+10-0484923b8a ### Vikunja API Version v0.22.1+2-78353d1ffe ### Browser and version Firefox 122.0 (Linux) ### Can you reproduce the bug on the Vikunja demo site? Yes ### Screenshots `item2` was copied a few times: ![image](/attachments/88c02a6a-c9ab-4815-ad98-387e7b89d94e) After clicking on the first `item2`: ![image](/attachments/d95fa613-bbae-4582-9839-bfa4ce94d804) After clicking on the first `item2` again, they look like on the first screen shot.
polgarc added the
kind/bug
label 2024-01-30 19:03:18 +00:00
Owner

Well that should not happen. I'll take a look.

Well that should not happen. I'll take a look.
Owner

Fixed in 3969f6ae66 - please check with the next unstable build (ready in ~45 min) or on try.

Fixed in https://kolaente.dev/vikunja/vikunja/commit/3969f6ae663ef30896454eb228dc478cf9cf14a3 - please check with the next unstable build (ready in ~45 min) or on try.
Author

Thank you!
However I checked the demo instance (v0.23.0+46-827c43fe12) , and it seems all items have the same data-id, and the issue still persists. Tried with Firefox 122.0 and Chromium 121.0.6167.160 on Linux.

image

Thank you! However I checked the demo instance (`v0.23.0+46-827c43fe12`) , and it seems all items have the same `data-id`, and the issue still persists. Tried with Firefox 122.0 and Chromium 121.0.6167.160 on Linux. ![image](/attachments/ab327dac-dbec-4302-8b62-e1b98d8f6b27)
239 KiB
polgarc reopened this issue 2024-02-14 16:00:16 +00:00
Owner

Now fixed in 32edef2d38.

Now fixed in 32edef2d383292531e821b3a471ba30504ac3ea9.
Author

I'm sorry but this still doesn't work, tried with v0.23.0+49-32edef2d38. Also checked out and ran main locally, same: all items have the same id.
I think createRandomID() is only evaluated once, and not for each TaskItem. According to this issue, this approach won't even work.

BTW thanks for your time and effort - really appreciate it.

I'm sorry but this still doesn't work, tried with `v0.23.0+49-32edef2d38`. Also checked out and ran `main` locally, same: all items have the same id. I think [createRandomID()](https://kolaente.dev/vikunja/vikunja/src/branch/main/frontend/src/components/input/editor/TipTap.vue#L397) is only evaluated once, and not for each `TaskItem`. According to [this issue](https://github.com/ueberdosis/tiptap/issues/2661), this approach won't even work. BTW thanks for your time and effort - really appreciate it.
polgarc reopened this issue 2024-02-17 21:42:44 +00:00
Owner

Looks like this is a far deeper problem rooted in tiptap. I've tried the last few hours to make this work without actually getting to it. The root cause is from the comparison of nodes. If we take the text only, that will mark items as duplicate when they have the same text (as described here originally).
And what confuses me the most is how it sometimes is able to assign a random id to each item, just not consistently (I've tested this locally before closing this issue and it seemed to work fine).

Seems like their unique ID extension is the way out here, but that's probably not an option for an open-source project. I've emailed them about this, let's see what we get back.

Looks like this is a far deeper problem rooted in tiptap. I've tried the last few hours to make this work without actually getting to it. The root cause is from the comparison of nodes. If we take the text only, that will mark items as duplicate when they have the same text (as described here originally). And what confuses me the most is how it sometimes _is_ able to assign a random id to each item, just not consistently (I've tested this locally before closing this issue and it seemed to work fine). Seems like [their unique ID](https://tiptap.dev/docs/editor/api/extensions/unique-id) extension is the way out here, but that's probably not an option for an open-source project. I've emailed them about this, let's see what we get back.
Owner

I've reverted the changes for now so that it works as long as the task items have different text. Moved the id changes so far to a new branch: https://kolaente.dev/vikunja/vikunja/compare/main...fix/tiptap-task-list

I've reverted the changes for now so that it works as long as the task items have different text. Moved the id changes so far to a new branch: https://kolaente.dev/vikunja/vikunja/compare/main...fix/tiptap-task-list
Owner
Also mentioned here: https://community.vikunja.io/t/task-list-in-description-glitchy/2087/3
Sign in to join this conversation.
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: vikunja/vikunja#2091
No description provided.