[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
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 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Nov 30 09:20:46 2014 | Cross-referenced by PHPXref 0.7.1 |