Changeset View
Changeset View
Standalone View
Standalone View
src/applications/calendar/editor/PhabricatorCalendarEventEditor.php
Show All 15 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[] = 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; | ||||
return $types; | return $types; | ||||
} | } | ||||
protected function getCustomTransactionOldValue( | protected function getCustomTransactionOldValue( | ||||
PhabricatorLiskDAO $object, | PhabricatorLiskDAO $object, | ||||
PhabricatorApplicationTransaction $xaction) { | PhabricatorApplicationTransaction $xaction) { | ||||
switch ($xaction->getTransactionType()) { | switch ($xaction->getTransactionType()) { | ||||
case PhabricatorCalendarEventTransaction::TYPE_NAME: | case PhabricatorCalendarEventTransaction::TYPE_NAME: | ||||
return $object->getName(); | return $object->getName(); | ||||
case PhabricatorCalendarEventTransaction::TYPE_START_DATE: | case PhabricatorCalendarEventTransaction::TYPE_START_DATE: | ||||
return $object->getDateFrom(); | return $object->getDateFrom(); | ||||
case PhabricatorCalendarEventTransaction::TYPE_END_DATE: | case PhabricatorCalendarEventTransaction::TYPE_END_DATE: | ||||
return $object->getDateTo(); | return $object->getDateTo(); | ||||
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: | |||||
return $object->getIcon(); | |||||
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 12 Lines | final class PhabricatorCalendarEventEditor | ||||
protected function getCustomTransactionNewValue( | protected function getCustomTransactionNewValue( | ||||
PhabricatorLiskDAO $object, | PhabricatorLiskDAO $object, | ||||
PhabricatorApplicationTransaction $xaction) { | PhabricatorApplicationTransaction $xaction) { | ||||
switch ($xaction->getTransactionType()) { | switch ($xaction->getTransactionType()) { | ||||
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: | |||||
return $xaction->getNewValue(); | return $xaction->getNewValue(); | ||||
case PhabricatorCalendarEventTransaction::TYPE_ALL_DAY: | case PhabricatorCalendarEventTransaction::TYPE_ALL_DAY: | ||||
return (int)$xaction->getNewValue(); | return (int)$xaction->getNewValue(); | ||||
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 18 Lines | switch ($xaction->getTransactionType()) { | ||||
$object->setDescription($xaction->getNewValue()); | $object->setDescription($xaction->getNewValue()); | ||||
return; | return; | ||||
case PhabricatorCalendarEventTransaction::TYPE_CANCEL: | case PhabricatorCalendarEventTransaction::TYPE_CANCEL: | ||||
$object->setIsCancelled((int)$xaction->getNewValue()); | $object->setIsCancelled((int)$xaction->getNewValue()); | ||||
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: | |||||
$object->setIcon($xaction->getNewValue()); | |||||
return; | |||||
case PhabricatorCalendarEventTransaction::TYPE_INVITE: | case PhabricatorCalendarEventTransaction::TYPE_INVITE: | ||||
return; | return; | ||||
} | } | ||||
return parent::applyCustomInternalTransaction($object, $xaction); | return parent::applyCustomInternalTransaction($object, $xaction); | ||||
} | } | ||||
protected function applyCustomExternalTransaction( | protected function applyCustomExternalTransaction( | ||||
PhabricatorLiskDAO $object, | PhabricatorLiskDAO $object, | ||||
PhabricatorApplicationTransaction $xaction) { | PhabricatorApplicationTransaction $xaction) { | ||||
switch ($xaction->getTransactionType()) { | switch ($xaction->getTransactionType()) { | ||||
case PhabricatorCalendarEventTransaction::TYPE_NAME: | case PhabricatorCalendarEventTransaction::TYPE_NAME: | ||||
case PhabricatorCalendarEventTransaction::TYPE_START_DATE: | case PhabricatorCalendarEventTransaction::TYPE_START_DATE: | ||||
case PhabricatorCalendarEventTransaction::TYPE_END_DATE: | case PhabricatorCalendarEventTransaction::TYPE_END_DATE: | ||||
case PhabricatorCalendarEventTransaction::TYPE_DESCRIPTION: | case PhabricatorCalendarEventTransaction::TYPE_DESCRIPTION: | ||||
case PhabricatorCalendarEventTransaction::TYPE_CANCEL: | case PhabricatorCalendarEventTransaction::TYPE_CANCEL: | ||||
case PhabricatorCalendarEventTransaction::TYPE_ALL_DAY: | case PhabricatorCalendarEventTransaction::TYPE_ALL_DAY: | ||||
case PhabricatorCalendarEventTransaction::TYPE_ICON: | |||||
return; | return; | ||||
case PhabricatorCalendarEventTransaction::TYPE_INVITE: | case PhabricatorCalendarEventTransaction::TYPE_INVITE: | ||||
$map = $xaction->getNewValue(); | $map = $xaction->getNewValue(); | ||||
$phids = array_keys($map); | $phids = array_keys($map); | ||||
$invitees = $object->getInvitees(); | $invitees = $object->getInvitees(); | ||||
$invitees = mpull($invitees, null, 'getInviteePHID'); | $invitees = mpull($invitees, null, 'getInviteePHID'); | ||||
foreach ($phids as $phid) { | foreach ($phids as $phid) { | ||||
Show All 30 Lines | protected function applyFinalEffects( | ||||
// Clear the availability caches for users whose availability is affected | // Clear the availability caches for users whose availability is affected | ||||
// by this edit. | // by this edit. | ||||
$invalidate_all = false; | $invalidate_all = false; | ||||
$invalidate_phids = array(); | $invalidate_phids = array(); | ||||
foreach ($xactions as $xaction) { | foreach ($xactions as $xaction) { | ||||
switch ($xaction->getTransactionType()) { | switch ($xaction->getTransactionType()) { | ||||
case PhabricatorCalendarEventTransaction::TYPE_ICON: | |||||
break; | |||||
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 | ||||
epriestley: Move this down and create a new block for it which just does `break;` without doing… | |||||
// caches for all attendees. | // caches for all attendees. | ||||
$invalidate_all = true; | $invalidate_all = true; | ||||
break; | 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 137 Lines • ▼ Show 20 Lines | protected function getMailTo(PhabricatorLiskDAO $object) { | ||||
return $phids; | return $phids; | ||||
} | } | ||||
public function getMailTagsMap() { | public function getMailTagsMap() { | ||||
return array( | return array( | ||||
PhabricatorCalendarEventTransaction::MAILTAG_CONTENT => | PhabricatorCalendarEventTransaction::MAILTAG_CONTENT => | ||||
pht( | pht( | ||||
"An event's name, status, invite list, ". | "An event's name, status, invite list, ". | ||||
"and description changes."), | "icon, and description changes."), | ||||
PhabricatorCalendarEventTransaction::MAILTAG_RESCHEDULE => | PhabricatorCalendarEventTransaction::MAILTAG_RESCHEDULE => | ||||
pht( | pht( | ||||
"An event's start and end date ". | "An event's start and end date ". | ||||
"and cancellation status changes."), | "and cancellation status changes."), | ||||
PhabricatorCalendarEventTransaction::MAILTAG_OTHER => | PhabricatorCalendarEventTransaction::MAILTAG_OTHER => | ||||
pht('Other event activity not listed above occurs.'), | pht('Other event activity not listed above occurs.'), | ||||
); | ); | ||||
} | } | ||||
Show All 38 Lines |
Move this down and create a new block for it which just does break; without doing $invalidate_all = true; -- we don't need to invalidate availability caches when an icon changes.