Path: blob/master/src/applications/drydock/controller/DrydockRepositoryOperationViewController.php
12256 views
<?php12final class DrydockRepositoryOperationViewController3extends DrydockRepositoryOperationController {45public function shouldAllowPublic() {6return true;7}89public function handleRequest(AphrontRequest $request) {10$viewer = $request->getViewer();11$id = $request->getURIData('id');1213$operation = id(new DrydockRepositoryOperationQuery())14->setViewer($viewer)15->withIDs(array($id))16->executeOne();17if (!$operation) {18return new Aphront404Response();19}2021$id = $operation->getID();22$title = pht('Repository Operation %d', $id);2324$header = id(new PHUIHeaderView())25->setHeader($title)26->setUser($viewer)27->setPolicyObject($operation)28->setHeaderIcon('fa-fighter-jet');2930$state = $operation->getOperationState();31$icon = DrydockRepositoryOperation::getOperationStateIcon($state);32$name = DrydockRepositoryOperation::getOperationStateName($state);33$header->setStatus($icon, null, $name);3435$curtain = $this->buildCurtain($operation);36$properties = $this->buildPropertyListView($operation);3738$crumbs = $this->buildApplicationCrumbs();39$crumbs->addTextCrumb(40pht('Operations'),41$this->getApplicationURI('operation/'));42$crumbs->addTextCrumb($title);43$crumbs->setBorder(true);4445$status_view = id(new DrydockRepositoryOperationStatusView())46->setUser($viewer)47->setOperation($operation);4849$log_query = id(new DrydockLogQuery())50->withOperationPHIDs(array($operation->getPHID()));5152$log_table = $this->buildLogTable($log_query)53->setHideOperations(true);5455$logs = $this->buildLogBox(56$log_table,57$this->getApplicationURI("operation/{$id}/logs/query/all/"));5859$view = id(new PHUITwoColumnView())60->setHeader($header)61->setCurtain($curtain)62->addPropertySection(pht('Properties'), $properties)63->setMainColumn(64array(65$status_view,66$logs,67));6869return $this->newPage()70->setTitle($title)71->setCrumbs($crumbs)72->appendChild(73array(74$view,75));76}7778private function buildCurtain(DrydockRepositoryOperation $operation) {79$viewer = $this->getViewer();80$id = $operation->getID();8182$curtain = $this->newCurtainView($operation);8384return $curtain;85}8687private function buildPropertyListView(88DrydockRepositoryOperation $operation) {8990$viewer = $this->getViewer();9192$view = new PHUIPropertyListView();93$view->addProperty(94pht('Repository'),95$viewer->renderHandle($operation->getRepositoryPHID()));9697$view->addProperty(98pht('Object'),99$viewer->renderHandle($operation->getObjectPHID()));100101$lease_phid = $operation->getWorkingCopyLeasePHID();102if ($lease_phid) {103$lease_display = $viewer->renderHandle($lease_phid);104} else {105$lease_display = phutil_tag('em', array(), pht('None'));106}107108$view->addProperty(pht('Working Copy'), $lease_display);109110return $view;111}112113}114115116