[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/dashboard/editor/ -> PhabricatorDashboardPanelTransactionEditor.php (source)

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


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