Changeset View
Changeset View
Standalone View
Standalone View
src/applications/phragment/controller/PhragmentVersionController.php
<?php | <?php | ||||
final class PhragmentVersionController extends PhragmentController { | final class PhragmentVersionController extends PhragmentController { | ||||
private $id; | private $id; | ||||
public function shouldAllowPublic() { | |||||
return true; | |||||
} | |||||
public function willProcessRequest(array $data) { | public function willProcessRequest(array $data) { | ||||
$this->id = idx($data, "id", 0); | $this->id = idx($data, "id", 0); | ||||
} | } | ||||
public function processRequest() { | public function processRequest() { | ||||
$request = $this->getRequest(); | $request = $this->getRequest(); | ||||
$viewer = $request->getUser(); | $viewer = $request->getUser(); | ||||
Show All 21 Lines | public function processRequest() { | ||||
$this->loadHandles($phids); | $this->loadHandles($phids); | ||||
$file = id(new PhabricatorFileQuery()) | $file = id(new PhabricatorFileQuery()) | ||||
->setViewer($viewer) | ->setViewer($viewer) | ||||
->withPHIDs(array($version->getFilePHID())) | ->withPHIDs(array($version->getFilePHID())) | ||||
->executeOne(); | ->executeOne(); | ||||
if ($file !== null) { | if ($file !== null) { | ||||
$file_uri = $file->getBestURI(); | $file_uri = $file->getDownloadURI(); | ||||
} | } | ||||
$header = id(new PHUIHeaderView()) | $header = id(new PHUIHeaderView()) | ||||
->setHeader(pht( | ->setHeader(pht( | ||||
"%s at version %d", | "%s at version %d", | ||||
$version->getFragment()->getName(), | $version->getFragment()->getName(), | ||||
$version->getSequence())) | $version->getSequence())) | ||||
->setPolicyObject($version) | ->setPolicyObject($version) | ||||
->setUser($viewer); | ->setUser($viewer); | ||||
$actions = id(new PhabricatorActionListView()) | $actions = id(new PhabricatorActionListView()) | ||||
->setUser($viewer) | ->setUser($viewer) | ||||
->setObject($version) | ->setObject($version) | ||||
->setObjectURI($version->getURI()); | ->setObjectURI($version->getURI()); | ||||
$actions->addAction( | $actions->addAction( | ||||
id(new PhabricatorActionView()) | id(new PhabricatorActionView()) | ||||
->setName(pht('Download Version')) | ->setName(pht('Download Version')) | ||||
->setHref($file_uri) | ->setDisabled($file === null || !$this->isCorrectlyConfigured()) | ||||
->setDisabled($file === null) | ->setHref($this->isCorrectlyConfigured() ? $file_uri : null) | ||||
->setIcon('download')); | ->setIcon('download')); | ||||
$properties = id(new PHUIPropertyListView()) | $properties = id(new PHUIPropertyListView()) | ||||
->setUser($viewer) | ->setUser($viewer) | ||||
->setObject($version) | ->setObject($version) | ||||
->setActionList($actions); | ->setActionList($actions); | ||||
$properties->addProperty( | $properties->addProperty( | ||||
pht('File'), | pht('File'), | ||||
$this->renderHandlesForPHIDs(array($version->getFilePHID()))); | $this->renderHandlesForPHIDs(array($version->getFilePHID()))); | ||||
$box = id(new PHUIObjectBoxView()) | $box = id(new PHUIObjectBoxView()) | ||||
->setHeader($header) | ->setHeader($header) | ||||
->addPropertyList($properties); | ->addPropertyList($properties); | ||||
return $this->buildApplicationPage( | return $this->buildApplicationPage( | ||||
array( | array( | ||||
$crumbs, | $crumbs, | ||||
$this->renderConfigurationWarningIfRequired(), | |||||
$box, | $box, | ||||
$this->renderPatchFromPreviousVersion($version, $file), | $this->renderPatchFromPreviousVersion($version, $file), | ||||
$this->renderPreviousVersionList($version)), | $this->renderPreviousVersionList($version)), | ||||
array( | array( | ||||
'title' => pht('View Version'), | 'title' => pht('View Version'), | ||||
'device' => true)); | 'device' => true)); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 61 Lines • ▼ Show 20 Lines | private function renderPreviousVersionList( | ||||
foreach ($previous_versions as $previous_version) { | foreach ($previous_versions as $previous_version) { | ||||
$item = id(new PHUIObjectItemView()); | $item = id(new PHUIObjectItemView()); | ||||
$item->setHeader('Version '.$previous_version->getSequence()); | $item->setHeader('Version '.$previous_version->getSequence()); | ||||
$item->setHref($previous_version->getURI()); | $item->setHref($previous_version->getURI()); | ||||
$item->addAttribute(phabricator_datetime( | $item->addAttribute(phabricator_datetime( | ||||
$previous_version->getDateCreated(), | $previous_version->getDateCreated(), | ||||
$viewer)); | $viewer)); | ||||
$patch_uri = $this->getApplicationURI( | |||||
'patch/'.$previous_version->getID().'/'.$version->getID()); | |||||
$item->addAction(id(new PHUIListItemView()) | $item->addAction(id(new PHUIListItemView()) | ||||
->setIcon('patch') | ->setIcon('patch') | ||||
->setName(pht("Get Patch")) | ->setName(pht("Get Patch")) | ||||
->setHref($this->getApplicationURI( | ->setHref($this->isCorrectlyConfigured() ? $patch_uri : null) | ||||
'patch/'.$previous_version->getID().'/'.$version->getID()))); | ->setDisabled(!$this->isCorrectlyConfigured())); | ||||
$list->addItem($item); | $list->addItem($item); | ||||
} | } | ||||
$item = id(new PHUIObjectItemView()); | $item = id(new PHUIObjectItemView()); | ||||
$item->setHeader('Prior to Version 0'); | $item->setHeader('Prior to Version 0'); | ||||
$item->addAttribute('Prior to any content (empty file)'); | $item->addAttribute('Prior to any content (empty file)'); | ||||
$item->addAction(id(new PHUIListItemView()) | $item->addAction(id(new PHUIListItemView()) | ||||
->setIcon('patch') | ->setIcon('patch') | ||||
Show All 9 Lines |