[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/drydock/controller/ -> DrydockBlueprintCreateController.php (source)

   1  <?php
   2  
   3  final class DrydockBlueprintCreateController
   4    extends DrydockBlueprintController {
   5  
   6    public function processRequest() {
   7      $request = $this->getRequest();
   8      $viewer = $request->getUser();
   9  
  10      $this->requireApplicationCapability(
  11        DrydockCreateBlueprintsCapability::CAPABILITY);
  12  
  13      $implementations =
  14        DrydockBlueprintImplementation::getAllBlueprintImplementations();
  15  
  16      $errors = array();
  17      $e_blueprint = null;
  18  
  19      if ($request->isFormPost()) {
  20        $class = $request->getStr('blueprint-type');
  21        if (!isset($implementations[$class])) {
  22          $e_blueprint = pht('Required');
  23          $errors[] = pht('You must choose a blueprint type.');
  24        }
  25  
  26        if (!$errors) {
  27          $edit_uri = $this->getApplicationURI('blueprint/edit/?class='.$class);
  28          return id(new AphrontRedirectResponse())->setURI($edit_uri);
  29        }
  30      }
  31  
  32      $control = id(new AphrontFormRadioButtonControl())
  33        ->setName('blueprint-type')
  34        ->setLabel(pht('Blueprint Type'))
  35        ->setError($e_blueprint);
  36  
  37      foreach ($implementations as $implementation_name => $implementation) {
  38        $disabled = !$implementation->isEnabled();
  39  
  40        $control->addButton(
  41          $implementation_name,
  42          $implementation->getBlueprintName(),
  43          array(
  44            pht('Provides: %s', $implementation->getType()),
  45            phutil_tag('br'),
  46            phutil_tag('br'),
  47            $implementation->getDescription(),
  48          ),
  49          $disabled ? 'disabled' : null,
  50          $disabled);
  51      }
  52  
  53      $title = pht('Create New Blueprint');
  54      $crumbs = $this->buildApplicationCrumbs();
  55      $crumbs->addTextCrumb(pht('New Blueprint'));
  56  
  57      $form = id(new AphrontFormView())
  58        ->setUser($viewer)
  59        ->appendChild($control)
  60        ->appendChild(
  61          id(new AphrontFormSubmitControl())
  62            ->addCancelButton($this->getApplicationURI('blueprint/'))
  63            ->setValue(pht('Continue')));
  64  
  65      $box = id(new PHUIObjectBoxView())
  66        ->setFormErrors($errors)
  67        ->setHeaderText($title)
  68        ->setForm($form);
  69  
  70      return $this->buildApplicationPage(
  71        array(
  72          $crumbs,
  73          $box,
  74        ),
  75        array(
  76          'title' => $title,
  77        ));
  78    }
  79  
  80  }


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