Page MenuHomePhabricator

D9886.id23741.diff
No OneTemporary

D9886.id23741.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
@@ -1760,6 +1760,7 @@
'PhabricatorMailReceiverTestCase' => 'applications/metamta/receiver/__tests__/PhabricatorMailReceiverTestCase.php',
'PhabricatorMailReplyHandler' => 'applications/metamta/replyhandler/PhabricatorMailReplyHandler.php',
'PhabricatorMailgunConfigOptions' => 'applications/config/option/PhabricatorMailgunConfigOptions.php',
+ 'PhabricatorMailingListDatasource' => 'applications/mailinglists/typeahead/PhabricatorMailingListDatasource.php',
'PhabricatorMailingListPHIDTypeList' => 'applications/mailinglists/phid/PhabricatorMailingListPHIDTypeList.php',
'PhabricatorMailingListQuery' => 'applications/mailinglists/query/PhabricatorMailingListQuery.php',
'PhabricatorMailingListSearchEngine' => 'applications/mailinglists/query/PhabricatorMailingListSearchEngine.php',
@@ -1792,6 +1793,7 @@
'PhabricatorMetaMTAMailBody' => 'applications/metamta/view/PhabricatorMetaMTAMailBody.php',
'PhabricatorMetaMTAMailBodyTestCase' => 'applications/metamta/view/__tests__/PhabricatorMetaMTAMailBodyTestCase.php',
'PhabricatorMetaMTAMailTestCase' => 'applications/metamta/storage/__tests__/PhabricatorMetaMTAMailTestCase.php',
+ 'PhabricatorMetaMTAMailableDatasource' => 'applications/metamta/typeahead/PhabricatorMetaMTAMailableDatasource.php',
'PhabricatorMetaMTAMailgunReceiveController' => 'applications/metamta/controller/PhabricatorMetaMTAMailgunReceiveController.php',
'PhabricatorMetaMTAMailingList' => 'applications/mailinglists/storage/PhabricatorMetaMTAMailingList.php',
'PhabricatorMetaMTAMemberQuery' => 'applications/metamta/query/PhabricatorMetaMTAMemberQuery.php',
@@ -4609,6 +4611,7 @@
'PhabricatorMailManagementWorkflow' => 'PhabricatorManagementWorkflow',
'PhabricatorMailReceiverTestCase' => 'PhabricatorTestCase',
'PhabricatorMailgunConfigOptions' => 'PhabricatorApplicationConfigOptions',
+ 'PhabricatorMailingListDatasource' => 'PhabricatorTypeaheadDatasource',
'PhabricatorMailingListPHIDTypeList' => 'PhabricatorPHIDType',
'PhabricatorMailingListQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
'PhabricatorMailingListSearchEngine' => 'PhabricatorApplicationSearchEngine',
@@ -4635,6 +4638,7 @@
'PhabricatorMetaMTAMail' => 'PhabricatorMetaMTADAO',
'PhabricatorMetaMTAMailBodyTestCase' => 'PhabricatorTestCase',
'PhabricatorMetaMTAMailTestCase' => 'PhabricatorTestCase',
+ 'PhabricatorMetaMTAMailableDatasource' => 'PhabricatorTypeaheadCompositeDatasource',
'PhabricatorMetaMTAMailgunReceiveController' => 'PhabricatorMetaMTAController',
'PhabricatorMetaMTAMailingList' =>
array(
diff --git a/src/applications/differential/customfield/DifferentialSubscribersField.php b/src/applications/differential/customfield/DifferentialSubscribersField.php
--- a/src/applications/differential/customfield/DifferentialSubscribersField.php
+++ b/src/applications/differential/customfield/DifferentialSubscribersField.php
@@ -44,7 +44,7 @@
public function renderEditControl(array $handles) {
return id(new AphrontFormTokenizerControl())
->setName($this->getFieldKey())
- ->setDatasource('/typeahead/common/mailable/')
+ ->setDatasource(new PhabricatorMetaMTAMailableDatasource())
->setValue($handles)
->setError($this->getFieldError())
->setLabel($this->getFieldName());
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
@@ -161,7 +161,7 @@
id(new AphrontFormTokenizerControl())
->setLabel(pht('Subscribers'))
->setName('subscribers')
- ->setDatasource('/typeahead/common/allmailable/')
+ ->setDatasource(new PhabricatorMetaMTAMailableDatasource())
->setValue(array_select_keys($handles, $subscriber_phids)))
->appendChild(
id(new AphrontFormTokenizerControl())
diff --git a/src/applications/differential/view/DifferentialAddCommentView.php b/src/applications/differential/view/DifferentialAddCommentView.php
--- a/src/applications/differential/view/DifferentialAddCommentView.php
+++ b/src/applications/differential/view/DifferentialAddCommentView.php
@@ -108,6 +108,8 @@
id(new AphrontFormSubmitControl())
->setValue(pht('Submit')));
+ $mailable_source = new PhabricatorMetaMTAMailableDatasource();
+
Javelin::initBehavior(
'differential-add-reviewers-and-ccs',
array(
@@ -126,10 +128,10 @@
),
'add-ccs-tokenizer' => array(
'actions' => array('add_ccs' => 1),
- 'src' => '/typeahead/common/mailable/',
+ 'src' => $mailable_source->getDatasourceURI(),
'value' => $this->ccs,
'row' => 'add-ccs',
- 'placeholder' => pht('Type a user or mailing list...'),
+ 'placeholder' => $mailable_source->getPlaceholderText(),
),
),
'select' => 'comment-action',
diff --git a/src/applications/diffusion/controller/DiffusionCommitController.php b/src/applications/diffusion/controller/DiffusionCommitController.php
--- a/src/applications/diffusion/controller/DiffusionCommitController.php
+++ b/src/applications/diffusion/controller/DiffusionCommitController.php
@@ -771,6 +771,8 @@
require_celerity_resource('phabricator-transaction-view-css');
+ $mailable_source = new PhabricatorMetaMTAMailableDatasource();
+
Javelin::initBehavior(
'differential-add-reviewers-and-ccs',
array(
@@ -783,9 +785,9 @@
),
'add-ccs-tokenizer' => array(
'actions' => array('add_ccs' => 1),
- 'src' => '/typeahead/common/mailable/',
+ 'src' => $mailable_source->getDatasourceURI(),
'row' => 'add-ccs',
- 'placeholder' => pht('Type a user or mailing list...'),
+ 'placeholder' => $mailable_source->getPlaceholderText(),
),
),
'select' => 'audit-action',
diff --git a/src/applications/herald/controller/HeraldRuleController.php b/src/applications/herald/controller/HeraldRuleController.php
--- a/src/applications/herald/controller/HeraldRuleController.php
+++ b/src/applications/herald/controller/HeraldRuleController.php
@@ -597,11 +597,11 @@
'package' => new PhabricatorOwnersPackageDatasource(),
'project' => new PhabricatorProjectDatasource(),
'user' => new PhabricatorPeopleDatasource(),
+ 'email' => new PhabricatorMetaMTAMailableDatasource(),
);
$sources = mpull($sources, 'getDatasourceURI');
$sources += array(
- 'email' => '/typeahead/common/mailable/',
'userorproject' => '/typeahead/common/accountsorprojects/',
);
diff --git a/src/applications/mailinglists/typeahead/PhabricatorMailingListDatasource.php b/src/applications/mailinglists/typeahead/PhabricatorMailingListDatasource.php
new file mode 100644
--- /dev/null
+++ b/src/applications/mailinglists/typeahead/PhabricatorMailingListDatasource.php
@@ -0,0 +1,33 @@
+<?php
+
+final class PhabricatorMailingListDatasource
+ extends PhabricatorTypeaheadDatasource {
+
+ public function getPlaceholderText() {
+ return pht('Type a mailing list name...');
+ }
+
+ public function getDatasourceApplicationClass() {
+ return 'PhabricatorApplicationMailingLists';
+ }
+
+ public function loadResults() {
+ $viewer = $this->getViewer();
+ $raw_query = $this->getRawQuery();
+
+ $results = array();
+
+ $lists = id(new PhabricatorMailingListQuery())
+ ->setViewer($viewer)
+ ->execute();
+ foreach ($lists as $list) {
+ $results[] = id(new PhabricatorTypeaheadResult())
+ ->setName($list->getName())
+ ->setURI($list->getURI())
+ ->setPHID($list->getPHID());
+ }
+
+ return $results;
+ }
+
+}
diff --git a/src/applications/maniphest/controller/ManiphestBatchEditController.php b/src/applications/maniphest/controller/ManiphestBatchEditController.php
--- a/src/applications/maniphest/controller/ManiphestBatchEditController.php
+++ b/src/applications/maniphest/controller/ManiphestBatchEditController.php
@@ -62,6 +62,7 @@
$template = $template->render();
$projects_source = new PhabricatorProjectDatasource();
+ $mailable_source = new PhabricatorMetaMTAMailableDatasource();
require_celerity_resource('maniphest-batch-editor');
Javelin::initBehavior(
@@ -81,8 +82,8 @@
'limit' => 1,
),
'cc' => array(
- 'src' => '/typeahead/common/mailable/',
- 'placeholder' => pht('Type a user name...'),
+ 'src' => $mailable_source->getDatasourceURI(),
+ 'placeholder' => $mailable_source->getPlaceholderText(),
)
),
'input' => 'batch-form-actions',
diff --git a/src/applications/maniphest/controller/ManiphestTaskDetailController.php b/src/applications/maniphest/controller/ManiphestTaskDetailController.php
--- a/src/applications/maniphest/controller/ManiphestTaskDetailController.php
+++ b/src/applications/maniphest/controller/ManiphestTaskDetailController.php
@@ -284,6 +284,7 @@
$projects_source = new PhabricatorProjectDatasource();
$users_source = new PhabricatorPeopleDatasource();
+ $mailable_source = new PhabricatorMetaMTAMailableDatasource();
$tokenizer_map = array(
ManiphestTransaction::TYPE_PROJECTS => array(
@@ -300,8 +301,8 @@
),
ManiphestTransaction::TYPE_CCS => array(
'id' => 'cc-tokenizer',
- 'src' => '/typeahead/common/mailable/',
- 'placeholder' => pht('Type a user or mailing list...'),
+ 'src' => $mailable_source->getDatasourceURI(),
+ 'placeholder' => $mailable_source->getPlaceholderText(),
),
);
diff --git a/src/applications/maniphest/controller/ManiphestTaskEditController.php b/src/applications/maniphest/controller/ManiphestTaskEditController.php
--- a/src/applications/maniphest/controller/ManiphestTaskEditController.php
+++ b/src/applications/maniphest/controller/ManiphestTaskEditController.php
@@ -603,7 +603,7 @@
->setName('cc')
->setValue($cc_value)
->setUser($user)
- ->setDatasource('/typeahead/common/mailable/'));
+ ->setDatasource(new PhabricatorMetaMTAMailableDatasource()));
if ($can_edit_priority) {
$form
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
@@ -365,7 +365,7 @@
->setValue($author_handles))
->appendChild(
id(new AphrontFormTokenizerControl())
- ->setDatasource('/typeahead/common/mailable/')
+ ->setDatasource(new PhabricatorMetaMTAMailableDatasource())
->setName('subscribers')
->setLabel(pht('Subscribers'))
->setValue($subscriber_handles))
diff --git a/src/applications/metamta/typeahead/PhabricatorMetaMTAMailableDatasource.php b/src/applications/metamta/typeahead/PhabricatorMetaMTAMailableDatasource.php
new file mode 100644
--- /dev/null
+++ b/src/applications/metamta/typeahead/PhabricatorMetaMTAMailableDatasource.php
@@ -0,0 +1,22 @@
+<?php
+
+final class PhabricatorMetaMTAMailableDatasource
+ extends PhabricatorTypeaheadCompositeDatasource {
+
+ public function getPlaceholderText() {
+ return pht('Type a user, project, or mailing list name...');
+ }
+
+ public function getDatasourceApplicationClass() {
+ return 'PhabricatorApplicationMetaMTA';
+ }
+
+ public function getComponentDatasources() {
+ return array(
+ new PhabricatorPeopleDatasource(),
+ new PhabricatorProjectDatasource(),
+ new PhabricatorMailingListDatasource(),
+ );
+ }
+
+}
diff --git a/src/applications/pholio/controller/PholioMockEditController.php b/src/applications/pholio/controller/PholioMockEditController.php
--- a/src/applications/pholio/controller/PholioMockEditController.php
+++ b/src/applications/pholio/controller/PholioMockEditController.php
@@ -354,7 +354,7 @@
->setName('cc')
->setValue($handles)
->setUser($user)
- ->setDatasource('/typeahead/common/mailable/'))
+ ->setDatasource(new PhabricatorMetaMTAMailableDatasource()))
->appendChild(
id(new AphrontFormPolicyControl())
->setUser($user)
diff --git a/src/applications/typeahead/controller/PhabricatorTypeaheadCommonDatasourceController.php b/src/applications/typeahead/controller/PhabricatorTypeaheadCommonDatasourceController.php
--- a/src/applications/typeahead/controller/PhabricatorTypeaheadCommonDatasourceController.php
+++ b/src/applications/typeahead/controller/PhabricatorTypeaheadCommonDatasourceController.php
@@ -24,7 +24,6 @@
$need_users = false;
$need_agents = false;
$need_applications = false;
- $need_lists = false;
$need_projs = false;
$need_packages = false;
$need_upforgrabs = false;
@@ -48,12 +47,6 @@
$need_projs = true;
$need_noproject = true;
break;
- case 'mailable':
- case 'allmailable':
- $need_users = true;
- $need_lists = true;
- $need_projs = true;
- break;
case 'usersorprojects':
case 'accountsorprojects':
$need_users = true;
@@ -179,18 +172,6 @@
}
}
- if ($need_lists) {
- $lists = id(new PhabricatorMailingListQuery())
- ->setViewer($viewer)
- ->execute();
- foreach ($lists as $list) {
- $results[] = id(new PhabricatorTypeaheadResult())
- ->setName($list->getName())
- ->setURI($list->getURI())
- ->setPHID($list->getPHID());
- }
- }
-
if ($need_projs) {
$projs = id(new PhabricatorProjectQuery())
->setViewer($viewer)
diff --git a/src/view/form/control/AphrontFormTokenizerControl.php b/src/view/form/control/AphrontFormTokenizerControl.php
--- a/src/view/form/control/AphrontFormTokenizerControl.php
+++ b/src/view/form/control/AphrontFormTokenizerControl.php
@@ -95,19 +95,9 @@
$request = $matches[1];
$map = array(
- 'users' => pht('Type a user name...'),
- 'authors' => pht('Type a user name...'),
'usersorprojects' => pht('Type a user or project name...'),
'searchowner' => pht('Type a user name...'),
- 'accounts' => pht('Type a user name...'),
- 'mailable' => pht('Type a user, project, or mailing list...'),
- 'allmailable' => pht('Type a user, project, or mailing list...'),
'searchproject' => pht('Type a project name...'),
- 'projects' => pht('Type a project name...'),
- 'repositories' => pht('Type a repository name...'),
- 'packages' => pht('Type a package name...'),
- 'macros' => pht('Type a macro name...'),
- 'arcanistproject' => pht('Type an arc project name...'),
'accountsorprojects' => pht('Type a user or project name...'),
'usersprojectsorpackages' =>
pht('Type a user, project, or package name...'),

File Metadata

Mime Type
text/plain
Expires
Sat, May 11, 6:59 AM (3 w, 6 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6285045
Default Alt Text
D9886.id23741.diff (15 KB)

Event Timeline