Changeset View
Changeset View
Standalone View
Standalone View
src/applications/phlux/controller/PhluxViewController.php
<?php | <?php | ||||
final class PhluxViewController extends PhluxController { | final class PhluxViewController extends PhluxController { | ||||
private $key; | public function handleRequest(AphrontRequest $request) { | ||||
$viewer = $this->getViewer(); | |||||
public function willProcessRequest(array $data) { | $key = $request->getURIData('key'); | ||||
$this->key = $data['key']; | |||||
} | |||||
public function processRequest() { | |||||
$request = $this->getRequest(); | |||||
$user = $request->getUser(); | |||||
$var = id(new PhluxVariableQuery()) | $var = id(new PhluxVariableQuery()) | ||||
->setViewer($user) | ->setViewer($viewer) | ||||
->withKeys(array($this->key)) | ->withKeys(array($key)) | ||||
->executeOne(); | ->executeOne(); | ||||
if (!$var) { | if (!$var) { | ||||
return new Aphront404Response(); | return new Aphront404Response(); | ||||
} | } | ||||
$crumbs = $this->buildApplicationCrumbs(); | $crumbs = $this->buildApplicationCrumbs(); | ||||
$title = $var->getVariableKey(); | $title = $var->getVariableKey(); | ||||
$crumbs->addTextCrumb($title, $request->getRequestURI()); | $crumbs->addTextCrumb($title, $request->getRequestURI()); | ||||
$header = id(new PHUIHeaderView()) | $header = id(new PHUIHeaderView()) | ||||
->setHeader($title) | ->setHeader($title) | ||||
->setUser($user) | ->setUser($viewer) | ||||
->setPolicyObject($var); | ->setPolicyObject($var); | ||||
$actions = id(new PhabricatorActionListView()) | $actions = id(new PhabricatorActionListView()) | ||||
->setUser($user) | ->setUser($viewer) | ||||
->setObjectURI($request->getRequestURI()) | ->setObjectURI($request->getRequestURI()) | ||||
->setObject($var); | ->setObject($var); | ||||
$can_edit = PhabricatorPolicyFilter::hasCapability( | $can_edit = PhabricatorPolicyFilter::hasCapability( | ||||
$user, | $viewer, | ||||
$var, | $var, | ||||
PhabricatorPolicyCapability::CAN_EDIT); | PhabricatorPolicyCapability::CAN_EDIT); | ||||
$actions->addAction( | $actions->addAction( | ||||
id(new PhabricatorActionView()) | id(new PhabricatorActionView()) | ||||
->setIcon('fa-pencil') | ->setIcon('fa-pencil') | ||||
->setName(pht('Edit Variable')) | ->setName(pht('Edit Variable')) | ||||
->setHref($this->getApplicationURI('/edit/'.$var->getVariableKey().'/')) | ->setHref($this->getApplicationURI('/edit/'.$var->getVariableKey().'/')) | ||||
->setDisabled(!$can_edit) | ->setDisabled(!$can_edit) | ||||
->setWorkflow(!$can_edit)); | ->setWorkflow(!$can_edit)); | ||||
$display_value = json_encode($var->getVariableValue()); | $display_value = json_encode($var->getVariableValue()); | ||||
$properties = id(new PHUIPropertyListView()) | $properties = id(new PHUIPropertyListView()) | ||||
->setUser($user) | ->setUser($viewer) | ||||
->setObject($var) | ->setObject($var) | ||||
->setActionList($actions) | ->setActionList($actions) | ||||
->addProperty(pht('Value'), $display_value); | ->addProperty(pht('Value'), $display_value); | ||||
$timeline = $this->buildTransactionTimeline( | $timeline = $this->buildTransactionTimeline( | ||||
$var, | $var, | ||||
new PhluxTransactionQuery()); | new PhluxTransactionQuery()); | ||||
$timeline->setShouldTerminate(true); | $timeline->setShouldTerminate(true); | ||||
Show All 17 Lines |