Path: blob/master/src/applications/almanac/controller/AlmanacNetworkViewController.php
12262 views
<?php12final class AlmanacNetworkViewController3extends AlmanacNetworkController {45public function shouldAllowPublic() {6return true;7}89public function handleRequest(AphrontRequest $request) {10$viewer = $request->getViewer();1112$id = $request->getURIData('id');13$network = id(new AlmanacNetworkQuery())14->setViewer($viewer)15->withIDs(array($id))16->executeOne();17if (!$network) {18return new Aphront404Response();19}2021$title = pht('Network %s', $network->getName());2223$curtain = $this->buildCurtain($network);2425$header = id(new PHUIHeaderView())26->setUser($viewer)27->setHeader($network->getName())28->setHeaderIcon('fa-globe')29->setPolicyObject($network);3031$crumbs = $this->buildApplicationCrumbs();32$crumbs->addTextCrumb($network->getName());33$crumbs->setBorder(true);3435$timeline = $this->buildTransactionTimeline(36$network,37new AlmanacNetworkTransactionQuery());38$timeline->setShouldTerminate(true);3940$view = id(new PHUITwoColumnView())41->setHeader($header)42->setCurtain($curtain)43->setMainColumn(array(44$timeline,45));4647return $this->newPage()48->setTitle($title)49->setCrumbs($crumbs)50->appendChild(51array(52$view,53));54}555657private function buildCurtain(AlmanacNetwork $network) {58$viewer = $this->getViewer();5960$can_edit = PhabricatorPolicyFilter::hasCapability(61$viewer,62$network,63PhabricatorPolicyCapability::CAN_EDIT);6465$id = $network->getID();66$edit_uri = $this->getApplicationURI("network/edit/{$id}/");6768$curtain = $this->newCurtainView($network);6970$curtain->addAction(71id(new PhabricatorActionView())72->setIcon('fa-pencil')73->setName(pht('Edit Network'))74->setHref($edit_uri)75->setWorkflow(!$can_edit)76->setDisabled(!$can_edit));7778return $curtain;79}8081}828384