Page MenuHomePhabricator

D18760.id45025.diff
No OneTemporary

D18760.id45025.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
@@ -2966,6 +2966,7 @@
'PhabricatorGitGraphStream' => 'applications/repository/daemon/PhabricatorGitGraphStream.php',
'PhabricatorGitHubAuthProvider' => 'applications/auth/provider/PhabricatorGitHubAuthProvider.php',
'PhabricatorGlobalLock' => 'infrastructure/util/PhabricatorGlobalLock.php',
+ 'PhabricatorGlobalSearchDatasourceInterface' => 'applications/search/interface/PhabricatorGlobalSearchDatasourceInterface.php',
'PhabricatorGlobalUploadTargetView' => 'applications/files/view/PhabricatorGlobalUploadTargetView.php',
'PhabricatorGoogleAuthProvider' => 'applications/auth/provider/PhabricatorGoogleAuthProvider.php',
'PhabricatorGuidanceContext' => 'applications/guides/guidance/PhabricatorGuidanceContext.php',
@@ -5891,7 +5892,10 @@
'DiffusionRepositoryByIDRemarkupRule' => 'PhabricatorObjectRemarkupRule',
'DiffusionRepositoryClusterEngine' => 'Phobject',
'DiffusionRepositoryController' => 'DiffusionController',
- 'DiffusionRepositoryDatasource' => 'PhabricatorTypeaheadDatasource',
+ 'DiffusionRepositoryDatasource' => array(
+ 'PhabricatorTypeaheadDatasource',
+ 'PhabricatorGlobalSearchDatasourceInterface',
+ ),
'DiffusionRepositoryDefaultController' => 'DiffusionController',
'DiffusionRepositoryEditActivateController' => 'DiffusionRepositoryManageController',
'DiffusionRepositoryEditConduitAPIMethod' => 'PhabricatorEditEngineAPIMethod',
@@ -5943,7 +5947,10 @@
'DiffusionSvnRawDiffQuery' => 'DiffusionRawDiffQuery',
'DiffusionSvnRequest' => 'DiffusionRequest',
'DiffusionSymbolController' => 'DiffusionController',
- 'DiffusionSymbolDatasource' => 'PhabricatorTypeaheadDatasource',
+ 'DiffusionSymbolDatasource' => array(
+ 'PhabricatorTypeaheadDatasource',
+ 'PhabricatorGlobalSearchDatasourceInterface',
+ ),
'DiffusionSymbolQuery' => 'PhabricatorOffsetPagedQuery',
'DiffusionTagListController' => 'DiffusionController',
'DiffusionTagListView' => 'DiffusionView',
@@ -7154,7 +7161,10 @@
'PhabricatorApplicationConfigOptions' => 'Phobject',
'PhabricatorApplicationConfigurationPanel' => 'Phobject',
'PhabricatorApplicationConfigurationPanelTestCase' => 'PhabricatorTestCase',
- 'PhabricatorApplicationDatasource' => 'PhabricatorTypeaheadDatasource',
+ 'PhabricatorApplicationDatasource' => array(
+ 'PhabricatorTypeaheadDatasource',
+ 'PhabricatorGlobalSearchDatasourceInterface',
+ ),
'PhabricatorApplicationDetailViewController' => 'PhabricatorApplicationsController',
'PhabricatorApplicationEditController' => 'PhabricatorApplicationsController',
'PhabricatorApplicationEditEngine' => 'PhabricatorEditEngine',
@@ -8965,7 +8975,10 @@
'PhabricatorPeopleController' => 'PhabricatorController',
'PhabricatorPeopleCreateController' => 'PhabricatorPeopleController',
'PhabricatorPeopleCreateGuidanceContext' => 'PhabricatorGuidanceContext',
- 'PhabricatorPeopleDatasource' => 'PhabricatorTypeaheadDatasource',
+ 'PhabricatorPeopleDatasource' => array(
+ 'PhabricatorTypeaheadDatasource',
+ 'PhabricatorGlobalSearchDatasourceInterface',
+ ),
'PhabricatorPeopleDeleteController' => 'PhabricatorPeopleController',
'PhabricatorPeopleDetailsProfileMenuItem' => 'PhabricatorProfileMenuItem',
'PhabricatorPeopleDisableController' => 'PhabricatorPeopleController',
@@ -9198,7 +9211,10 @@
'PhabricatorProjectCustomFieldStorage' => 'PhabricatorCustomFieldStorage',
'PhabricatorProjectCustomFieldStringIndex' => 'PhabricatorCustomFieldStringIndexStorage',
'PhabricatorProjectDAO' => 'PhabricatorLiskDAO',
- 'PhabricatorProjectDatasource' => 'PhabricatorTypeaheadDatasource',
+ 'PhabricatorProjectDatasource' => array(
+ 'PhabricatorTypeaheadDatasource',
+ 'PhabricatorGlobalSearchDatasourceInterface',
+ ),
'PhabricatorProjectDefaultController' => 'PhabricatorProjectBoardController',
'PhabricatorProjectDescriptionField' => 'PhabricatorProjectStandardCustomField',
'PhabricatorProjectDetailsProfileMenuItem' => 'PhabricatorProfileMenuItem',
@@ -9860,7 +9876,10 @@
'PhabricatorTypeaheadFunctionHelpController' => 'PhabricatorTypeaheadDatasourceController',
'PhabricatorTypeaheadInvalidTokenException' => 'Exception',
'PhabricatorTypeaheadModularDatasourceController' => 'PhabricatorTypeaheadDatasourceController',
- 'PhabricatorTypeaheadMonogramDatasource' => 'PhabricatorTypeaheadDatasource',
+ 'PhabricatorTypeaheadMonogramDatasource' => array(
+ 'PhabricatorTypeaheadDatasource',
+ 'PhabricatorGlobalSearchDatasourceInterface',
+ ),
'PhabricatorTypeaheadResult' => 'Phobject',
'PhabricatorTypeaheadRuntimeCompositeDatasource' => 'PhabricatorTypeaheadCompositeDatasource',
'PhabricatorTypeaheadTokenView' => 'AphrontTagView',
diff --git a/src/applications/diffusion/typeahead/DiffusionRepositoryDatasource.php b/src/applications/diffusion/typeahead/DiffusionRepositoryDatasource.php
--- a/src/applications/diffusion/typeahead/DiffusionRepositoryDatasource.php
+++ b/src/applications/diffusion/typeahead/DiffusionRepositoryDatasource.php
@@ -1,7 +1,8 @@
<?php
final class DiffusionRepositoryDatasource
- extends PhabricatorTypeaheadDatasource {
+ extends PhabricatorTypeaheadDatasource
+ implements PhabricatorGlobalSearchDatasourceInterface {
public function getBrowseTitle() {
return pht('Browse Repositories');
diff --git a/src/applications/diffusion/typeahead/DiffusionSymbolDatasource.php b/src/applications/diffusion/typeahead/DiffusionSymbolDatasource.php
--- a/src/applications/diffusion/typeahead/DiffusionSymbolDatasource.php
+++ b/src/applications/diffusion/typeahead/DiffusionSymbolDatasource.php
@@ -1,7 +1,8 @@
<?php
final class DiffusionSymbolDatasource
- extends PhabricatorTypeaheadDatasource {
+ extends PhabricatorTypeaheadDatasource
+ implements PhabricatorGlobalSearchDatasourceInterface {
public function isBrowsable() {
// This is slightly involved to make browsable, and browsing symbols
diff --git a/src/applications/meta/typeahead/PhabricatorApplicationDatasource.php b/src/applications/meta/typeahead/PhabricatorApplicationDatasource.php
--- a/src/applications/meta/typeahead/PhabricatorApplicationDatasource.php
+++ b/src/applications/meta/typeahead/PhabricatorApplicationDatasource.php
@@ -1,7 +1,8 @@
<?php
final class PhabricatorApplicationDatasource
- extends PhabricatorTypeaheadDatasource {
+ extends PhabricatorTypeaheadDatasource
+ implements PhabricatorGlobalSearchDatasourceInterface {
public function getBrowseTitle() {
return pht('Browse Applications');
diff --git a/src/applications/people/typeahead/PhabricatorPeopleDatasource.php b/src/applications/people/typeahead/PhabricatorPeopleDatasource.php
--- a/src/applications/people/typeahead/PhabricatorPeopleDatasource.php
+++ b/src/applications/people/typeahead/PhabricatorPeopleDatasource.php
@@ -1,7 +1,8 @@
<?php
final class PhabricatorPeopleDatasource
- extends PhabricatorTypeaheadDatasource {
+ extends PhabricatorTypeaheadDatasource
+ implements PhabricatorGlobalSearchDatasourceInterface {
public function getBrowseTitle() {
return pht('Browse Users');
diff --git a/src/applications/project/typeahead/PhabricatorProjectDatasource.php b/src/applications/project/typeahead/PhabricatorProjectDatasource.php
--- a/src/applications/project/typeahead/PhabricatorProjectDatasource.php
+++ b/src/applications/project/typeahead/PhabricatorProjectDatasource.php
@@ -1,7 +1,8 @@
<?php
final class PhabricatorProjectDatasource
- extends PhabricatorTypeaheadDatasource {
+ extends PhabricatorTypeaheadDatasource
+ implements PhabricatorGlobalSearchDatasourceInterface {
public function getBrowseTitle() {
return pht('Browse Projects');
diff --git a/src/applications/search/interface/PhabricatorGlobalSearchDatasourceInterface.php b/src/applications/search/interface/PhabricatorGlobalSearchDatasourceInterface.php
new file mode 100644
--- /dev/null
+++ b/src/applications/search/interface/PhabricatorGlobalSearchDatasourceInterface.php
@@ -0,0 +1,7 @@
+<?php
+
+/**
+ * Add this interface to your TypeaheadDatasource to make it accessible via the
+ * quick-search typeahead.
+ */
+interface PhabricatorGlobalSearchDatasourceInterface {}
diff --git a/src/applications/search/typeahead/PhabricatorSearchDatasource.php b/src/applications/search/typeahead/PhabricatorSearchDatasource.php
--- a/src/applications/search/typeahead/PhabricatorSearchDatasource.php
+++ b/src/applications/search/typeahead/PhabricatorSearchDatasource.php
@@ -16,14 +16,9 @@
}
public function getComponentDatasources() {
- $sources = array(
- new PhabricatorPeopleDatasource(),
- new PhabricatorProjectDatasource(),
- new PhabricatorApplicationDatasource(),
- new PhabricatorTypeaheadMonogramDatasource(),
- new DiffusionRepositoryDatasource(),
- new DiffusionSymbolDatasource(),
- );
+ $sources = id(new PhutilClassMapQuery())
+ ->setAncestorClass('PhabricatorGlobalSearchDatasourceInterface')
+ ->execute();
// These results are always rendered in the full browse display mode, so
// set the browse flag on all component sources.
diff --git a/src/applications/typeahead/datasource/PhabricatorTypeaheadMonogramDatasource.php b/src/applications/typeahead/datasource/PhabricatorTypeaheadMonogramDatasource.php
--- a/src/applications/typeahead/datasource/PhabricatorTypeaheadMonogramDatasource.php
+++ b/src/applications/typeahead/datasource/PhabricatorTypeaheadMonogramDatasource.php
@@ -1,7 +1,8 @@
<?php
final class PhabricatorTypeaheadMonogramDatasource
- extends PhabricatorTypeaheadDatasource {
+ extends PhabricatorTypeaheadDatasource
+ implements PhabricatorGlobalSearchDatasourceInterface {
public function isBrowsable() {
// This source isn't meaningfully browsable. Although it's technically

File Metadata

Mime Type
text/plain
Expires
Mon, Dec 22, 7:25 PM (2 w, 4 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
14373615
Default Alt Text
D18760.id45025.diff (9 KB)

Event Timeline