Path: blob/master/src/applications/nuance/controller/NuanceItemManageController.php
12256 views
<?php12final class NuanceItemManageController extends NuanceController {34public function handleRequest(AphrontRequest $request) {5$viewer = $this->getViewer();6$id = $request->getURIData('id');78$item = id(new NuanceItemQuery())9->setViewer($viewer)10->withIDs(array($id))11->executeOne();12if (!$item) {13return new Aphront404Response();14}1516$title = pht('Item %d', $item->getID());1718$crumbs = $this->buildApplicationCrumbs();19$crumbs->addTextCrumb(20pht('Items'),21$this->getApplicationURI('item/'));22$crumbs->addTextCrumb(23$title,24$item->getURI());25$crumbs->addTextCrumb(pht('Manage'));26$crumbs->setBorder(true);2728$properties = $this->buildPropertyView($item);29$curtain = $this->buildCurtain($item);3031$header = id(new PHUIHeaderView())32->setHeader($title);3334$timeline = $this->buildTransactionTimeline(35$item,36new NuanceItemTransactionQuery());37$timeline->setShouldTerminate(true);3839$view = id(new PHUITwoColumnView())40->setHeader($header)41->setCurtain($curtain)42->addPropertySection(pht('Details'), $properties)43->setMainColumn($timeline);4445return $this->newPage()46->setTitle($title)47->setCrumbs($crumbs)48->appendChild($view);49}5051private function buildPropertyView(NuanceItem $item) {52$viewer = $this->getViewer();5354$properties = id(new PHUIPropertyListView())55->setUser($viewer);5657$properties->addProperty(58pht('Date Created'),59phabricator_datetime($item->getDateCreated(), $viewer));6061$requestor_phid = $item->getRequestorPHID();62if ($requestor_phid) {63$requestor_view = $viewer->renderHandle($requestor_phid);64} else {65$requestor_view = phutil_tag('em', array(), pht('None'));66}67$properties->addProperty(pht('Requestor'), $requestor_view);6869$properties->addProperty(70pht('Source'),71$viewer->renderHandle($item->getSourcePHID()));7273$queue_phid = $item->getQueuePHID();74if ($queue_phid) {75$queue_view = $viewer->renderHandle($queue_phid);76} else {77$queue_view = phutil_tag('em', array(), pht('None'));78}79$properties->addProperty(pht('Queue'), $queue_view);8081$source = $item->getSource();82$definition = $source->getDefinition();8384$definition->renderItemEditProperties(85$viewer,86$item,87$properties);8889return $properties;90}9192private function buildCurtain(NuanceItem $item) {93$viewer = $this->getViewer();94$id = $item->getID();9596$curtain = $this->newCurtainView($item);9798$curtain->addAction(99id(new PhabricatorActionView())100->setName(pht('View Item'))101->setIcon('fa-eye')102->setHref($item->getURI()));103104return $curtain;105}106107108}109110111