Path: blob/master/src/applications/packages/controller/PhabricatorPackagesPublisherViewController.php
12242 views
<?php12final class PhabricatorPackagesPublisherViewController3extends PhabricatorPackagesPublisherController {45public function shouldAllowPublic() {6return true;7}89public function handleRequest(AphrontRequest $request) {10$viewer = $request->getViewer();11$publisher_key = $request->getURIData('publisherKey');1213$publisher = id(new PhabricatorPackagesPublisherQuery())14->setViewer($viewer)15->withPublisherKeys(array($publisher_key))16->executeOne();17if (!$publisher) {18return new Aphront404Response();19}2021$crumbs = $this->buildApplicationCrumbs()22->addTextCrumb(23pht('Publishers'),24$this->getApplicationURI('publisher/'))25->addTextCrumb($publisher->getName())26->setBorder(true);2728$header = $this->buildHeaderView($publisher);29$curtain = $this->buildCurtain($publisher);3031$packages_view = $this->buildPackagesView($publisher);3233$timeline = $this->buildTransactionTimeline(34$publisher,35new PhabricatorPackagesPublisherTransactionQuery());36$timeline->setShouldTerminate(true);3738$publisher_view = id(new PHUITwoColumnView())39->setHeader($header)40->setCurtain($curtain)41->setMainColumn(42array(43$packages_view,44$timeline,45));4647return $this->newPage()48->setCrumbs($crumbs)49->setPageObjectPHIDs(50array(51$publisher->getPHID(),52))53->appendChild($publisher_view);54}555657private function buildHeaderView(PhabricatorPackagesPublisher $publisher) {58$viewer = $this->getViewer();59$name = $publisher->getName();6061return id(new PHUIHeaderView())62->setViewer($viewer)63->setHeader($name)64->setPolicyObject($publisher)65->setHeaderIcon('fa-paw');66}6768private function buildCurtain(PhabricatorPackagesPublisher $publisher) {69$viewer = $this->getViewer();70$curtain = $this->newCurtainView($publisher);7172$can_edit = PhabricatorPolicyFilter::hasCapability(73$viewer,74$publisher,75PhabricatorPolicyCapability::CAN_EDIT);7677$id = $publisher->getID();78$edit_uri = $this->getApplicationURI("publisher/edit/{$id}/");7980$curtain->addAction(81id(new PhabricatorActionView())82->setName(pht('Edit Publisher'))83->setIcon('fa-pencil')84->setDisabled(!$can_edit)85->setHref($edit_uri));8687return $curtain;88}8990private function buildPackagesView(PhabricatorPackagesPublisher $publisher) {91$viewer = $this->getViewer();9293$packages = id(new PhabricatorPackagesPackageQuery())94->setViewer($viewer)95->withPublisherPHIDs(array($publisher->getPHID()))96->setLimit(25)97->execute();9899$packages_list = id(new PhabricatorPackagesPackageListView())100->setViewer($viewer)101->setPackages($packages);102103$all_href = urisprintf(104'package/?publisher=%s#R',105$publisher->getPHID());106$all_href = $this->getApplicationURI($all_href);107108$view_all = id(new PHUIButtonView())109->setTag('a')110->setIcon('fa-search')111->setText(pht('View All'))112->setHref($all_href);113114$header = id(new PHUIHeaderView())115->setHeader(pht('Packages'))116->addActionLink($view_all);117118$packages_view = id(new PHUIObjectBoxView())119->setHeader($header)120->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)121->setObjectList($packages_list);122123return $packages_view;124}125126}127128129