Page MenuHomePhabricator

D13332.id32261.diff
No OneTemporary

D13332.id32261.diff

diff --git a/resources/celerity/map.php b/resources/celerity/map.php
--- a/resources/celerity/map.php
+++ b/resources/celerity/map.php
@@ -7,7 +7,7 @@
*/
return array(
'names' => array(
- 'core.pkg.css' => 'df3a0e9c',
+ 'core.pkg.css' => '96a7378c',
'core.pkg.js' => '41f5edc5',
'darkconsole.pkg.js' => 'e7393ebb',
'differential.pkg.css' => 'fe951924',
@@ -25,7 +25,7 @@
'rsrc/css/aphront/notification.css' => '9c279160',
'rsrc/css/aphront/panel-view.css' => '8427b78d',
'rsrc/css/aphront/phabricator-nav-view.css' => '0ecd30a1',
- 'rsrc/css/aphront/table-view.css' => '4f2ed0bf',
+ 'rsrc/css/aphront/table-view.css' => 'e3632cc9',
'rsrc/css/aphront/tokenizer.css' => '04875312',
'rsrc/css/aphront/tooltip.css' => '7672b60f',
'rsrc/css/aphront/two-column.css' => '16ab3ad2',
@@ -34,7 +34,7 @@
'rsrc/css/application/almanac/almanac.css' => 'dbb9b3af',
'rsrc/css/application/auth/auth.css' => '44975d4b',
'rsrc/css/application/base/main-menu-view.css' => '44b4a289',
- 'rsrc/css/application/base/notification-menu.css' => '713df25a',
+ 'rsrc/css/application/base/notification-menu.css' => 'f31c0bde',
'rsrc/css/application/base/phabricator-application-launch-view.css' => '9a233ed6',
'rsrc/css/application/base/phui-theme.css' => '1ccdcc84',
'rsrc/css/application/base/standard-page-view.css' => '43045fb4',
@@ -488,7 +488,7 @@
'aphront-list-filter-view-css' => 'aa5ffcb9',
'aphront-multi-column-view-css' => 'fd18389d',
'aphront-panel-view-css' => '8427b78d',
- 'aphront-table-view-css' => '4f2ed0bf',
+ 'aphront-table-view-css' => 'e3632cc9',
'aphront-tokenizer-control-css' => '04875312',
'aphront-tooltip-css' => '7672b60f',
'aphront-two-column-view-css' => '16ab3ad2',
@@ -726,7 +726,7 @@
'phabricator-nav-view-css' => '0ecd30a1',
'phabricator-notification' => '0c6946e7',
'phabricator-notification-css' => '9c279160',
- 'phabricator-notification-menu-css' => '713df25a',
+ 'phabricator-notification-menu-css' => 'f31c0bde',
'phabricator-object-selector-css' => '029a133d',
'phabricator-phtize' => 'd254d646',
'phabricator-prefab' => '6920d200',
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
@@ -1340,6 +1340,7 @@
'PhabricatorApplicationSearchController' => 'applications/search/controller/PhabricatorApplicationSearchController.php',
'PhabricatorApplicationSearchEngine' => 'applications/search/engine/PhabricatorApplicationSearchEngine.php',
'PhabricatorApplicationSearchEngineTestCase' => 'applications/search/engine/__tests__/PhabricatorApplicationSearchEngineTestCase.php',
+ 'PhabricatorApplicationSearchResultView' => 'applications/search/view/PhabricatorApplicationSearchResultView.php',
'PhabricatorApplicationSearchResultsControllerInterface' => 'applications/search/interface/PhabricatorApplicationSearchResultsControllerInterface.php',
'PhabricatorApplicationStatusView' => 'applications/meta/view/PhabricatorApplicationStatusView.php',
'PhabricatorApplicationTestCase' => 'applications/base/__tests__/PhabricatorApplicationTestCase.php',
@@ -4845,6 +4846,7 @@
'PhabricatorApplicationSearchController' => 'PhabricatorSearchBaseController',
'PhabricatorApplicationSearchEngine' => 'Phobject',
'PhabricatorApplicationSearchEngineTestCase' => 'PhabricatorTestCase',
+ 'PhabricatorApplicationSearchResultView' => 'Phobject',
'PhabricatorApplicationStatusView' => 'AphrontView',
'PhabricatorApplicationTestCase' => 'PhabricatorTestCase',
'PhabricatorApplicationTransaction' => array(
diff --git a/src/applications/almanac/query/AlmanacDeviceSearchEngine.php b/src/applications/almanac/query/AlmanacDeviceSearchEngine.php
--- a/src/applications/almanac/query/AlmanacDeviceSearchEngine.php
+++ b/src/applications/almanac/query/AlmanacDeviceSearchEngine.php
@@ -78,7 +78,11 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No devices found.'));
+
+ return $result;
}
}
diff --git a/src/applications/almanac/query/AlmanacNetworkSearchEngine.php b/src/applications/almanac/query/AlmanacNetworkSearchEngine.php
--- a/src/applications/almanac/query/AlmanacNetworkSearchEngine.php
+++ b/src/applications/almanac/query/AlmanacNetworkSearchEngine.php
@@ -80,6 +80,10 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No networks found.'));
+
+ return $result;
}
}
diff --git a/src/applications/almanac/query/AlmanacServiceSearchEngine.php b/src/applications/almanac/query/AlmanacServiceSearchEngine.php
--- a/src/applications/almanac/query/AlmanacServiceSearchEngine.php
+++ b/src/applications/almanac/query/AlmanacServiceSearchEngine.php
@@ -90,6 +90,10 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No services found.'));
+
+ return $result;
}
}
diff --git a/src/applications/audit/query/PhabricatorCommitSearchEngine.php b/src/applications/audit/query/PhabricatorCommitSearchEngine.php
--- a/src/applications/audit/query/PhabricatorCommitSearchEngine.php
+++ b/src/applications/audit/query/PhabricatorCommitSearchEngine.php
@@ -206,8 +206,12 @@
}
$view->setHandles($handles);
+ $list = $view->buildList();
- return $view->buildList();
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setContent($list);
+
+ return $result;
}
}
diff --git a/src/applications/auth/query/PhabricatorAuthInviteSearchEngine.php b/src/applications/auth/query/PhabricatorAuthInviteSearchEngine.php
--- a/src/applications/auth/query/PhabricatorAuthInviteSearchEngine.php
+++ b/src/applications/auth/query/PhabricatorAuthInviteSearchEngine.php
@@ -102,8 +102,9 @@
'right',
));
- return id(new PHUIObjectBoxView())
- ->setHeaderText(pht('Email Invitations'))
- ->setTable($table);
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setTable($table);
+
+ return $result;
}
}
diff --git a/src/applications/calendar/query/PhabricatorCalendarEventSearchEngine.php b/src/applications/calendar/query/PhabricatorCalendarEventSearchEngine.php
--- a/src/applications/calendar/query/PhabricatorCalendarEventSearchEngine.php
+++ b/src/applications/calendar/query/PhabricatorCalendarEventSearchEngine.php
@@ -328,7 +328,11 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No events found.'));
+
+ return $result;
}
private function buildCalendarView(
@@ -385,7 +389,10 @@
$month_view->setBrowseURI(
$this->getURI('query/'.$query->getQueryKey().'/'));
- return $month_view;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setContent($month_view);
+
+ return $result;
}
private function buildCalendarDayView(
@@ -436,7 +443,10 @@
$day_view->setBrowseURI(
$this->getURI('query/'.$query->getQueryKey().'/'));
- return $day_view;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setContent($day_view);
+
+ return $result;
}
private function getDisplayYearAndMonthAndDay(
diff --git a/src/applications/conduit/query/PhabricatorConduitSearchEngine.php b/src/applications/conduit/query/PhabricatorConduitSearchEngine.php
--- a/src/applications/conduit/query/PhabricatorConduitSearchEngine.php
+++ b/src/applications/conduit/query/PhabricatorConduitSearchEngine.php
@@ -196,7 +196,10 @@
$out[] = $list;
}
- return $out;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setContent($out);
+
+ return $result;
}
}
diff --git a/src/applications/conpherence/query/ConpherenceThreadSearchEngine.php b/src/applications/conpherence/query/ConpherenceThreadSearchEngine.php
--- a/src/applications/conpherence/query/ConpherenceThreadSearchEngine.php
+++ b/src/applications/conpherence/query/ConpherenceThreadSearchEngine.php
@@ -253,7 +253,11 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No threads found.'));
+
+ return $result;
}
private function getTypeOptions() {
diff --git a/src/applications/countdown/query/PhabricatorCountdownSearchEngine.php b/src/applications/countdown/query/PhabricatorCountdownSearchEngine.php
--- a/src/applications/countdown/query/PhabricatorCountdownSearchEngine.php
+++ b/src/applications/countdown/query/PhabricatorCountdownSearchEngine.php
@@ -140,7 +140,11 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No countdowns found.'));
+
+ return $result;
}
}
diff --git a/src/applications/dashboard/engine/PhabricatorDashboardPanelRenderingEngine.php b/src/applications/dashboard/engine/PhabricatorDashboardPanelRenderingEngine.php
--- a/src/applications/dashboard/engine/PhabricatorDashboardPanelRenderingEngine.php
+++ b/src/applications/dashboard/engine/PhabricatorDashboardPanelRenderingEngine.php
@@ -185,9 +185,25 @@
if (!$id) {
$id = celerity_generate_unique_node_id();
}
- $box = id(new PHUIObjectBoxView())
- ->setHeader($header)
- ->appendChild($content)
+
+ $box = new PHUIObjectBoxView();
+
+ $interface = 'PhabricatorApplicationSearchResultView';
+ if ($content instanceof $interface) {
+ if ($content->getObjectList()) {
+ $box->setObjectList($content->getObjectList());
+ }
+ if ($content->getTable()) {
+ $box->setTable($content->getTable());
+ }
+ if ($content->getContent()) {
+ $box->appendChild($content->getContent());
+ }
+ } else {
+ $box->appendChild($content);
+ }
+
+ $box->setHeader($header)
->setID($id)
->addSigil('dashboard-panel')
->setMetadata(array('objectPHID' => $panel->getPHID()));
diff --git a/src/applications/dashboard/query/PhabricatorDashboardPanelSearchEngine.php b/src/applications/dashboard/query/PhabricatorDashboardPanelSearchEngine.php
--- a/src/applications/dashboard/query/PhabricatorDashboardPanelSearchEngine.php
+++ b/src/applications/dashboard/query/PhabricatorDashboardPanelSearchEngine.php
@@ -132,7 +132,11 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No panels found.'));
+
+ return $result;
}
}
diff --git a/src/applications/dashboard/query/PhabricatorDashboardSearchEngine.php b/src/applications/dashboard/query/PhabricatorDashboardSearchEngine.php
--- a/src/applications/dashboard/query/PhabricatorDashboardSearchEngine.php
+++ b/src/applications/dashboard/query/PhabricatorDashboardSearchEngine.php
@@ -104,7 +104,12 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No dashboards found.'));
+
+ return $result;
+
}
}
diff --git a/src/applications/differential/query/DifferentialRevisionSearchEngine.php b/src/applications/differential/query/DifferentialRevisionSearchEngine.php
--- a/src/applications/differential/query/DifferentialRevisionSearchEngine.php
+++ b/src/applications/differential/query/DifferentialRevisionSearchEngine.php
@@ -323,10 +323,15 @@
if (count($views) == 1) {
// Reduce this to a PHUIObjectItemListView so we can get the free
// support from ApplicationSearch.
- return head($views)->render();
+ $list = head($views)->render();
} else {
- return $views;
+ $list = $views;
}
+
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setContent($list);
+
+ return $result;
}
}
diff --git a/src/applications/diviner/query/DivinerAtomSearchEngine.php b/src/applications/diviner/query/DivinerAtomSearchEngine.php
--- a/src/applications/diviner/query/DivinerAtomSearchEngine.php
+++ b/src/applications/diviner/query/DivinerAtomSearchEngine.php
@@ -116,7 +116,11 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No books found.'));
+
+ return $result;
}
}
diff --git a/src/applications/drydock/query/DrydockBlueprintSearchEngine.php b/src/applications/drydock/query/DrydockBlueprintSearchEngine.php
--- a/src/applications/drydock/query/DrydockBlueprintSearchEngine.php
+++ b/src/applications/drydock/query/DrydockBlueprintSearchEngine.php
@@ -69,7 +69,11 @@
$view->addItem($item);
}
- return $view;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($view);
+ $result->setNoDataString(pht('No blueprints found.'));
+
+ return $result;
}
}
diff --git a/src/applications/drydock/query/DrydockLeaseSearchEngine.php b/src/applications/drydock/query/DrydockLeaseSearchEngine.php
--- a/src/applications/drydock/query/DrydockLeaseSearchEngine.php
+++ b/src/applications/drydock/query/DrydockLeaseSearchEngine.php
@@ -89,10 +89,14 @@
PhabricatorSavedQuery $saved,
array $handles) {
- return id(new DrydockLeaseListView())
+ $list = id(new DrydockLeaseListView())
->setUser($this->requireViewer())
- ->setLeases($leases)
- ->render();
+ ->setLeases($leases);
+
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setTable($list);
+
+ return $result;
}
}
diff --git a/src/applications/drydock/query/DrydockLogSearchEngine.php b/src/applications/drydock/query/DrydockLogSearchEngine.php
--- a/src/applications/drydock/query/DrydockLogSearchEngine.php
+++ b/src/applications/drydock/query/DrydockLogSearchEngine.php
@@ -49,10 +49,14 @@
PhabricatorSavedQuery $query,
array $handles) {
- return id(new DrydockLogListView())
+ $list = id(new DrydockLogListView())
->setUser($this->requireViewer())
- ->setLogs($logs)
- ->render();
+ ->setLogs($logs);
+
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setTable($list);
+
+ return $result;
}
}
diff --git a/src/applications/drydock/query/DrydockResourceSearchEngine.php b/src/applications/drydock/query/DrydockResourceSearchEngine.php
--- a/src/applications/drydock/query/DrydockResourceSearchEngine.php
+++ b/src/applications/drydock/query/DrydockResourceSearchEngine.php
@@ -87,10 +87,14 @@
PhabricatorSavedQuery $query,
array $handles) {
- return id(new DrydockResourceListView())
+ $list = id(new DrydockResourceListView())
->setUser($this->requireViewer())
- ->setResources($resources)
- ->render();
+ ->setResources($resources);
+
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setTable($list);
+
+ return $result;
}
}
diff --git a/src/applications/feed/query/PhabricatorFeedSearchEngine.php b/src/applications/feed/query/PhabricatorFeedSearchEngine.php
--- a/src/applications/feed/query/PhabricatorFeedSearchEngine.php
+++ b/src/applications/feed/query/PhabricatorFeedSearchEngine.php
@@ -139,7 +139,12 @@
$builder->setUser($this->requireViewer());
$view = $builder->buildView();
- return phutil_tag_div('phabricator-feed-frame', $view);
+ $list = phutil_tag_div('phabricator-feed-frame', $view);
+
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setContent($list);
+
+ return $result;
}
}
diff --git a/src/applications/files/query/PhabricatorFileSearchEngine.php b/src/applications/files/query/PhabricatorFileSearchEngine.php
--- a/src/applications/files/query/PhabricatorFileSearchEngine.php
+++ b/src/applications/files/query/PhabricatorFileSearchEngine.php
@@ -171,7 +171,11 @@
$list_view->appendChild(id(new PhabricatorGlobalUploadTargetView())
->setUser($viewer));
- return $list_view;
+
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setContent($list_view);
+
+ return $result;
}
}
diff --git a/src/applications/flag/query/PhabricatorFlagSearchEngine.php b/src/applications/flag/query/PhabricatorFlagSearchEngine.php
--- a/src/applications/flag/query/PhabricatorFlagSearchEngine.php
+++ b/src/applications/flag/query/PhabricatorFlagSearchEngine.php
@@ -180,7 +180,12 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No flags found.'));
+
+ return $result;
+
}
diff --git a/src/applications/fund/query/FundBackerSearchEngine.php b/src/applications/fund/query/FundBackerSearchEngine.php
--- a/src/applications/fund/query/FundBackerSearchEngine.php
+++ b/src/applications/fund/query/FundBackerSearchEngine.php
@@ -141,7 +141,10 @@
'right',
));
- return $table;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setTable($table);
+
+ return $result;
}
}
diff --git a/src/applications/fund/query/FundInitiativeSearchEngine.php b/src/applications/fund/query/FundInitiativeSearchEngine.php
--- a/src/applications/fund/query/FundInitiativeSearchEngine.php
+++ b/src/applications/fund/query/FundInitiativeSearchEngine.php
@@ -163,6 +163,12 @@
$list->addItem($item);
}
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No initiatives found.'));
+
+ return $result;
+
return $list;
}
diff --git a/src/applications/harbormaster/query/HarbormasterBuildPlanSearchEngine.php b/src/applications/harbormaster/query/HarbormasterBuildPlanSearchEngine.php
--- a/src/applications/harbormaster/query/HarbormasterBuildPlanSearchEngine.php
+++ b/src/applications/harbormaster/query/HarbormasterBuildPlanSearchEngine.php
@@ -93,7 +93,12 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No build plans found.'));
+
+ return $result;
+
}
}
diff --git a/src/applications/harbormaster/query/HarbormasterBuildableSearchEngine.php b/src/applications/harbormaster/query/HarbormasterBuildableSearchEngine.php
--- a/src/applications/harbormaster/query/HarbormasterBuildableSearchEngine.php
+++ b/src/applications/harbormaster/query/HarbormasterBuildableSearchEngine.php
@@ -216,7 +216,11 @@
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No buildables found.'));
+
+ return $result;
}
}
diff --git a/src/applications/herald/query/HeraldRuleSearchEngine.php b/src/applications/herald/query/HeraldRuleSearchEngine.php
--- a/src/applications/herald/query/HeraldRuleSearchEngine.php
+++ b/src/applications/herald/query/HeraldRuleSearchEngine.php
@@ -209,7 +209,12 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No rules found.'));
+
+ return $result;
+
}
}
diff --git a/src/applications/herald/query/HeraldTranscriptSearchEngine.php b/src/applications/herald/query/HeraldTranscriptSearchEngine.php
--- a/src/applications/herald/query/HeraldTranscriptSearchEngine.php
+++ b/src/applications/herald/query/HeraldTranscriptSearchEngine.php
@@ -133,7 +133,11 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No transcripts found.'));
+
+ return $result;
}
}
diff --git a/src/applications/legalpad/query/LegalpadDocumentSearchEngine.php b/src/applications/legalpad/query/LegalpadDocumentSearchEngine.php
--- a/src/applications/legalpad/query/LegalpadDocumentSearchEngine.php
+++ b/src/applications/legalpad/query/LegalpadDocumentSearchEngine.php
@@ -209,7 +209,11 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No documents found.'));
+
+ return $result;
}
}
diff --git a/src/applications/legalpad/query/LegalpadDocumentSignatureSearchEngine.php b/src/applications/legalpad/query/LegalpadDocumentSignatureSearchEngine.php
--- a/src/applications/legalpad/query/LegalpadDocumentSignatureSearchEngine.php
+++ b/src/applications/legalpad/query/LegalpadDocumentSignatureSearchEngine.php
@@ -267,18 +267,17 @@
'right',
));
- // TODO redesign-2015 : Talk to epriestley about 'correct' way to implelment
- /* if ($this->document) {
+ $button = null;
+ if ($this->document) {
$document_id = $this->document->getID();
- $header->addActionLink(
- id(new PHUIButtonView())
- ->setText(pht('Add Signature Exemption'))
+ $button = id(new PHUIButtonView())
+ ->setText(pht('Add Exemption'))
->setTag('a')
->setHref($this->getApplicationURI('addsignature/'.$document_id.'/'))
->setWorkflow(true)
- ->setIcon(id(new PHUIIconView())->setIconFont('fa-pencil')));
- }*/
+ ->setIcon(id(new PHUIIconView())->setIconFont('fa-pencil'));
+ }
if (!$this->document) {
$table->setNotice(
@@ -286,7 +285,14 @@
'documents you have permission to edit.'));
}
- return $table;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setTable($table);
+ if ($button) {
+ $result->addAction($button);
+ }
+
+ return $result;
+
}
private function renderIcon($icon, $color, $title) {
diff --git a/src/applications/macro/query/PhabricatorMacroSearchEngine.php b/src/applications/macro/query/PhabricatorMacroSearchEngine.php
--- a/src/applications/macro/query/PhabricatorMacroSearchEngine.php
+++ b/src/applications/macro/query/PhabricatorMacroSearchEngine.php
@@ -181,7 +181,10 @@
$pinboard->addItem($item);
}
- return $pinboard;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setContent($pinboard);
+
+ return $result;
}
}
diff --git a/src/applications/maniphest/query/ManiphestTaskSearchEngine.php b/src/applications/maniphest/query/ManiphestTaskSearchEngine.php
--- a/src/applications/maniphest/query/ManiphestTaskSearchEngine.php
+++ b/src/applications/maniphest/query/ManiphestTaskSearchEngine.php
@@ -316,13 +316,18 @@
ManiphestBulkEditCapability::CAPABILITY);
}
- return id(new ManiphestTaskResultListView())
+ $list = id(new ManiphestTaskResultListView())
->setUser($viewer)
->setTasks($tasks)
->setSavedQuery($saved)
->setCanEditPriority($can_edit_priority)
->setCanBatchEdit($can_bulk_edit)
->setShowBatchControls($this->showBatchControls);
+
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setContent($list);
+
+ return $result;
}
protected function willUseSavedQuery(PhabricatorSavedQuery $saved) {
diff --git a/src/applications/meta/query/PhabricatorAppSearchEngine.php b/src/applications/meta/query/PhabricatorAppSearchEngine.php
--- a/src/applications/meta/query/PhabricatorAppSearchEngine.php
+++ b/src/applications/meta/query/PhabricatorAppSearchEngine.php
@@ -267,7 +267,10 @@
$results[] = $list;
}
- return $results;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setContent($results);
+
+ return $result;
}
}
diff --git a/src/applications/notification/query/PhabricatorNotificationSearchEngine.php b/src/applications/notification/query/PhabricatorNotificationSearchEngine.php
--- a/src/applications/notification/query/PhabricatorNotificationSearchEngine.php
+++ b/src/applications/notification/query/PhabricatorNotificationSearchEngine.php
@@ -127,13 +127,11 @@
->addClass('phabricator-notification-list')
->appendChild($view);
- $notif_header = id(new PHUIHeaderView())
- ->setHeader($header)
- ->addActionLink($button);
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->addAction($button);
+ $result->setContent($view);
- return id(new PHUIObjectBoxView())
- ->setHeader($notif_header)
- ->appendChild($view);
+ return $result;
}
public function shouldUseOffsetPaging() {
diff --git a/src/applications/nuance/query/NuanceQueueSearchEngine.php b/src/applications/nuance/query/NuanceQueueSearchEngine.php
--- a/src/applications/nuance/query/NuanceQueueSearchEngine.php
+++ b/src/applications/nuance/query/NuanceQueueSearchEngine.php
@@ -69,7 +69,11 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No queues found.'));
+
+ return $result;
}
}
diff --git a/src/applications/nuance/query/NuanceSourceSearchEngine.php b/src/applications/nuance/query/NuanceSourceSearchEngine.php
--- a/src/applications/nuance/query/NuanceSourceSearchEngine.php
+++ b/src/applications/nuance/query/NuanceSourceSearchEngine.php
@@ -72,7 +72,11 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No sources found.'));
+
+ return $result;
}
}
diff --git a/src/applications/oauthserver/query/PhabricatorOAuthServerClientSearchEngine.php b/src/applications/oauthserver/query/PhabricatorOAuthServerClientSearchEngine.php
--- a/src/applications/oauthserver/query/PhabricatorOAuthServerClientSearchEngine.php
+++ b/src/applications/oauthserver/query/PhabricatorOAuthServerClientSearchEngine.php
@@ -108,7 +108,11 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No clients found.'));
+
+ return $result;
}
}
diff --git a/src/applications/passphrase/query/PassphraseCredentialSearchEngine.php b/src/applications/passphrase/query/PassphraseCredentialSearchEngine.php
--- a/src/applications/passphrase/query/PassphraseCredentialSearchEngine.php
+++ b/src/applications/passphrase/query/PassphraseCredentialSearchEngine.php
@@ -123,7 +123,11 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No credentials found.'));
+
+ return $result;
}
}
diff --git a/src/applications/paste/query/PhabricatorPasteSearchEngine.php b/src/applications/paste/query/PhabricatorPasteSearchEngine.php
--- a/src/applications/paste/query/PhabricatorPasteSearchEngine.php
+++ b/src/applications/paste/query/PhabricatorPasteSearchEngine.php
@@ -160,6 +160,10 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No pastes found.'));
+
+ return $result;
}
}
diff --git a/src/applications/people/query/PhabricatorPeopleLogSearchEngine.php b/src/applications/people/query/PhabricatorPeopleLogSearchEngine.php
--- a/src/applications/people/query/PhabricatorPeopleLogSearchEngine.php
+++ b/src/applications/people/query/PhabricatorPeopleLogSearchEngine.php
@@ -186,6 +186,9 @@
$table->setSearchBaseURI($this->getApplicationURI('logs/'));
}
- return $table;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setTable($table);
+
+ return $result;
}
}
diff --git a/src/applications/people/query/PhabricatorPeopleSearchEngine.php b/src/applications/people/query/PhabricatorPeopleSearchEngine.php
--- a/src/applications/people/query/PhabricatorPeopleSearchEngine.php
+++ b/src/applications/people/query/PhabricatorPeopleSearchEngine.php
@@ -247,7 +247,11 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No accounts found.'));
+
+ return $result;
}
}
diff --git a/src/applications/pholio/query/PholioMockSearchEngine.php b/src/applications/pholio/query/PholioMockSearchEngine.php
--- a/src/applications/pholio/query/PholioMockSearchEngine.php
+++ b/src/applications/pholio/query/PholioMockSearchEngine.php
@@ -124,7 +124,10 @@
$board->addItem($item);
}
- return $board;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setContent($board);
+
+ return $result;
}
}
diff --git a/src/applications/phortune/controller/PhortuneMerchantViewController.php b/src/applications/phortune/controller/PhortuneMerchantViewController.php
--- a/src/applications/phortune/controller/PhortuneMerchantViewController.php
+++ b/src/applications/phortune/controller/PhortuneMerchantViewController.php
@@ -30,7 +30,6 @@
$merchant->getName());
$header = id(new PHUIHeaderView())
- ->setObjectName(pht('Merchant %d', $merchant->getID()))
->setHeader($merchant->getName())
->setUser($viewer)
->setPolicyObject($merchant);
diff --git a/src/applications/phortune/query/PhortuneCartSearchEngine.php b/src/applications/phortune/query/PhortuneCartSearchEngine.php
--- a/src/applications/phortune/query/PhortuneCartSearchEngine.php
+++ b/src/applications/phortune/query/PhortuneCartSearchEngine.php
@@ -228,6 +228,9 @@
}
$table->setNotice($notice);
- return $table;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setTable($table);
+
+ return $result;
}
}
diff --git a/src/applications/phortune/query/PhortuneChargeSearchEngine.php b/src/applications/phortune/query/PhortuneChargeSearchEngine.php
--- a/src/applications/phortune/query/PhortuneChargeSearchEngine.php
+++ b/src/applications/phortune/query/PhortuneChargeSearchEngine.php
@@ -127,8 +127,9 @@
->setCharges($charges)
->setHandles($handles);
- return id(new PHUIObjectBoxView())
- ->setHeaderText(pht('Charges'))
- ->setTable($table);
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setTable($table);
+
+ return $table;
}
}
diff --git a/src/applications/phortune/query/PhortuneMerchantSearchEngine.php b/src/applications/phortune/query/PhortuneMerchantSearchEngine.php
--- a/src/applications/phortune/query/PhortuneMerchantSearchEngine.php
+++ b/src/applications/phortune/query/PhortuneMerchantSearchEngine.php
@@ -78,6 +78,10 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No merchants found.'));
+
+ return $result;
}
}
diff --git a/src/applications/phortune/query/PhortuneSubscriptionSearchEngine.php b/src/applications/phortune/query/PhortuneSubscriptionSearchEngine.php
--- a/src/applications/phortune/query/PhortuneSubscriptionSearchEngine.php
+++ b/src/applications/phortune/query/PhortuneSubscriptionSearchEngine.php
@@ -158,8 +158,11 @@
$header = pht('Your Subscriptions');
}
- return id(new PHUIObjectBoxView())
- ->setHeaderText($header)
- ->setTable($table);
+ $table->setNotice($header);
+
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setTable($table);
+
+ return $result;
}
}
diff --git a/src/applications/phortune/view/PhortuneSubscriptionTableView.php b/src/applications/phortune/view/PhortuneSubscriptionTableView.php
--- a/src/applications/phortune/view/PhortuneSubscriptionTableView.php
+++ b/src/applications/phortune/view/PhortuneSubscriptionTableView.php
@@ -5,6 +5,7 @@
private $subscriptions;
private $handles;
private $isMerchantView;
+ private $notice;
public function setHandles(array $handles) {
$this->handles = $handles;
@@ -33,6 +34,11 @@
return $this->isMerchantView;
}
+ public function setNotice($notice) {
+ $this->notice = $notice;
+ return $this;
+ }
+
public function render() {
$subscriptions = $this->getSubscriptions();
$handles = $this->getHandles();
@@ -61,6 +67,7 @@
}
$table = id(new AphrontTableView($rows))
+ ->setNotice($this->notice)
->setHeaders(
array(
pht('ID'),
diff --git a/src/applications/phrequent/query/PhrequentSearchEngine.php b/src/applications/phrequent/query/PhrequentSearchEngine.php
--- a/src/applications/phrequent/query/PhrequentSearchEngine.php
+++ b/src/applications/phrequent/query/PhrequentSearchEngine.php
@@ -189,7 +189,10 @@
$view->addItem($item);
}
- return $view;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($view);
+
+ return $result;
}
}
diff --git a/src/applications/phriction/query/PhrictionSearchEngine.php b/src/applications/phriction/query/PhrictionSearchEngine.php
--- a/src/applications/phriction/query/PhrictionSearchEngine.php
+++ b/src/applications/phriction/query/PhrictionSearchEngine.php
@@ -178,7 +178,11 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No documents found.'));
+
+ return $result;
}
}
diff --git a/src/applications/ponder/query/PonderQuestionSearchEngine.php b/src/applications/ponder/query/PonderQuestionSearchEngine.php
--- a/src/applications/ponder/query/PonderQuestionSearchEngine.php
+++ b/src/applications/ponder/query/PonderQuestionSearchEngine.php
@@ -170,7 +170,11 @@
$view->addItem($item);
}
- return $view;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($view);
+ $result->setNoDataString(pht('No questions found.'));
+
+ return $result;
}
}
diff --git a/src/applications/project/query/PhabricatorProjectSearchEngine.php b/src/applications/project/query/PhabricatorProjectSearchEngine.php
--- a/src/applications/project/query/PhabricatorProjectSearchEngine.php
+++ b/src/applications/project/query/PhabricatorProjectSearchEngine.php
@@ -193,7 +193,12 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No projects found.'));
+
+ return $result;
+
}
}
diff --git a/src/applications/releeph/query/ReleephProductSearchEngine.php b/src/applications/releeph/query/ReleephProductSearchEngine.php
--- a/src/applications/releeph/query/ReleephProductSearchEngine.php
+++ b/src/applications/releeph/query/ReleephProductSearchEngine.php
@@ -121,7 +121,10 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+
+ return $result;
}
}
diff --git a/src/applications/repository/query/PhabricatorRepositoryPushLogSearchEngine.php b/src/applications/repository/query/PhabricatorRepositoryPushLogSearchEngine.php
--- a/src/applications/repository/query/PhabricatorRepositoryPushLogSearchEngine.php
+++ b/src/applications/repository/query/PhabricatorRepositoryPushLogSearchEngine.php
@@ -108,11 +108,10 @@
->setHandles($handles)
->setLogs($logs);
- $box = id(new PHUIBoxView())
- ->addMargin(PHUI::MARGIN_LARGE)
- ->appendChild($table);
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setTable($table);
- return $box;
+ return $result;
}
}
diff --git a/src/applications/repository/query/PhabricatorRepositorySearchEngine.php b/src/applications/repository/query/PhabricatorRepositorySearchEngine.php
--- a/src/applications/repository/query/PhabricatorRepositorySearchEngine.php
+++ b/src/applications/repository/query/PhabricatorRepositorySearchEngine.php
@@ -209,7 +209,11 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No repositories found for this query.'));
+
+ return $result;
}
protected function willUseSavedQuery(PhabricatorSavedQuery $saved) {
diff --git a/src/applications/search/controller/PhabricatorApplicationSearchController.php b/src/applications/search/controller/PhabricatorApplicationSearchController.php
--- a/src/applications/search/controller/PhabricatorApplicationSearchController.php
+++ b/src/applications/search/controller/PhabricatorApplicationSearchController.php
@@ -185,8 +185,7 @@
$title = pht('Advanced Search');
}
- $box = id(new PHUIObjectBoxView())
- ->setHeaderText($title);
+ $box = new PHUIObjectBoxView();
if ($run_query || $named_query) {
$box->setShowHide(
@@ -228,30 +227,45 @@
$saved_query);
}
- if ($list instanceof AphrontTableView) {
- $box->setTable($list);
- } else {
- $box->setObjectList($list);
+ $header = id(new PHUIHeaderView())
+ ->setHeader($title);
+ if ($list->getActions()) {
+ foreach ($list->getActions() as $action) {
+ $header->addActionLink($action);
+ }
}
- // TODO: This is a bit hacky.
- if ($list instanceof PHUIObjectItemListView) {
- $list->setNoDataString(pht('No results found for this query.'));
- } else {
- if ($pager->willShowPagingControls()) {
- $pager_box = id(new PHUIBoxView())
- ->addPadding(PHUI::PADDING_MEDIUM)
- ->addMargin(PHUI::MARGIN_LARGE)
- ->setBorder(true)
- ->appendChild($pager);
- $nav->appendChild($pager_box);
- }
+ $box->setHeader($header);
+
+ if ($list->getObjectList()) {
+ $box->setObjectList($list->getObjectList());
+ }
+ if ($list->getTable()) {
+ $box->setTable($list->getTable());
}
+ if ($list->getInfoView()) {
+ $box->setInfoView($list->getInfoView());
+ }
+ if ($list->getContent()) {
+ $box->appendChild($list->getContent());
+ }
+
+ if ($pager->willShowPagingControls()) {
+ $pager_box = id(new PHUIBoxView())
+ ->addPadding(PHUI::PADDING_MEDIUM)
+ ->addMargin(PHUI::MARGIN_LARGE)
+ ->setBorder(true)
+ ->appendChild($pager);
+ $nav->appendChild($pager_box);
+ }
+
} catch (PhabricatorTypeaheadInvalidTokenException $ex) {
$errors[] = pht(
'This query specifies an invalid parameter. Review the '.
'query parameters and correct errors.');
}
+ } else {
+ $box->setHeaderText($title);
}
if ($errors) {
diff --git a/src/applications/search/query/PhabricatorSearchApplicationSearchEngine.php b/src/applications/search/query/PhabricatorSearchApplicationSearchEngine.php
--- a/src/applications/search/query/PhabricatorSearchApplicationSearchEngine.php
+++ b/src/applications/search/query/PhabricatorSearchApplicationSearchEngine.php
@@ -241,7 +241,7 @@
$viewer = $this->requireViewer();
$list = new PHUIObjectItemListView();
- $list->setNoDataString(pht('No results returned for that query.'));
+ $list->setNoDataString(pht('No results found.'));
if ($results) {
$objects = id(new PhabricatorObjectQuery())
@@ -259,7 +259,10 @@
}
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+
+ return $result;
}
private function readOwnerPHIDs(PhabricatorSavedQuery $saved) {
diff --git a/src/applications/search/view/PhabricatorApplicationSearchResultView.php b/src/applications/search/view/PhabricatorApplicationSearchResultView.php
new file mode 100644
--- /dev/null
+++ b/src/applications/search/view/PhabricatorApplicationSearchResultView.php
@@ -0,0 +1,86 @@
+<?php
+
+final class PhabricatorApplicationSearchResultView extends Phobject {
+
+/**
+ * Holds bits and pieces of UI information for Search Engine
+ * and Dashboard Panel rendering, describing the results and
+ * controls for presentation.
+ *
+ */
+
+ private $objectList = null;
+ private $table = null;
+ private $content = null;
+ private $infoView = null;
+ private $actions = array();
+ private $collapsed = null;
+ private $noDataString;
+
+ public function setObjectList($list) {
+ $this->objectList = $list;
+ return $this;
+ }
+
+ public function getObjectList() {
+ $list = $this->objectList;
+ if ($list) {
+ if ($this->noDataString) {
+ $list->setNoDataString($this->noDataString);
+ } else {
+ $list->setNoDataString(pht('No results found for this query.'));
+ }
+ }
+ return $list;
+ }
+
+ public function setTable($table) {
+ $this->table = $table;
+ return $this;
+ }
+
+ public function getTable() {
+ return $this->table;
+ }
+
+ public function setInfoView($infoview) {
+ $this->infoView = $infoview;
+ return $this;
+ }
+
+ public function getInfoView() {
+ return $this->infoView;
+ }
+
+ public function setContent($content) {
+ $this->content = $content;
+ }
+
+ public function getContent() {
+ return $this->content;
+ }
+
+ public function addAction(PHUIButtonView $button) {
+ $this->actions[] = $button;
+ return $this;
+ }
+
+ public function getActions() {
+ return $this->actions;
+ }
+
+ public function setCollapsed($collapsed) {
+ $this->collapsed = $collapsed;
+ return $this;
+ }
+
+ public function getCollapsed() {
+ return $this->collapsed;
+ }
+
+ public function setNoDataString($nodata) {
+ $this->noDataString = $nodata;
+ return $this;
+ }
+
+}
diff --git a/src/applications/slowvote/query/PhabricatorSlowvoteSearchEngine.php b/src/applications/slowvote/query/PhabricatorSlowvoteSearchEngine.php
--- a/src/applications/slowvote/query/PhabricatorSlowvoteSearchEngine.php
+++ b/src/applications/slowvote/query/PhabricatorSlowvoteSearchEngine.php
@@ -167,7 +167,11 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No polls found.'));
+
+ return $result;
}
}
diff --git a/src/applications/spaces/query/PhabricatorSpacesNamespaceSearchEngine.php b/src/applications/spaces/query/PhabricatorSpacesNamespaceSearchEngine.php
--- a/src/applications/spaces/query/PhabricatorSpacesNamespaceSearchEngine.php
+++ b/src/applications/spaces/query/PhabricatorSpacesNamespaceSearchEngine.php
@@ -91,7 +91,11 @@
$list->addItem($item);
}
- return $list;
+ $result = new PhabricatorApplicationSearchResultView();
+ $result->setObjectList($list);
+ $result->setNoDataString(pht('No spaces found.'));
+
+ return $result;
}
}
diff --git a/webroot/rsrc/css/aphront/table-view.css b/webroot/rsrc/css/aphront/table-view.css
--- a/webroot/rsrc/css/aphront/table-view.css
+++ b/webroot/rsrc/css/aphront/table-view.css
@@ -275,11 +275,6 @@
display: none;
}
-.aphront-table-view-device-ready {
- width: 99%;
- margin: 8px auto;
-}
-
.aphront-table-view td.link {
padding: 0;
}
diff --git a/webroot/rsrc/css/application/base/notification-menu.css b/webroot/rsrc/css/application/base/notification-menu.css
--- a/webroot/rsrc/css/application/base/notification-menu.css
+++ b/webroot/rsrc/css/application/base/notification-menu.css
@@ -40,6 +40,14 @@
}
+.phabricator-notification-list.pm {
+ padding: 0;
+}
+
+.phabricator-notification-list .phabricator-notification {
+ padding: 10px 4px;
+}
+
.phabricator-notification {
padding: 6px 8px;
}

File Metadata

Mime Type
text/plain
Expires
Tue, Aug 19, 8:50 AM (4 d, 12 h ago)
Storage Engine
amazon-s3
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
phabricator/secure/wv/65/wqoo3po5ufkhtlwl
Default Alt Text
D13332.id32261.diff (43 KB)

Event Timeline