Changeset View
Changeset View
Standalone View
Standalone View
src/applications/nuance/controller/NuanceItemEditController.php
| <?php | <?php | ||||
| final class NuanceItemEditController extends NuanceController { | final class NuanceItemEditController extends NuanceController { | ||||
| public function handleRequest(AphrontRequest $request) { | public function handleRequest(AphrontRequest $request) { | ||||
| $viewer = $request->getViewer(); | $viewer = $this->getViewer(); | ||||
| $id = $request->getURIData('id'); | $id = $request->getURIData('id'); | ||||
| if (!$id) { | |||||
| $item = new NuanceItem(); | |||||
| } else { | |||||
| $item = id(new NuanceItemQuery()) | $item = id(new NuanceItemQuery()) | ||||
| ->setViewer($viewer) | ->setViewer($viewer) | ||||
| ->withIDs(array($id)) | ->withIDs(array($id)) | ||||
| ->requireCapabilities( | |||||
| array( | |||||
| PhabricatorPolicyCapability::CAN_VIEW, | |||||
| PhabricatorPolicyCapability::CAN_EDIT, | |||||
| )) | |||||
| ->executeOne(); | ->executeOne(); | ||||
| } | |||||
| if (!$item) { | if (!$item) { | ||||
| return new Aphront404Response(); | return new Aphront404Response(); | ||||
| } | } | ||||
| $title = pht('Item %d', $item->getID()); | |||||
| $crumbs = $this->buildApplicationCrumbs(); | $crumbs = $this->buildApplicationCrumbs(); | ||||
| $title = 'TODO'; | $crumbs->addTextCrumb($title); | ||||
| $crumbs->addTextCrumb(pht('Edit')); | |||||
| $properties = $this->buildPropertyView($item); | |||||
| $actions = $this->buildActionView($item); | |||||
| $properties->setActionList($actions); | |||||
| $box = id(new PHUIObjectBoxView()) | |||||
| ->setHeaderText($title) | |||||
| ->addPropertyList($properties); | |||||
| return $this->buildApplicationPage( | return $this->buildApplicationPage( | ||||
| array( | |||||
| $crumbs, | $crumbs, | ||||
| $box, | |||||
| ), | |||||
| array( | array( | ||||
| 'title' => $title, | 'title' => $title, | ||||
| )); | )); | ||||
| } | } | ||||
| private function buildPropertyView(NuanceItem $item) { | |||||
| $viewer = $this->getViewer(); | |||||
| $properties = id(new PHUIPropertyListView()) | |||||
| ->setUser($viewer) | |||||
| ->setObject($item); | |||||
| $properties->addProperty( | |||||
| pht('Date Created'), | |||||
| phabricator_datetime($item->getDateCreated(), $viewer)); | |||||
| $properties->addProperty( | |||||
| pht('Requestor'), | |||||
| $viewer->renderHandle($item->getRequestorPHID())); | |||||
| $properties->addProperty( | |||||
| pht('Source'), | |||||
| $viewer->renderHandle($item->getSourcePHID())); | |||||
| $source = $item->getSource(); | |||||
| $definition = $source->requireDefinition(); | |||||
| $definition->renderItemEditProperties( | |||||
| $viewer, | |||||
| $item, | |||||
| $properties); | |||||
| return $properties; | |||||
| } | |||||
| private function buildActionView(NuanceItem $item) { | |||||
| $viewer = $this->getViewer(); | |||||
| $id = $item->getID(); | |||||
| $actions = id(new PhabricatorActionListView()) | |||||
| ->setUser($viewer); | |||||
| $actions->addAction( | |||||
| id(new PhabricatorActionView()) | |||||
| ->setName(pht('View Item')) | |||||
| ->setIcon('fa-eye') | |||||
| ->setHref($this->getApplicationURI("item/view/{$id}/"))); | |||||
| return $actions; | |||||
| } | |||||
| } | } | ||||