Page MenuHomePhabricator

D15393.id37116.diff
No OneTemporary

D15393.id37116.diff

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 @@
+<?php
+
+abstract class DrydockRepositoryOperationController
+ extends DrydockController {
+
+ public function buildApplicationMenu() {
+ return $this->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 @@
<?php
final class DrydockRepositoryOperationDismissController
- extends DrydockController {
+ extends DrydockRepositoryOperationController {
public function handleRequest(AphrontRequest $request) {
$viewer = $request->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 @@
<?php
final class DrydockRepositoryOperationListController
- extends DrydockController {
+ extends DrydockRepositoryOperationController {
public function shouldAllowPublic() {
return true;
}
public function handleRequest(AphrontRequest $request) {
- $query_key = $request->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 @@
<?php
final class DrydockRepositoryOperationStatusController
- extends DrydockController {
+ extends DrydockRepositoryOperationController {
public function shouldAllowPublic() {
return true;
diff --git a/src/applications/drydock/controller/DrydockRepositoryOperationViewController.php b/src/applications/drydock/controller/DrydockRepositoryOperationViewController.php
--- a/src/applications/drydock/controller/DrydockRepositoryOperationViewController.php
+++ b/src/applications/drydock/controller/DrydockRepositoryOperationViewController.php
@@ -1,7 +1,7 @@
<?php
final class DrydockRepositoryOperationViewController
- extends DrydockController {
+ extends DrydockRepositoryOperationController {
public function shouldAllowPublic() {
return true;
@@ -50,16 +50,14 @@
->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);
}

File Metadata

Mime Type
text/plain
Expires
Mar 22 2025, 5:55 AM (6 w, 6 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7387786
Default Alt Text
D15393.id37116.diff (7 KB)

Event Timeline