Changeset View
Changeset View
Standalone View
Standalone View
src/applications/chronicle/editor/ChronicleTriggerEditor.php
- This file was added.
<?php | |||||
final class ChronicleTriggerEditor | |||||
extends PhabricatorApplicationTransactionEditor { | |||||
public function getTransactionTypes() { | |||||
$types = parent::getTransactionTypes(); | |||||
$types[] = ChronicleTriggerTransaction::TYPE_CREATE; | |||||
$types[] = ChronicleTriggerTransaction::TYPE_NAME; | |||||
$types[] = ChronicleTriggerTransaction::TYPE_CONFIG; | |||||
$types[] = PhabricatorTransactions::TYPE_VIEW_POLICY; | |||||
$types[] = PhabricatorTransactions::TYPE_EDIT_POLICY; | |||||
return $types; | |||||
} | |||||
protected function getCustomTransactionOldValue( | |||||
PhabricatorLiskDAO $object, | |||||
PhabricatorApplicationTransaction $xaction) { | |||||
switch ($xaction->getTransactionType()) { | |||||
case ChronicleTriggerTransaction::TYPE_CREATE: | |||||
return null; | |||||
case ChronicleTriggerTransaction::TYPE_NAME: | |||||
if ($this->getIsNewObject()) { | |||||
return null; | |||||
} | |||||
return $object->getName(); | |||||
case ChronicleTriggerTransaction::TYPE_CONFIG: | |||||
if ($this->getIsNewObject()) { | |||||
return null; | |||||
} | |||||
return $object->getEpochConfig(); | |||||
case PhabricatorTransactions::TYPE_VIEW_POLICY: | |||||
if ($this->getIsNewObject()) { | |||||
return null; | |||||
} | |||||
return $object->getViewPolicy(); | |||||
case PhabricatorTransactions::TYPE_EDIT_POLICY: | |||||
if ($this->getIsNewObject()) { | |||||
return null; | |||||
} | |||||
return $object->getEditPolicy(); | |||||
} | |||||
return parent::getCustomTransactionOldValue($object, $xaction); | |||||
} | |||||
protected function getCustomTransactionNewValue( | |||||
PhabricatorLiskDAO $object, | |||||
PhabricatorApplicationTransaction $xaction) { | |||||
switch ($xaction->getTransactionType()) { | |||||
case ChronicleTriggerTransaction::TYPE_CREATE: | |||||
return true; | |||||
case ChronicleTriggerTransaction::TYPE_NAME: | |||||
case ChronicleTriggerTransaction::TYPE_CONFIG: | |||||
return $xaction->getNewValue(); | |||||
} | |||||
return parent::getCustomTransactionNewValue($object, $xaction); | |||||
} | |||||
protected function applyCustomInternalTransaction( | |||||
PhabricatorLiskDAO $object, | |||||
PhabricatorApplicationTransaction $xaction) { | |||||
switch ($xaction->getTransactionType()) { | |||||
case ChronicleTriggerTransaction::TYPE_CREATE: | |||||
return $object->setEpochNext($object->calculateNextEpoch()); | |||||
case ChronicleTriggerTransaction::TYPE_NAME: | |||||
return $object->setName($xaction->getNewValue()); | |||||
case ChronicleTriggerTransaction::TYPE_CONFIG: | |||||
return $object->setEpochConfig($xaction->getNewValue()); | |||||
case PhabricatorTransactions::TYPE_EDIT_POLICY: | |||||
return $object->setEditPolicy($xaction->getNewValue()); | |||||
case PhabricatorTransactions::TYPE_VIEW_POLICY: | |||||
return $object->setViewPolicy($xaction->getNewValue()); | |||||
} | |||||
return parent::applyCustomInternalTransaction($object, $xaction); | |||||
} | |||||
protected function applyCustomExternalTransaction( | |||||
PhabricatorLiskDAO $object, | |||||
PhabricatorApplicationTransaction $xaction) { | |||||
switch ($xaction->getTransactionType()) { | |||||
case ChronicleTriggerTransaction::TYPE_CREATE: | |||||
case ChronicleTriggerTransaction::TYPE_NAME: | |||||
case ChronicleTriggerTransaction::TYPE_CONFIG: | |||||
case PhabricatorTransactions::TYPE_EDIT_POLICY: | |||||
case PhabricatorTransactions::TYPE_VIEW_POLICY: | |||||
return; | |||||
} | |||||
return parent::applyCustomExternalTransaction($object, $xaction); | |||||
} | |||||
protected function applyFinalEffects( | |||||
PhabricatorLiskDAO $object, | |||||
array $xactions) { | |||||
$object->setEpochNext($object->calculateNextEpoch()); | |||||
$object->save(); | |||||
return $xactions; | |||||
} | |||||
} |