Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F15390202
D18760.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
12 KB
Referenced Files
None
Subscribers
None
D18760.diff
View Options
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
@@ -831,6 +831,7 @@
'DiffusionQueryCommitsConduitAPIMethod' => 'applications/diffusion/conduit/DiffusionQueryCommitsConduitAPIMethod.php',
'DiffusionQueryConduitAPIMethod' => 'applications/diffusion/conduit/DiffusionQueryConduitAPIMethod.php',
'DiffusionQueryPathsConduitAPIMethod' => 'applications/diffusion/conduit/DiffusionQueryPathsConduitAPIMethod.php',
+ 'DiffusionQuickSearchEngineExtension' => 'applications/diffusion/engineextension/DiffusionQuickSearchEngineExtension.php',
'DiffusionRawDiffQuery' => 'applications/diffusion/query/rawdiff/DiffusionRawDiffQuery.php',
'DiffusionRawDiffQueryConduitAPIMethod' => 'applications/diffusion/conduit/DiffusionRawDiffQueryConduitAPIMethod.php',
'DiffusionReadmeView' => 'applications/diffusion/view/DiffusionReadmeView.php',
@@ -3202,6 +3203,7 @@
'PhabricatorMetronomicTriggerClock' => 'infrastructure/daemon/workers/clock/PhabricatorMetronomicTriggerClock.php',
'PhabricatorModularTransaction' => 'applications/transactions/storage/PhabricatorModularTransaction.php',
'PhabricatorModularTransactionType' => 'applications/transactions/storage/PhabricatorModularTransactionType.php',
+ 'PhabricatorMonogramQuickSearchEngineExtension' => 'applications/typeahead/engineextension/PhabricatorMonogramQuickSearchEngineExtension.php',
'PhabricatorMonospacedFontSetting' => 'applications/settings/setting/PhabricatorMonospacedFontSetting.php',
'PhabricatorMonospacedTextareasSetting' => 'applications/settings/setting/PhabricatorMonospacedTextareasSetting.php',
'PhabricatorMotivatorProfileMenuItem' => 'applications/search/menuitem/PhabricatorMotivatorProfileMenuItem.php',
@@ -3525,6 +3527,7 @@
'PhabricatorPeopleProfileTasksController' => 'applications/people/controller/PhabricatorPeopleProfileTasksController.php',
'PhabricatorPeopleProfileViewController' => 'applications/people/controller/PhabricatorPeopleProfileViewController.php',
'PhabricatorPeopleQuery' => 'applications/people/query/PhabricatorPeopleQuery.php',
+ 'PhabricatorPeopleQuickSearchEngineExtension' => 'applications/people/engineextension/PhabricatorPeopleQuickSearchEngineExtension.php',
'PhabricatorPeopleRenameController' => 'applications/people/controller/PhabricatorPeopleRenameController.php',
'PhabricatorPeopleRevisionsProfileMenuItem' => 'applications/people/menuitem/PhabricatorPeopleRevisionsProfileMenuItem.php',
'PhabricatorPeopleSearchEngine' => 'applications/people/query/PhabricatorPeopleSearchEngine.php',
@@ -3785,6 +3788,9 @@
'PhabricatorQueryOrderItem' => 'infrastructure/query/order/PhabricatorQueryOrderItem.php',
'PhabricatorQueryOrderTestCase' => 'infrastructure/query/order/__tests__/PhabricatorQueryOrderTestCase.php',
'PhabricatorQueryOrderVector' => 'infrastructure/query/order/PhabricatorQueryOrderVector.php',
+ 'PhabricatorQuickSearchApplicationEngineExtension' => 'applications/meta/engineextension/PhabricatorQuickSearchApplicationEngineExtension.php',
+ 'PhabricatorQuickSearchEngine' => 'applications/search/engine/PhabricatorQuickSearchEngine.php',
+ 'PhabricatorQuickSearchEngineExtension' => 'applications/search/engineextension/PhabricatorQuickSearchEngineExtension.php',
'PhabricatorRateLimitRequestExceptionHandler' => 'aphront/handler/PhabricatorRateLimitRequestExceptionHandler.php',
'PhabricatorRecaptchaConfigOptions' => 'applications/config/option/PhabricatorRecaptchaConfigOptions.php',
'PhabricatorRedirectController' => 'applications/base/controller/PhabricatorRedirectController.php',
@@ -4817,6 +4823,7 @@
'ProjectDefaultViewCapability' => 'applications/project/capability/ProjectDefaultViewCapability.php',
'ProjectEditConduitAPIMethod' => 'applications/project/conduit/ProjectEditConduitAPIMethod.php',
'ProjectQueryConduitAPIMethod' => 'applications/project/conduit/ProjectQueryConduitAPIMethod.php',
+ 'ProjectQuickSearchEngineExtension' => 'applications/project/engineextension/ProjectQuickSearchEngineExtension.php',
'ProjectRemarkupRule' => 'applications/project/remarkup/ProjectRemarkupRule.php',
'ProjectRemarkupRuleTestCase' => 'applications/project/remarkup/__tests__/ProjectRemarkupRuleTestCase.php',
'ProjectReplyHandler' => 'applications/project/mail/ProjectReplyHandler.php',
@@ -5880,6 +5887,7 @@
'DiffusionQueryCommitsConduitAPIMethod' => 'DiffusionConduitAPIMethod',
'DiffusionQueryConduitAPIMethod' => 'DiffusionConduitAPIMethod',
'DiffusionQueryPathsConduitAPIMethod' => 'DiffusionQueryConduitAPIMethod',
+ 'DiffusionQuickSearchEngineExtension' => 'PhabricatorQuickSearchEngineExtension',
'DiffusionRawDiffQuery' => 'DiffusionFileFutureQuery',
'DiffusionRawDiffQueryConduitAPIMethod' => 'DiffusionQueryConduitAPIMethod',
'DiffusionReadmeView' => 'DiffusionView',
@@ -8612,6 +8620,7 @@
'PhabricatorMetronomicTriggerClock' => 'PhabricatorTriggerClock',
'PhabricatorModularTransaction' => 'PhabricatorApplicationTransaction',
'PhabricatorModularTransactionType' => 'Phobject',
+ 'PhabricatorMonogramQuickSearchEngineExtension' => 'PhabricatorQuickSearchEngineExtension',
'PhabricatorMonospacedFontSetting' => 'PhabricatorStringSetting',
'PhabricatorMonospacedTextareasSetting' => 'PhabricatorSelectSetting',
'PhabricatorMotivatorProfileMenuItem' => 'PhabricatorProfileMenuItem',
@@ -9004,6 +9013,7 @@
'PhabricatorPeopleProfileTasksController' => 'PhabricatorPeopleProfileController',
'PhabricatorPeopleProfileViewController' => 'PhabricatorPeopleProfileController',
'PhabricatorPeopleQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
+ 'PhabricatorPeopleQuickSearchEngineExtension' => 'PhabricatorQuickSearchEngineExtension',
'PhabricatorPeopleRenameController' => 'PhabricatorPeopleController',
'PhabricatorPeopleRevisionsProfileMenuItem' => 'PhabricatorProfileMenuItem',
'PhabricatorPeopleSearchEngine' => 'PhabricatorApplicationSearchEngine',
@@ -9319,6 +9329,9 @@
'Phobject',
'Iterator',
),
+ 'PhabricatorQuickSearchApplicationEngineExtension' => 'PhabricatorQuickSearchEngineExtension',
+ 'PhabricatorQuickSearchEngine' => 'Phobject',
+ 'PhabricatorQuickSearchEngineExtension' => 'Phobject',
'PhabricatorRateLimitRequestExceptionHandler' => 'PhabricatorRequestExceptionHandler',
'PhabricatorRecaptchaConfigOptions' => 'PhabricatorApplicationConfigOptions',
'PhabricatorRedirectController' => 'PhabricatorController',
@@ -10605,6 +10618,7 @@
'ProjectDefaultViewCapability' => 'PhabricatorPolicyCapability',
'ProjectEditConduitAPIMethod' => 'PhabricatorEditEngineAPIMethod',
'ProjectQueryConduitAPIMethod' => 'ProjectConduitAPIMethod',
+ 'ProjectQuickSearchEngineExtension' => 'PhabricatorQuickSearchEngineExtension',
'ProjectRemarkupRule' => 'PhabricatorObjectRemarkupRule',
'ProjectRemarkupRuleTestCase' => 'PhabricatorTestCase',
'ProjectReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
diff --git a/src/applications/diffusion/engineextension/DiffusionQuickSearchEngineExtension.php b/src/applications/diffusion/engineextension/DiffusionQuickSearchEngineExtension.php
new file mode 100644
--- /dev/null
+++ b/src/applications/diffusion/engineextension/DiffusionQuickSearchEngineExtension.php
@@ -0,0 +1,12 @@
+<?php
+
+final class DiffusionQuickSearchEngineExtension
+ extends PhabricatorQuickSearchEngineExtension {
+
+ public function newQuickSearchDatasources() {
+ return array(
+ new DiffusionRepositoryDatasource(),
+ new DiffusionSymbolDatasource(),
+ );
+ }
+}
diff --git a/src/applications/meta/engineextension/PhabricatorQuickSearchApplicationEngineExtension.php b/src/applications/meta/engineextension/PhabricatorQuickSearchApplicationEngineExtension.php
new file mode 100644
--- /dev/null
+++ b/src/applications/meta/engineextension/PhabricatorQuickSearchApplicationEngineExtension.php
@@ -0,0 +1,11 @@
+<?php
+
+final class PhabricatorQuickSearchApplicationEngineExtension
+ extends PhabricatorQuickSearchEngineExtension {
+
+ public function newQuickSearchDatasources() {
+ return array(
+ new PhabricatorApplicationDatasource(),
+ );
+ }
+}
diff --git a/src/applications/people/engineextension/PhabricatorPeopleQuickSearchEngineExtension.php b/src/applications/people/engineextension/PhabricatorPeopleQuickSearchEngineExtension.php
new file mode 100644
--- /dev/null
+++ b/src/applications/people/engineextension/PhabricatorPeopleQuickSearchEngineExtension.php
@@ -0,0 +1,11 @@
+<?php
+
+final class PhabricatorPeopleQuickSearchEngineExtension
+ extends PhabricatorQuickSearchEngineExtension {
+
+ public function newQuickSearchDatasources() {
+ return array(
+ new PhabricatorPeopleDatasource(),
+ );
+ }
+}
diff --git a/src/applications/project/engineextension/ProjectQuickSearchEngineExtension.php b/src/applications/project/engineextension/ProjectQuickSearchEngineExtension.php
new file mode 100644
--- /dev/null
+++ b/src/applications/project/engineextension/ProjectQuickSearchEngineExtension.php
@@ -0,0 +1,11 @@
+<?php
+
+final class ProjectQuickSearchEngineExtension
+ extends PhabricatorQuickSearchEngineExtension {
+
+ public function newQuickSearchDatasources() {
+ return array(
+ new PhabricatorProjectDatasource(),
+ );
+ }
+}
diff --git a/src/applications/search/engine/PhabricatorQuickSearchEngine.php b/src/applications/search/engine/PhabricatorQuickSearchEngine.php
new file mode 100644
--- /dev/null
+++ b/src/applications/search/engine/PhabricatorQuickSearchEngine.php
@@ -0,0 +1,8 @@
+<?php
+
+final class PhabricatorQuickSearchEngine extends Phobject {
+
+ public function getAllDatasources() {
+ return PhabricatorQuickSearchEngineExtension::getAllDatasources();
+ }
+}
diff --git a/src/applications/search/engineextension/PhabricatorQuickSearchEngineExtension.php b/src/applications/search/engineextension/PhabricatorQuickSearchEngineExtension.php
new file mode 100644
--- /dev/null
+++ b/src/applications/search/engineextension/PhabricatorQuickSearchEngineExtension.php
@@ -0,0 +1,18 @@
+<?php
+
+abstract class PhabricatorQuickSearchEngineExtension extends Phobject {
+
+ abstract public function newQuickSearchDatasources();
+
+ final public static function getAllDatasources() {
+ $extensions = id(new PhutilClassMapQuery())
+ ->setAncestorClass(__CLASS__)
+ ->execute();
+
+ $datasources = array();
+ foreach ($extensions as $extension) {
+ $datasources[] = $extension->newQuickSearchDatasources();
+ }
+ return array_mergev($datasources);
+ }
+}
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,8 @@
}
public function getComponentDatasources() {
- $sources = array(
- new PhabricatorPeopleDatasource(),
- new PhabricatorProjectDatasource(),
- new PhabricatorApplicationDatasource(),
- new PhabricatorTypeaheadMonogramDatasource(),
- new DiffusionRepositoryDatasource(),
- new DiffusionSymbolDatasource(),
- );
+ $sources = id(new PhabricatorQuickSearchEngine())
+ ->getAllDatasources();
// 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/engineextension/PhabricatorMonogramQuickSearchEngineExtension.php b/src/applications/typeahead/engineextension/PhabricatorMonogramQuickSearchEngineExtension.php
new file mode 100644
--- /dev/null
+++ b/src/applications/typeahead/engineextension/PhabricatorMonogramQuickSearchEngineExtension.php
@@ -0,0 +1,11 @@
+<?php
+
+final class PhabricatorMonogramQuickSearchEngineExtension
+ extends PhabricatorQuickSearchEngineExtension {
+
+ public function newQuickSearchDatasources() {
+ return array(
+ new PhabricatorTypeaheadMonogramDatasource(),
+ );
+ }
+}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Mar 16, 5:59 AM (1 w, 1 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7706227
Default Alt Text
D18760.diff (12 KB)
Attached To
Mode
D18760: Modernize QuickSearch typeahead
Attached
Detach File
Event Timeline
Log In to Comment