Page MenuHomePhabricator

D18760.diff
No OneTemporary

D18760.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
@@ -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

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)

Event Timeline