Changeset View
Changeset View
Standalone View
Standalone View
src/applications/calendar/storage/PhabricatorCalendarEvent.php
Show First 20 Lines • Show All 220 Lines • ▼ Show 20 Lines | final class PhabricatorCalendarEvent extends PhabricatorCalendarDAO | ||||
} | } | ||||
public function newSequenceIndexDateTime($sequence) { | public function newSequenceIndexDateTime($sequence) { | ||||
$set = $this->newRecurrenceSet(); | $set = $this->newRecurrenceSet(); | ||||
if (!$set) { | if (!$set) { | ||||
return null; | return null; | ||||
} | } | ||||
$limit = $sequence + 1; | |||||
$count = $this->getRecurrenceCount(); | |||||
if ($count && ($count < $limit)) { | |||||
return null; | |||||
} | |||||
$instances = $set->getEventsBetween( | $instances = $set->getEventsBetween( | ||||
null, | null, | ||||
$this->newUntilDateTime(), | $this->newUntilDateTime(), | ||||
$sequence + 1); | $limit); | ||||
return idx($instances, $sequence, null); | return idx($instances, $sequence, null); | ||||
} | } | ||||
public function newStub(PhabricatorUser $actor, $sequence) { | public function newStub(PhabricatorUser $actor, $sequence) { | ||||
$stub = $this->newChild($actor, $sequence); | $stub = $this->newChild($actor, $sequence); | ||||
$stub->setIsStub(1); | $stub->setIsStub(1); | ||||
▲ Show 20 Lines • Show All 661 Lines • ▼ Show 20 Lines | public function newRecurrenceRule() { | ||||
$start = $this->newStartDateTime(); | $start = $this->newStartDateTime(); | ||||
$rrule->setStartDateTime($start); | $rrule->setStartDateTime($start); | ||||
$until = $this->newUntilDateTime(); | $until = $this->newUntilDateTime(); | ||||
if ($until) { | if ($until) { | ||||
$rrule->setUntil($until); | $rrule->setUntil($until); | ||||
} | } | ||||
$count = $this->getRecurrenceCount(); | |||||
if ($count) { | |||||
$rrule->setCount($count); | |||||
} | |||||
return $rrule; | return $rrule; | ||||
} | } | ||||
public function getRecurrenceCount() { | |||||
$count = (int)$this->getParameter('recurrenceCount'); | |||||
if (!$count) { | |||||
return null; | |||||
} | |||||
return $count; | |||||
} | |||||
public function newRecurrenceSet() { | public function newRecurrenceSet() { | ||||
if ($this->isChildEvent()) { | if ($this->isChildEvent()) { | ||||
return $this->getParentEvent()->newRecurrenceSet(); | return $this->getParentEvent()->newRecurrenceSet(); | ||||
} | } | ||||
$set = new PhutilCalendarRecurrenceSet(); | $set = new PhutilCalendarRecurrenceSet(); | ||||
$rrule = $this->newRecurrenceRule(); | $rrule = $this->newRecurrenceRule(); | ||||
▲ Show 20 Lines • Show All 286 Lines • Show Last 20 Lines |