diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -939,6 +939,7 @@ 'DrydockObjectAuthorizationView' => 'applications/drydock/view/DrydockObjectAuthorizationView.php', 'DrydockQuery' => 'applications/drydock/query/DrydockQuery.php', 'DrydockRepositoryOperation' => 'applications/drydock/storage/DrydockRepositoryOperation.php', + 'DrydockRepositoryOperationController' => 'applications/drydock/controller/DrydockRepositoryOperationController.php', 'DrydockRepositoryOperationDismissController' => 'applications/drydock/controller/DrydockRepositoryOperationDismissController.php', 'DrydockRepositoryOperationListController' => 'applications/drydock/controller/DrydockRepositoryOperationListController.php', 'DrydockRepositoryOperationPHIDType' => 'applications/drydock/phid/DrydockRepositoryOperationPHIDType.php', @@ -5066,16 +5067,17 @@ 'DrydockDAO', 'PhabricatorPolicyInterface', ), - 'DrydockRepositoryOperationDismissController' => 'DrydockController', - 'DrydockRepositoryOperationListController' => 'DrydockController', + 'DrydockRepositoryOperationController' => 'DrydockController', + 'DrydockRepositoryOperationDismissController' => 'DrydockRepositoryOperationController', + 'DrydockRepositoryOperationListController' => 'DrydockRepositoryOperationController', 'DrydockRepositoryOperationPHIDType' => 'PhabricatorPHIDType', 'DrydockRepositoryOperationQuery' => 'DrydockQuery', 'DrydockRepositoryOperationSearchEngine' => 'PhabricatorApplicationSearchEngine', - 'DrydockRepositoryOperationStatusController' => 'DrydockController', + 'DrydockRepositoryOperationStatusController' => 'DrydockRepositoryOperationController', 'DrydockRepositoryOperationStatusView' => 'AphrontView', 'DrydockRepositoryOperationType' => 'Phobject', 'DrydockRepositoryOperationUpdateWorker' => 'DrydockWorker', - 'DrydockRepositoryOperationViewController' => 'DrydockController', + 'DrydockRepositoryOperationViewController' => 'DrydockRepositoryOperationController', 'DrydockResource' => array( 'DrydockDAO', 'PhabricatorPolicyInterface', diff --git a/src/applications/drydock/controller/DrydockRepositoryOperationController.php b/src/applications/drydock/controller/DrydockRepositoryOperationController.php new file mode 100644 --- /dev/null +++ b/src/applications/drydock/controller/DrydockRepositoryOperationController.php @@ -0,0 +1,11 @@ +newApplicationMenu() + ->setSearchEngine(new DrydockRepositoryOperationSearchEngine()); + } + +} diff --git a/src/applications/drydock/controller/DrydockRepositoryOperationDismissController.php b/src/applications/drydock/controller/DrydockRepositoryOperationDismissController.php --- a/src/applications/drydock/controller/DrydockRepositoryOperationDismissController.php +++ b/src/applications/drydock/controller/DrydockRepositoryOperationDismissController.php @@ -1,7 +1,7 @@ getViewer(); diff --git a/src/applications/drydock/controller/DrydockRepositoryOperationListController.php b/src/applications/drydock/controller/DrydockRepositoryOperationListController.php --- a/src/applications/drydock/controller/DrydockRepositoryOperationListController.php +++ b/src/applications/drydock/controller/DrydockRepositoryOperationListController.php @@ -1,37 +1,16 @@ getURIData('queryKey'); - - $engine = new DrydockRepositoryOperationSearchEngine(); - - $controller = id(new PhabricatorApplicationSearchController()) - ->setQueryKey($query_key) - ->setSearchEngine($engine) - ->setNavigation($this->buildSideNavView()); - - return $this->delegateToController($controller); - } - - public function buildSideNavView() { - $nav = new AphrontSideNavFilterView(); - $nav->setBaseURI(new PhutilURI($this->getApplicationURI())); - - $engine = id(new DrydockRepositoryOperationSearchEngine()) - ->setViewer($this->getViewer()); - - $engine->addNavigationItems($nav->getMenu()); - - $nav->selectFilter(null); - - return $nav; + return id(new DrydockRepositoryOperationSearchEngine()) + ->setController($this) + ->buildResponse(); } } diff --git a/src/applications/drydock/controller/DrydockRepositoryOperationStatusController.php b/src/applications/drydock/controller/DrydockRepositoryOperationStatusController.php --- a/src/applications/drydock/controller/DrydockRepositoryOperationStatusController.php +++ b/src/applications/drydock/controller/DrydockRepositoryOperationStatusController.php @@ -1,7 +1,7 @@ setUser($viewer) ->setOperation($operation); - return $this->buildApplicationPage( - array( - $crumbs, - $object_box, - $status_view, - ), - array( - 'title' => $title, - )); - + return $this->newPage() + ->setTitle($title) + ->setCrumbs($crumbs) + ->appendChild( + array( + $object_box, + $status_view, + )); } private function buildActionListView(DrydockRepositoryOperation $operation) { diff --git a/src/applications/drydock/query/DrydockRepositoryOperationSearchEngine.php b/src/applications/drydock/query/DrydockRepositoryOperationSearchEngine.php --- a/src/applications/drydock/query/DrydockRepositoryOperationSearchEngine.php +++ b/src/applications/drydock/query/DrydockRepositoryOperationSearchEngine.php @@ -70,7 +70,8 @@ $icon = DrydockRepositoryOperation::getOperationStateIcon($state); $name = DrydockRepositoryOperation::getOperationStateName($state); - $item->addIcon($icon, $name); + $item->setStatusIcon($icon, $name); + $item->addByline( array( pht('Via:'), @@ -78,13 +79,14 @@ $viewer->renderHandle($operation->getAuthorPHID()), )); - $item->addAttribute( - $viewer->renderHandle( - $operation->getObjectPHID())); + $object_phid = $operation->getObjectPHID(); + $repository_phid = $operation->getRepositoryPHID(); + + $item->addAttribute($viewer->renderHandle($object_phid)); - $item->addAttribute( - $viewer->renderHandle( - $operation->getRepositoryPHID())); + if ($repository_phid !== $object_phid) { + $item->addAttribute($viewer->renderHandle($repository_phid)); + } $view->addItem($item); }