feat: show modal when dragging recurrences
Fix #3281 Fix #4225
Show a modal when dragging a recurrence to let the user decide whether to update this or all future instances.
TODO
- [x] Migrate to the new dialog creation code from within JS
- [x] Add a cancel button
- [ ] Fix JavaScript unit tests
Codecov Report
Merging #3356 (b72e6af) into main (90c7a33) will decrease coverage by
0.14%. The diff coverage is28.57%.
@@ Coverage Diff @@
## main #3356 +/- ##
============================================
- Coverage 29.43% 29.28% -0.15%
Complexity 322 322
============================================
Files 221 223 +2
Lines 7576 7617 +41
Branches 1001 1006 +5
============================================
+ Hits 2230 2231 +1
- Misses 5346 5386 +40
| Flag | Coverage Δ | |
|---|---|---|
| javascript | 20.69% <28.57%> (-0.13%) |
:arrow_down: |
| php | 67.35% <ø> (ø) |
Flags with carried forward coverage won't be shown. Click here to find out more.
| Impacted Files | Coverage Δ | |
|---|---|---|
| src/components/DragRecurrenceModal.vue | 0.00% <0.00%> (ø) |
|
| src/store/calendarObjectInstance.js | 0.00% <0.00%> (ø) |
|
| src/store/dragRecurrenceModal.js | 0.00% <0.00%> (ø) |
|
| src/store/index.js | 0.00% <ø> (ø) |
|
| src/views/Calendar.vue | 0.00% <0.00%> (ø) |
|
| src/fullcalendar/interaction/eventDrop.js | 100.00% <100.00%> (ø) |
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact),ø = not affected,? = missing dataPowered by Codecov. Last update 90c7a33...b72e6af. Read the comment docs.
What im doing wrong? I cannot update all the future events
https://user-images.githubusercontent.com/12728974/130819258-ae82d4e6-39c5-4eb4-951d-907819156887.mp4
What im doing wrong? I cannot update all the future events Kazam_screencast_00006.mp4
Very strange. I can reproduce this bug on master too. Using "update this and all future" won't actually move the event.
I rebased, fixed the remaining issues and improved the affected tests. Please test it again.
/backport to stable3.0
This is still buggy for me (or is that a bug even?) If I drag a recurrence from the middle, it's cutting off elements. I presume it is because of the end date. If it is intentional, I find that very confusing as I would expect all recurrences to just be moved further down the calendar:

@miaulalala could you post the ics before/after?
@miaulalala could you post the ics before/after?
Sure:
First part:
BEGIN:VCALENDAR
PRODID:-//IDN nextcloud.com//Calendar app 3.1.0-alpha.2//EN
CALSCALE:GREGORIAN
VERSION:2.0
BEGIN:VEVENT
CREATED:20220216T141343Z
DTSTAMP:20220216T141511Z
LAST-MODIFIED:20220216T141511Z
SEQUENCE:5
UID:acebc626-ec53-4858-8c1a-6a52e9f34470
DTSTART;VALUE=DATE:20220217
DTEND;VALUE=DATE:20220218
STATUS:CONFIRMED
RRULE:FREQ=DAILY;UNTIL=20220220
RELATED-TO;RELTYPE=SIBLING:8db3f8f2-cd9b-4734-9a29-3cc23a963cc0
END:VEVENT
END:VCALENDAR
Second Part
BEGIN:VCALENDAR
PRODID:-//IDN nextcloud.com//Calendar app 3.1.0-alpha.2//EN
CALSCALE:GREGORIAN
VERSION:2.0
BEGIN:VEVENT
CREATED:20220216T141511Z
DTSTAMP:20220216T141511Z
LAST-MODIFIED:20220216T141511Z
SEQUENCE:0
UID:8db3f8f2-cd9b-4734-9a29-3cc23a963cc0
DTSTART;VALUE=DATE:20220223
DTEND;VALUE=DATE:20220224
STATUS:CONFIRMED
RRULE:FREQ=DAILY;UNTIL=20220223T230000Z
RELATED-TO;RELTYPE=SIBLING:acebc626-ec53-4858-8c1a-6a52e9f34470
END:VEVENT
END:VCALENDAR
ALso having this issue:

After a window reload the last recurrence has disappeared, presumably from the UNTIL in the RRULE
Tested. Works! Only one minor visual glitch.
- Drag an instance after the first instance
- Click the X in the dialog
- A duplicate event shows up (but is not saved)