Changeset View
Changeset View
Standalone View
Standalone View
src/applications/calendar/editor/PhabricatorCalendarEventEditor.php
Show First 20 Lines • Show All 62 Lines • ▼ Show 20 Lines | public function getTransactionTypes() { | ||||
$types[] = PhabricatorCalendarEventTransaction::TYPE_NAME; | $types[] = PhabricatorCalendarEventTransaction::TYPE_NAME; | ||||
$types[] = PhabricatorCalendarEventTransaction::TYPE_START_DATE; | $types[] = PhabricatorCalendarEventTransaction::TYPE_START_DATE; | ||||
$types[] = PhabricatorCalendarEventTransaction::TYPE_END_DATE; | $types[] = PhabricatorCalendarEventTransaction::TYPE_END_DATE; | ||||
$types[] = PhabricatorCalendarEventTransaction::TYPE_DESCRIPTION; | $types[] = PhabricatorCalendarEventTransaction::TYPE_DESCRIPTION; | ||||
$types[] = PhabricatorCalendarEventTransaction::TYPE_CANCEL; | $types[] = PhabricatorCalendarEventTransaction::TYPE_CANCEL; | ||||
$types[] = PhabricatorCalendarEventTransaction::TYPE_INVITE; | $types[] = PhabricatorCalendarEventTransaction::TYPE_INVITE; | ||||
$types[] = PhabricatorCalendarEventTransaction::TYPE_ALL_DAY; | $types[] = PhabricatorCalendarEventTransaction::TYPE_ALL_DAY; | ||||
$types[] = PhabricatorCalendarEventTransaction::TYPE_ICON; | $types[] = PhabricatorCalendarEventTransaction::TYPE_ICON; | ||||
$types[] = PhabricatorCalendarEventTransaction::TYPE_ACCEPT; | |||||
$types[] = PhabricatorCalendarEventTransaction::TYPE_DECLINE; | |||||
$types[] = PhabricatorCalendarEventTransaction::TYPE_RECURRING; | $types[] = PhabricatorCalendarEventTransaction::TYPE_RECURRING; | ||||
$types[] = PhabricatorCalendarEventTransaction::TYPE_FREQUENCY; | $types[] = PhabricatorCalendarEventTransaction::TYPE_FREQUENCY; | ||||
$types[] = PhabricatorCalendarEventTransaction::TYPE_RECURRENCE_END_DATE; | $types[] = PhabricatorCalendarEventTransaction::TYPE_RECURRENCE_END_DATE; | ||||
$types[] = PhabricatorTransactions::TYPE_COMMENT; | $types[] = PhabricatorTransactions::TYPE_COMMENT; | ||||
$types[] = PhabricatorTransactions::TYPE_VIEW_POLICY; | $types[] = PhabricatorTransactions::TYPE_VIEW_POLICY; | ||||
$types[] = PhabricatorTransactions::TYPE_EDIT_POLICY; | $types[] = PhabricatorTransactions::TYPE_EDIT_POLICY; | ||||
Show All 20 Lines | switch ($xaction->getTransactionType()) { | ||||
case PhabricatorCalendarEventTransaction::TYPE_DESCRIPTION: | case PhabricatorCalendarEventTransaction::TYPE_DESCRIPTION: | ||||
return $object->getDescription(); | return $object->getDescription(); | ||||
case PhabricatorCalendarEventTransaction::TYPE_CANCEL: | case PhabricatorCalendarEventTransaction::TYPE_CANCEL: | ||||
return $object->getIsCancelled(); | return $object->getIsCancelled(); | ||||
case PhabricatorCalendarEventTransaction::TYPE_ALL_DAY: | case PhabricatorCalendarEventTransaction::TYPE_ALL_DAY: | ||||
return (int)$object->getIsAllDay(); | return (int)$object->getIsAllDay(); | ||||
case PhabricatorCalendarEventTransaction::TYPE_ICON: | case PhabricatorCalendarEventTransaction::TYPE_ICON: | ||||
return $object->getIcon(); | return $object->getIcon(); | ||||
case PhabricatorCalendarEventTransaction::TYPE_ACCEPT: | |||||
case PhabricatorCalendarEventTransaction::TYPE_DECLINE: | |||||
$actor_phid = $this->getActingAsPHID(); | |||||
return $object->getUserInviteStatus($actor_phid); | |||||
case PhabricatorCalendarEventTransaction::TYPE_INVITE: | case PhabricatorCalendarEventTransaction::TYPE_INVITE: | ||||
$map = $xaction->getNewValue(); | $map = $xaction->getNewValue(); | ||||
$phids = array_keys($map); | $phids = array_keys($map); | ||||
$invitees = mpull($object->getInvitees(), null, 'getInviteePHID'); | $invitees = mpull($object->getInvitees(), null, 'getInviteePHID'); | ||||
$old = array(); | $old = array(); | ||||
foreach ($phids as $phid) { | foreach ($phids as $phid) { | ||||
$invitee = idx($invitees, $phid); | $invitee = idx($invitees, $phid); | ||||
Show All 16 Lines | switch ($xaction->getTransactionType()) { | ||||
case PhabricatorCalendarEventTransaction::TYPE_RECURRING: | case PhabricatorCalendarEventTransaction::TYPE_RECURRING: | ||||
case PhabricatorCalendarEventTransaction::TYPE_FREQUENCY: | case PhabricatorCalendarEventTransaction::TYPE_FREQUENCY: | ||||
case PhabricatorCalendarEventTransaction::TYPE_NAME: | case PhabricatorCalendarEventTransaction::TYPE_NAME: | ||||
case PhabricatorCalendarEventTransaction::TYPE_DESCRIPTION: | case PhabricatorCalendarEventTransaction::TYPE_DESCRIPTION: | ||||
case PhabricatorCalendarEventTransaction::TYPE_CANCEL: | case PhabricatorCalendarEventTransaction::TYPE_CANCEL: | ||||
case PhabricatorCalendarEventTransaction::TYPE_INVITE: | case PhabricatorCalendarEventTransaction::TYPE_INVITE: | ||||
case PhabricatorCalendarEventTransaction::TYPE_ICON: | case PhabricatorCalendarEventTransaction::TYPE_ICON: | ||||
return $xaction->getNewValue(); | return $xaction->getNewValue(); | ||||
case PhabricatorCalendarEventTransaction::TYPE_ACCEPT: | |||||
return PhabricatorCalendarEventInvitee::STATUS_ATTENDING; | |||||
case PhabricatorCalendarEventTransaction::TYPE_DECLINE: | |||||
return PhabricatorCalendarEventInvitee::STATUS_DECLINED; | |||||
case PhabricatorCalendarEventTransaction::TYPE_ALL_DAY: | case PhabricatorCalendarEventTransaction::TYPE_ALL_DAY: | ||||
return (int)$xaction->getNewValue(); | return (int)$xaction->getNewValue(); | ||||
case PhabricatorCalendarEventTransaction::TYPE_RECURRENCE_END_DATE: | case PhabricatorCalendarEventTransaction::TYPE_RECURRENCE_END_DATE: | ||||
case PhabricatorCalendarEventTransaction::TYPE_START_DATE: | case PhabricatorCalendarEventTransaction::TYPE_START_DATE: | ||||
case PhabricatorCalendarEventTransaction::TYPE_END_DATE: | case PhabricatorCalendarEventTransaction::TYPE_END_DATE: | ||||
return $xaction->getNewValue()->getEpoch(); | return $xaction->getNewValue()->getEpoch(); | ||||
} | } | ||||
Show All 29 Lines | switch ($xaction->getTransactionType()) { | ||||
return; | return; | ||||
case PhabricatorCalendarEventTransaction::TYPE_ALL_DAY: | case PhabricatorCalendarEventTransaction::TYPE_ALL_DAY: | ||||
$object->setIsAllDay((int)$xaction->getNewValue()); | $object->setIsAllDay((int)$xaction->getNewValue()); | ||||
return; | return; | ||||
case PhabricatorCalendarEventTransaction::TYPE_ICON: | case PhabricatorCalendarEventTransaction::TYPE_ICON: | ||||
$object->setIcon($xaction->getNewValue()); | $object->setIcon($xaction->getNewValue()); | ||||
return; | return; | ||||
case PhabricatorCalendarEventTransaction::TYPE_INVITE: | case PhabricatorCalendarEventTransaction::TYPE_INVITE: | ||||
case PhabricatorCalendarEventTransaction::TYPE_ACCEPT: | |||||
case PhabricatorCalendarEventTransaction::TYPE_DECLINE: | |||||
return; | return; | ||||
} | } | ||||
return parent::applyCustomInternalTransaction($object, $xaction); | return parent::applyCustomInternalTransaction($object, $xaction); | ||||
} | } | ||||
protected function applyCustomExternalTransaction( | protected function applyCustomExternalTransaction( | ||||
PhabricatorLiskDAO $object, | PhabricatorLiskDAO $object, | ||||
Show All 26 Lines | switch ($xaction->getTransactionType()) { | ||||
->setInviterPHID($this->getActingAsPHID()); | ->setInviterPHID($this->getActingAsPHID()); | ||||
$invitees[] = $invitee; | $invitees[] = $invitee; | ||||
} | } | ||||
$invitee->setStatus($map[$phid]) | $invitee->setStatus($map[$phid]) | ||||
->save(); | ->save(); | ||||
} | } | ||||
$object->attachInvitees($invitees); | $object->attachInvitees($invitees); | ||||
return; | return; | ||||
case PhabricatorCalendarEventTransaction::TYPE_ACCEPT: | |||||
case PhabricatorCalendarEventTransaction::TYPE_DECLINE: | |||||
$acting_phid = $this->getActingAsPHID(); | |||||
$invitees = $object->getInvitees(); | |||||
$invitees = mpull($invitees, null, 'getInviteePHID'); | |||||
$invitee = idx($invitees, $acting_phid); | |||||
if (!$invitee) { | |||||
$invitee = id(new PhabricatorCalendarEventInvitee()) | |||||
->setEventPHID($object->getPHID()) | |||||
->setInviteePHID($acting_phid) | |||||
->setInviterPHID($acting_phid); | |||||
$invitees[$acting_phid] = $invitee; | |||||
} | |||||
$invitee | |||||
->setStatus($xaction->getNewValue()) | |||||
->save(); | |||||
$object->attachInvitees($invitees); | |||||
return; | |||||
} | } | ||||
return parent::applyCustomExternalTransaction($object, $xaction); | return parent::applyCustomExternalTransaction($object, $xaction); | ||||
} | } | ||||
protected function applyFinalEffects( | protected function applyFinalEffects( | ||||
PhabricatorLiskDAO $object, | PhabricatorLiskDAO $object, | ||||
array $xactions) { | array $xactions) { | ||||
Show All 13 Lines | foreach ($xactions as $xaction) { | ||||
case PhabricatorCalendarEventTransaction::TYPE_START_DATE: | case PhabricatorCalendarEventTransaction::TYPE_START_DATE: | ||||
case PhabricatorCalendarEventTransaction::TYPE_END_DATE: | case PhabricatorCalendarEventTransaction::TYPE_END_DATE: | ||||
case PhabricatorCalendarEventTransaction::TYPE_CANCEL: | case PhabricatorCalendarEventTransaction::TYPE_CANCEL: | ||||
case PhabricatorCalendarEventTransaction::TYPE_ALL_DAY: | case PhabricatorCalendarEventTransaction::TYPE_ALL_DAY: | ||||
// For these kinds of changes, we need to invalidate the availabilty | // For these kinds of changes, we need to invalidate the availabilty | ||||
// caches for all attendees. | // caches for all attendees. | ||||
$invalidate_all = true; | $invalidate_all = true; | ||||
break; | break; | ||||
case PhabricatorCalendarEventTransaction::TYPE_ACCEPT: | |||||
case PhabricatorCalendarEventTransaction::TYPE_DECLINE: | |||||
$acting_phid = $this->getActingAsPHID(); | |||||
$invalidate_phids[$acting_phid] = $acting_phid; | |||||
break; | |||||
case PhabricatorCalendarEventTransaction::TYPE_INVITE: | case PhabricatorCalendarEventTransaction::TYPE_INVITE: | ||||
foreach ($xaction->getNewValue() as $phid => $ignored) { | foreach ($xaction->getNewValue() as $phid => $ignored) { | ||||
$invalidate_phids[$phid] = $phid; | $invalidate_phids[$phid] = $phid; | ||||
} | } | ||||
break; | break; | ||||
} | } | ||||
} | } | ||||
▲ Show 20 Lines • Show All 212 Lines • Show Last 20 Lines |