[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/nuance/controller/ -> NuanceSourceEditController.php (source)

   1  <?php
   2  
   3  final class NuanceSourceEditController extends NuanceController {
   4  
   5    private $sourceID;
   6  
   7    public function setSourceID($source_id) {
   8      $this->sourceID = $source_id;
   9      return $this;
  10    }
  11    public function getSourceID() {
  12      return $this->sourceID;
  13    }
  14  
  15    public function willProcessRequest(array $data) {
  16      $this->setSourceID(idx($data, 'id'));
  17    }
  18  
  19    public function processRequest() {
  20      $can_edit = $this->requireApplicationCapability(
  21        NuanceSourceManageCapability::CAPABILITY);
  22  
  23      $request = $this->getRequest();
  24      $user = $request->getUser();
  25  
  26      $source_id = $this->getSourceID();
  27      $is_new = !$source_id;
  28  
  29      if ($is_new) {
  30        $source = NuanceSource::initializeNewSource($user);
  31      } else {
  32        $source = id(new NuanceSourceQuery())
  33          ->setViewer($user)
  34          ->withIDs(array($source_id))
  35          ->requireCapabilities(
  36            array(
  37              PhabricatorPolicyCapability::CAN_VIEW,
  38              PhabricatorPolicyCapability::CAN_EDIT,
  39            ))
  40          ->executeOne();
  41      }
  42  
  43      if (!$source) {
  44        return new Aphront404Response();
  45      }
  46  
  47      $definition = NuanceSourceDefinition::getDefinitionForSource($source);
  48      $definition->setActor($user);
  49  
  50      $response = $definition->buildEditLayout($request);
  51      if ($response instanceof AphrontResponse) {
  52        return $response;
  53      }
  54      $layout = $response;
  55  
  56      $crumbs = $this->buildApplicationCrumbs();
  57      return $this->buildApplicationPage(
  58        array(
  59          $crumbs,
  60          $layout,
  61        ),
  62        array(
  63          'title' => $definition->getEditTitle(),
  64        ));
  65    }
  66  }


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