private function materializeStub(PhabricatorCalendarEvent $event) { if (!$event->getIsStub()) { throw new Exception(pht('Can not materialize an event stub: this event is not a stub.')); } $actor = $this->getActor(); $event->copyFromParent($actor); $event->setIsStub(0); $invitees = $event->getParentEvent()->getInvitees(); $new_invitees = array(); foreach ($invitees as $invitee) { $invitee = id(new PhabricatorCalendarEventInvitee())->setEventPHID($event->getPHID())->setInviteePHID($invitee->getInviteePHID())->setInviterPHID($invitee->getInviterPHID())->setStatus($invitee->getStatus())->save(); $new_invitees[] = $invitee; } $event->save(); $event->attachInvitees($new_invitees); }
private function buildRecurringSection(PhabricatorCalendarEvent $event) { $viewer = $this->getViewer(); if (!$event->getIsRecurring()) { return null; } $properties = id(new PHUIPropertyListView())->setUser($viewer); $is_parent = $event->isParentEvent(); if ($is_parent) { $parent_link = null; } else { $parent = $event->getParentEvent(); $parent_link = $viewer->renderHandle($parent->getPHID())->render(); } $rule = $event->getFrequencyRule(); switch ($rule) { case PhabricatorCalendarEvent::FREQUENCY_DAILY: if ($is_parent) { $message = pht('This event repeats every day.'); } else { $message = pht('This event is an instance of %s, and repeats every day.', $parent_link); } break; case PhabricatorCalendarEvent::FREQUENCY_WEEKLY: if ($is_parent) { $message = pht('This event repeats every week.'); } else { $message = pht('This event is an instance of %s, and repeats every week.', $parent_link); } break; case PhabricatorCalendarEvent::FREQUENCY_MONTHLY: if ($is_parent) { $message = pht('This event repeats every month.'); } else { $message = pht('This event is an instance of %s, and repeats every month.', $parent_link); } break; case PhabricatorCalendarEvent::FREQUENCY_YEARLY: if ($is_parent) { $message = pht('This event repeats every year.'); } else { $message = pht('This event is an instance of %s, and repeats every year.', $parent_link); } break; } $properties->addProperty(pht('Event Series'), $message); return $properties; }