[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/harbormaster/editor/ -> HarbormasterBuildPlanEditor.php (source)

   1  <?php
   2  
   3  final class HarbormasterBuildPlanEditor
   4    extends PhabricatorApplicationTransactionEditor {
   5  
   6    public function getEditorApplicationClass() {
   7      return 'PhabricatorHarbormasterApplication';
   8    }
   9  
  10    public function getEditorObjectsDescription() {
  11      return pht('Harbormaster Build Plans');
  12    }
  13  
  14    public function getTransactionTypes() {
  15      $types = parent::getTransactionTypes();
  16      $types[] = HarbormasterBuildPlanTransaction::TYPE_NAME;
  17      $types[] = HarbormasterBuildPlanTransaction::TYPE_STATUS;
  18      $types[] = PhabricatorTransactions::TYPE_COMMENT;
  19      return $types;
  20    }
  21  
  22    protected function getCustomTransactionOldValue(
  23      PhabricatorLiskDAO $object,
  24      PhabricatorApplicationTransaction $xaction) {
  25      switch ($xaction->getTransactionType()) {
  26        case HarbormasterBuildPlanTransaction::TYPE_NAME:
  27          if ($this->getIsNewObject()) {
  28            return null;
  29          }
  30          return $object->getName();
  31        case HarbormasterBuildPlanTransaction::TYPE_STATUS:
  32          return $object->getPlanStatus();
  33      }
  34  
  35      return parent::getCustomTransactionOldValue($object, $xaction);
  36    }
  37  
  38    protected function getCustomTransactionNewValue(
  39      PhabricatorLiskDAO $object,
  40      PhabricatorApplicationTransaction $xaction) {
  41      switch ($xaction->getTransactionType()) {
  42        case HarbormasterBuildPlanTransaction::TYPE_NAME:
  43          return $xaction->getNewValue();
  44        case HarbormasterBuildPlanTransaction::TYPE_STATUS:
  45          return $xaction->getNewValue();
  46      }
  47      return parent::getCustomTransactionNewValue($object, $xaction);
  48    }
  49  
  50    protected function applyCustomInternalTransaction(
  51      PhabricatorLiskDAO $object,
  52      PhabricatorApplicationTransaction $xaction) {
  53      switch ($xaction->getTransactionType()) {
  54        case HarbormasterBuildPlanTransaction::TYPE_NAME:
  55          $object->setName($xaction->getNewValue());
  56          return;
  57        case HarbormasterBuildPlanTransaction::TYPE_STATUS:
  58          $object->setPlanStatus($xaction->getNewValue());
  59          return;
  60      }
  61      return parent::applyCustomInternalTransaction($object, $xaction);
  62    }
  63  
  64    protected function applyCustomExternalTransaction(
  65      PhabricatorLiskDAO $object,
  66      PhabricatorApplicationTransaction $xaction) {
  67      switch ($xaction->getTransactionType()) {
  68        case HarbormasterBuildPlanTransaction::TYPE_NAME:
  69        case HarbormasterBuildPlanTransaction::TYPE_STATUS:
  70          return;
  71      }
  72      return parent::applyCustomExternalTransaction($object, $xaction);
  73    }
  74  
  75    protected function validateTransaction(
  76      PhabricatorLiskDAO $object,
  77      $type,
  78      array $xactions) {
  79  
  80      $errors = parent::validateTransaction($object, $type, $xactions);
  81  
  82      switch ($type) {
  83        case HarbormasterBuildPlanTransaction::TYPE_NAME:
  84          $missing = $this->validateIsEmptyTextField(
  85            $object->getName(),
  86            $xactions);
  87  
  88          if ($missing) {
  89            $error = new PhabricatorApplicationTransactionValidationError(
  90              $type,
  91              pht('Required'),
  92              pht('Plan name is required.'),
  93              last($xactions));
  94  
  95            $error->setIsMissingFieldError(true);
  96            $errors[] = $error;
  97          }
  98          break;
  99      }
 100  
 101      return $errors;
 102    }
 103  
 104  
 105  }


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1