Path: blob/master/src/applications/nuance/controller/NuanceItemViewController.php
12256 views
<?php12final class NuanceItemViewController 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());17$name = $item->getDisplayName();1819$crumbs = $this->buildApplicationCrumbs();20$crumbs->addTextCrumb(21pht('Items'),22$this->getApplicationURI('item/'));23$crumbs->addTextCrumb($title);24$crumbs->setBorder(true);2526$curtain = $this->buildCurtain($item);27$content = $this->buildContent($item);2829$timeline = $this->buildTransactionTimeline(30$item,31new NuanceItemTransactionQuery());3233$main = array(34$content,35$timeline,36);3738$header = id(new PHUIHeaderView())39->setHeader($name);4041$view = id(new PHUITwoColumnView())42->setHeader($header)43->setCurtain($curtain)44->setMainColumn($main);4546return $this->newPage()47->setTitle($title)48->setCrumbs($crumbs)49->appendChild($view);50}5152private function buildCurtain(NuanceItem $item) {53$viewer = $this->getViewer();54$id = $item->getID();5556$can_edit = PhabricatorPolicyFilter::hasCapability(57$viewer,58$item,59PhabricatorPolicyCapability::CAN_EDIT);6061$curtain = $this->newCurtainView($item);6263$curtain->addAction(64id(new PhabricatorActionView())65->setName(pht('Manage Item'))66->setIcon('fa-cogs')67->setHref($this->getApplicationURI("item/manage/{$id}/")));6869$impl = $item->getImplementation();70$impl->setViewer($viewer);7172foreach ($impl->getItemActions($item) as $action) {73$curtain->addAction($action);74}7576foreach ($impl->getItemCurtainPanels($item) as $panel) {77$curtain->addPanel($panel);78}7980return $curtain;81}8283private function buildContent(NuanceItem $item) {84$viewer = $this->getViewer();85$impl = $item->getImplementation();8687$impl->setViewer($viewer);88return $impl->buildItemView($item);89}9091}929394