Differential D7751 Diff 17565 src/applications/phragment/controller/PhragmentSnapshotViewController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/phragment/controller/PhragmentSnapshotViewController.php
<?php | <?php | ||||
final class PhragmentSnapshotViewController extends PhragmentController { | final class PhragmentSnapshotViewController 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", ""); | $this->id = idx($data, "id", ""); | ||||
} | } | ||||
public function processRequest() { | public function processRequest() { | ||||
$request = $this->getRequest(); | $request = $this->getRequest(); | ||||
$viewer = $request->getUser(); | $viewer = $request->getUser(); | ||||
▲ Show 20 Lines • Show All 52 Lines • ▼ Show 20 Lines | foreach ($children as $child) { | ||||
} | } | ||||
$list->addItem($item); | $list->addItem($item); | ||||
} | } | ||||
return $this->buildApplicationPage( | return $this->buildApplicationPage( | ||||
array( | array( | ||||
$crumbs, | $crumbs, | ||||
$this->renderConfigurationWarningIfRequired(), | |||||
$box, | $box, | ||||
$list), | $list), | ||||
array( | array( | ||||
'title' => pht('View Snapshot'), | 'title' => pht('View Snapshot'), | ||||
'device' => true)); | 'device' => true)); | ||||
} | } | ||||
protected function createSnapshotView($snapshot) { | protected function createSnapshotView($snapshot) { | ||||
Show All 12 Lines | $header = id(new PHUIHeaderView()) | ||||
->setHeader(pht('"%s" Snapshot', $snapshot->getName())) | ->setHeader(pht('"%s" Snapshot', $snapshot->getName())) | ||||
->setPolicyObject($snapshot) | ->setPolicyObject($snapshot) | ||||
->setUser($viewer); | ->setUser($viewer); | ||||
$zip_uri = $this->getApplicationURI( | $zip_uri = $this->getApplicationURI( | ||||
"zip@".$snapshot->getName(). | "zip@".$snapshot->getName(). | ||||
"/".$snapshot->getPrimaryFragment()->getPath()); | "/".$snapshot->getPrimaryFragment()->getPath()); | ||||
$can_edit = PhabricatorPolicyFilter::hasCapability( | |||||
$viewer, | |||||
$snapshot, | |||||
PhabricatorPolicyCapability::CAN_EDIT); | |||||
$actions = id(new PhabricatorActionListView()) | $actions = id(new PhabricatorActionListView()) | ||||
->setUser($viewer) | ->setUser($viewer) | ||||
->setObject($snapshot) | ->setObject($snapshot) | ||||
->setObjectURI($snapshot->getURI()); | ->setObjectURI($snapshot->getURI()); | ||||
$actions->addAction( | $actions->addAction( | ||||
id(new PhabricatorActionView()) | id(new PhabricatorActionView()) | ||||
->setName(pht('Download Snapshot as ZIP')) | ->setName(pht('Download Snapshot as ZIP')) | ||||
->setHref($zip_uri) | ->setHref($this->isCorrectlyConfigured() ? $zip_uri : null) | ||||
->setDisabled(false) // TODO: Policy | ->setDisabled(!$this->isCorrectlyConfigured()) | ||||
->setIcon('zip')); | ->setIcon('zip')); | ||||
$actions->addAction( | $actions->addAction( | ||||
id(new PhabricatorActionView()) | id(new PhabricatorActionView()) | ||||
->setName(pht('Delete Snapshot')) | ->setName(pht('Delete Snapshot')) | ||||
->setHref($this->getApplicationURI( | ->setHref($this->getApplicationURI( | ||||
"snapshot/delete/".$snapshot->getID()."/")) | "snapshot/delete/".$snapshot->getID()."/")) | ||||
->setDisabled(!$can_edit) | |||||
->setWorkflow(true) | ->setWorkflow(true) | ||||
->setDisabled(false) // TODO: Policy | |||||
->setIcon('delete')); | ->setIcon('delete')); | ||||
$actions->addAction( | $actions->addAction( | ||||
id(new PhabricatorActionView()) | id(new PhabricatorActionView()) | ||||
->setName(pht('Promote Another Snapshot to Here')) | ->setName(pht('Promote Another Snapshot to Here')) | ||||
->setHref($this->getApplicationURI( | ->setHref($this->getApplicationURI( | ||||
"snapshot/promote/".$snapshot->getID()."/")) | "snapshot/promote/".$snapshot->getID()."/")) | ||||
->setDisabled(!$can_edit) | |||||
->setWorkflow(true) | ->setWorkflow(true) | ||||
->setDisabled(false) // TODO: Policy | |||||
->setIcon('promote')); | ->setIcon('promote')); | ||||
$properties = id(new PHUIPropertyListView()) | $properties = id(new PHUIPropertyListView()) | ||||
->setUser($viewer) | ->setUser($viewer) | ||||
->setObject($snapshot) | ->setObject($snapshot) | ||||
->setActionList($actions); | ->setActionList($actions); | ||||
$properties->addProperty( | $properties->addProperty( | ||||
Show All 11 Lines |