Page MenuHomePhabricator

Fix inconsistent behavior in calendar recurrence sequence, add sequence nav buttons
AbandonedPublic

Authored by 20after4 on Jun 25 2016, 9:14 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Apr 16, 2:21 AM
Unknown Object (File)
Fri, Apr 5, 2:35 PM
Unknown Object (File)
Tue, Apr 2, 7:00 PM
Unknown Object (File)
Mon, Apr 1, 3:22 AM
Unknown Object (File)
Sat, Mar 23, 11:34 PM
Unknown Object (File)
Thu, Mar 21, 8:50 PM
Unknown Object (File)
Feb 29 2024, 10:27 AM
Unknown Object (File)
Feb 20 2024, 10:22 PM

Details

Reviewers
epriestley
lpriestley
Group Reviewers
Blessed Reviewers
Summary

The Problem

Recurrence exceptions have weird behavior where a 'recurrence exception' can be treated
as the root of a recurrence sequence, by appending, for example, /2 to the uri.

Concrete example

https://phabricator.wikimedia.org/E196 is recurrence 2 of https://phabricator.wikimedia.org/E179
but if you visit https://phabricator.wikimedia.org/E196/3 you get a ghost event that appears to
be a recurrence of E196.

I think more consistent behavior would be to treat E196/3 as recurrence
3 of E179 which makes it possible to easily navigate through a series even when some of the
events are ghosts and others are recurrence exceptions, etc.

How I've addressed the problem

  1. For recurring sequences, base the sequence start date on the original event instead of the "recurrence exception" instance.
  2. Added simple navigation buttons for next/previous recurrence.
Test Plan
  • View a recurring event,
  • Navigate through a few recurrences in the sequence
  • edit a ghost recurrence, see that it gets properly turned into a recurrence exception
  • navigate past a recurrence exception, see that it's possible to navigate through the full series without breaking.

Change-Id: I4b8e1b9dfa92ab0ad0bcbbd844f4b21f965cf924

Diff Detail

Repository
rP Phabricator
Branch
master
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 12800
Build 16300: Run Core Tests
Build 16299: arc lint + arc unit

Event Timeline

20after4 retitled this revision from to Fix inconsistent behavior in calendar recurrence sequence, sequence add nav buttons.
20after4 updated this object.
20after4 edited the test plan for this revision. (Show Details)
20after4 added reviewers: epriestley, lpriestley.
20after4 added a subscriber: qgil.
20after4 retitled this revision from Fix inconsistent behavior in calendar recurrence sequence, sequence add nav buttons to Fix inconsistent behavior in calendar recurrence sequence, add sequence nav buttons.Jun 25 2016, 9:23 PM
20after4 updated this object.
20after4 edited edge metadata.

This is now deployed on the WMF phabricator, you can see it in action here - look for the arrow buttons in the upper-right corner of the event view.

D16248 should fix the bug with E<some child ID>/123, and hopefully a few other bugs.

I like the next/prev links but want to dig through the infrastructure tasks a bit more before figuring it out what it will look like. I'm maybe thinking of putting a more central "up to parent / previous / next" element somewhere in the body of the page? I feel like the "this is an instance" is getting buried a bit now, too. But we might just go with the [<][>] buttons, I think they're pretty reasonable.

D16339 adds sequence navigation buttons based on these.