[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class AlmanacNetworkViewController 4 extends AlmanacNetworkController { 5 6 public function shouldAllowPublic() { 7 return true; 8 } 9 10 public function handleRequest(AphrontRequest $request) { 11 $viewer = $request->getViewer(); 12 13 $id = $request->getURIData('id'); 14 15 $network = id(new AlmanacNetworkQuery()) 16 ->setViewer($viewer) 17 ->withIDs(array($id)) 18 ->executeOne(); 19 if (!$network) { 20 return new Aphront404Response(); 21 } 22 23 $title = pht('Network %s', $network->getName()); 24 25 $property_list = $this->buildPropertyList($network); 26 $action_list = $this->buildActionList($network); 27 $property_list->setActionList($action_list); 28 29 $header = id(new PHUIHeaderView()) 30 ->setUser($viewer) 31 ->setHeader($network->getName()) 32 ->setPolicyObject($network); 33 34 $box = id(new PHUIObjectBoxView()) 35 ->setHeader($header) 36 ->addPropertyList($property_list); 37 38 $crumbs = $this->buildApplicationCrumbs(); 39 $crumbs->addTextCrumb($network->getName()); 40 41 $xactions = id(new AlmanacNetworkTransactionQuery()) 42 ->setViewer($viewer) 43 ->withObjectPHIDs(array($network->getPHID())) 44 ->execute(); 45 46 $xaction_view = id(new PhabricatorApplicationTransactionView()) 47 ->setUser($viewer) 48 ->setObjectPHID($network->getPHID()) 49 ->setTransactions($xactions) 50 ->setShouldTerminate(true); 51 52 return $this->buildApplicationPage( 53 array( 54 $crumbs, 55 $box, 56 $xaction_view, 57 ), 58 array( 59 'title' => $title, 60 )); 61 } 62 63 private function buildPropertyList(AlmanacNetwork $network) { 64 $viewer = $this->getViewer(); 65 66 $properties = id(new PHUIPropertyListView()) 67 ->setUser($viewer); 68 69 return $properties; 70 } 71 72 private function buildActionList(AlmanacNetwork $network) { 73 $viewer = $this->getViewer(); 74 $id = $network->getID(); 75 76 $can_edit = PhabricatorPolicyFilter::hasCapability( 77 $viewer, 78 $network, 79 PhabricatorPolicyCapability::CAN_EDIT); 80 81 $actions = id(new PhabricatorActionListView()) 82 ->setUser($viewer); 83 84 $actions->addAction( 85 id(new PhabricatorActionView()) 86 ->setIcon('fa-pencil') 87 ->setName(pht('Edit Network')) 88 ->setHref($this->getApplicationURI("network/edit/{$id}/")) 89 ->setWorkflow(!$can_edit) 90 ->setDisabled(!$can_edit)); 91 92 return $actions; 93 } 94 95 }
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 |