Path: blob/master/src/applications/packages/controller/PhabricatorPackagesVersionViewController.php
12242 views
<?php12final class PhabricatorPackagesVersionViewController3extends PhabricatorPackagesVersionController {45public function shouldAllowPublic() {6return true;7}89public function handleRequest(AphrontRequest $request) {10$viewer = $request->getViewer();1112$publisher_key = $request->getURIData('publisherKey');13$package_key = $request->getURIData('packageKey');14$full_key = $publisher_key.'/'.$package_key;15$version_key = $request->getURIData('versionKey');1617$version = id(new PhabricatorPackagesVersionQuery())18->setViewer($viewer)19->withFullKeys(array($full_key))20->withNames(array($version_key))21->executeOne();22if (!$version) {23return new Aphront404Response();24}2526$package = $version->getPackage();27$publisher = $package->getPublisher();2829$crumbs = $this->buildApplicationCrumbs()30->addTextCrumb($publisher->getName(), $publisher->getURI())31->addTextCrumb($package->getName(), $package->getURI())32->addTextCrumb($version->getName())33->setBorder(true);3435$header = $this->buildHeaderView($version);36$curtain = $this->buildCurtain($version);3738$timeline = $this->buildTransactionTimeline(39$version,40new PhabricatorPackagesVersionTransactionQuery());41$timeline->setShouldTerminate(true);4243$version_view = id(new PHUITwoColumnView())44->setHeader($header)45->setCurtain($curtain)46->setMainColumn($timeline);4748return $this->newPage()49->setCrumbs($crumbs)50->setPageObjectPHIDs(51array(52$version->getPHID(),53))54->appendChild($version_view);55}565758private function buildHeaderView(PhabricatorPackagesVersion $version) {59$viewer = $this->getViewer();60$name = $version->getName();6162return id(new PHUIHeaderView())63->setViewer($viewer)64->setHeader($name)65->setPolicyObject($version)66->setHeaderIcon('fa-tag');67}6869private function buildCurtain(PhabricatorPackagesVersion $version) {70$viewer = $this->getViewer();71$curtain = $this->newCurtainView($version);7273$can_edit = PhabricatorPolicyFilter::hasCapability(74$viewer,75$version,76PhabricatorPolicyCapability::CAN_EDIT);7778$id = $version->getID();79$edit_uri = $this->getApplicationURI("version/edit/{$id}/");8081$curtain->addAction(82id(new PhabricatorActionView())83->setName(pht('Edit Version'))84->setIcon('fa-pencil')85->setDisabled(!$can_edit)86->setHref($edit_uri));8788return $curtain;89}9091}929394