[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/almanac/editor/ -> AlmanacNetworkEditor.php (source)

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


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