Path: blob/master/src/applications/nuance/controller/NuanceSourceViewController.php
12262 views
<?php12final class NuanceSourceViewController3extends NuanceSourceController {45public function handleRequest(AphrontRequest $request) {6$viewer = $this->getViewer();78$source = id(new NuanceSourceQuery())9->setViewer($viewer)10->withIDs(array($request->getURIData('id')))11->executeOne();12if (!$source) {13return new Aphront404Response();14}1516$source_id = $source->getID();1718$header = $this->buildHeaderView($source);19$curtain = $this->buildCurtain($source);20$properties = $this->buildPropertyView($source);2122$title = $source->getName();2324$routing_list = id(new PHUIPropertyListView())25->addProperty(26pht('Default Queue'),27$viewer->renderHandle($source->getDefaultQueuePHID()));2829$crumbs = $this->buildApplicationCrumbs();30$crumbs->addTextCrumb(pht('Sources'), $this->getApplicationURI('source/'));31$crumbs->addTextCrumb($title);32$crumbs->setBorder(true);3334$timeline = $this->buildTransactionTimeline(35$source,36new NuanceSourceTransactionQuery());37$timeline->setShouldTerminate(true);3839$view = id(new PHUITwoColumnView())40->setHeader($header)41->setCurtain($curtain)42->addPropertySection(pht('Details'), $properties)43->addPropertySection(pht('Routing'), $routing_list)44->setMainColumn($timeline);4546return $this->newPage()47->setTitle($title)48->setCrumbs($crumbs)49->appendChild($view);50}5152private function buildHeaderView(NuanceSource $source) {53$viewer = $this->getViewer();5455$header = id(new PHUIHeaderView())56->setUser($viewer)57->setHeader($source->getName())58->setPolicyObject($source);5960return $header;61}6263private function buildCurtain(NuanceSource $source) {64$viewer = $this->getViewer();65$id = $source->getID();6667$actions = id(new PhabricatorActionListView())68->setUser($viewer);6970$can_edit = PhabricatorPolicyFilter::hasCapability(71$viewer,72$source,73PhabricatorPolicyCapability::CAN_EDIT);7475$curtain = $this->newCurtainView($source);7677$curtain->addAction(78id(new PhabricatorActionView())79->setName(pht('Edit Source'))80->setIcon('fa-pencil')81->setHref($this->getApplicationURI("source/edit/{$id}/"))82->setDisabled(!$can_edit)83->setWorkflow(!$can_edit));8485$request = $this->getRequest();86$definition = $source->getDefinition();8788$definition89->setViewer($viewer)90->setSource($source);9192$source_actions = $definition->getSourceViewActions($request);93foreach ($source_actions as $source_action) {94$curtain->addAction($source_action);95}9697return $curtain;98}99100private function buildPropertyView(101NuanceSource $source) {102$viewer = $this->getViewer();103104$properties = id(new PHUIPropertyListView())105->setViewer($viewer);106107$definition = $source->getDefinition();108109$properties->addProperty(110pht('Source Type'),111$definition->getName());112113return $properties;114}115}116117118