@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Modernize "user, project or package" typeahead datasource

Summary: Ref T4420. Call this "auditor" since that's what it is.

Test Plan:
- Edited auditors in auditor search.
- Edited auditors in "add auditors" in Diffusion.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T4420

Differential Revision: https://secure.phabricator.com/D9888

+28 -23
+2
src/__phutil_library_map__.php
··· 465 465 'DifferentialUnitTestResult' => 'applications/differential/constants/DifferentialUnitTestResult.php', 466 466 'DifferentialViewPolicyField' => 'applications/differential/customfield/DifferentialViewPolicyField.php', 467 467 'DiffusionArcanistProjectDatasource' => 'applications/diffusion/typeahead/DiffusionArcanistProjectDatasource.php', 468 + 'DiffusionAuditorDatasource' => 'applications/diffusion/typeahead/DiffusionAuditorDatasource.php', 468 469 'DiffusionBranchTableController' => 'applications/diffusion/controller/DiffusionBranchTableController.php', 469 470 'DiffusionBranchTableView' => 'applications/diffusion/view/DiffusionBranchTableView.php', 470 471 'DiffusionBrowseController' => 'applications/diffusion/controller/DiffusionBrowseController.php', ··· 3186 3187 'DifferentialUnitField' => 'DifferentialCustomField', 3187 3188 'DifferentialViewPolicyField' => 'DifferentialCoreCustomField', 3188 3189 'DiffusionArcanistProjectDatasource' => 'PhabricatorTypeaheadDatasource', 3190 + 'DiffusionAuditorDatasource' => 'PhabricatorTypeaheadCompositeDatasource', 3189 3191 'DiffusionBranchTableController' => 'DiffusionController', 3190 3192 'DiffusionBranchTableView' => 'DiffusionView', 3191 3193 'DiffusionBrowseController' => 'DiffusionController',
+1 -1
src/applications/audit/query/PhabricatorCommitSearchEngine.php
··· 85 85 $form 86 86 ->appendChild( 87 87 id(new AphrontFormTokenizerControl()) 88 - ->setDatasource('/typeahead/common/usersprojectsorpackages/') 88 + ->setDatasource(new DiffusionAuditorDatasource()) 89 89 ->setName('auditorPHIDs') 90 90 ->setLabel(pht('Auditors')) 91 91 ->setValue(array_select_keys($handles, $auditor_phids)))
+3 -2
src/applications/diffusion/controller/DiffusionCommitController.php
··· 772 772 require_celerity_resource('phabricator-transaction-view-css'); 773 773 774 774 $mailable_source = new PhabricatorMetaMTAMailableDatasource(); 775 + $auditor_source = new DiffusionAuditorDatasource(); 775 776 776 777 Javelin::initBehavior( 777 778 'differential-add-reviewers-and-ccs', ··· 779 780 'dynamic' => array( 780 781 'add-auditors-tokenizer' => array( 781 782 'actions' => array('add_auditors' => 1), 782 - 'src' => '/typeahead/common/usersprojectsorpackages/', 783 + 'src' => $auditor_source->getDatasourceURI(), 783 784 'row' => 'add-auditors', 784 - 'placeholder' => pht('Type a user, project, or package name...'), 785 + 'placeholder' => $auditor_source->getPlaceholderText(), 785 786 ), 786 787 'add-ccs-tokenizer' => array( 787 788 'actions' => array('add_ccs' => 1),
+22
src/applications/diffusion/typeahead/DiffusionAuditorDatasource.php
··· 1 + <?php 2 + 3 + final class DiffusionAuditorDatasource 4 + extends PhabricatorTypeaheadCompositeDatasource { 5 + 6 + public function getPlaceholderText() { 7 + return pht('Type a user, project or package name...'); 8 + } 9 + 10 + public function getDatasourceApplicationClass() { 11 + return 'PhabricatorApplicationDiffusion'; 12 + } 13 + 14 + public function getComponentDatasources() { 15 + return array( 16 + new PhabricatorPeopleDatasource(), 17 + new PhabricatorProjectDatasource(), 18 + new PhabricatorOwnersPackageDatasource(), 19 + ); 20 + } 21 + 22 + }
-18
src/applications/typeahead/controller/PhabricatorTypeaheadCommonDatasourceController.php
··· 22 22 $need_rich_data = false; 23 23 24 24 $need_users = false; 25 - $need_agents = false; 26 25 $need_applications = false; 27 26 $need_projs = false; 28 - $need_packages = false; 29 27 $need_upforgrabs = false; 30 28 $need_noproject = false; 31 29 $need_symbols = false; ··· 46 44 case 'searchproject': 47 45 $need_projs = true; 48 46 $need_noproject = true; 49 - break; 50 - case 'usersprojectsorpackages': 51 - $need_users = true; 52 - $need_projs = true; 53 - $need_packages = true; 54 47 break; 55 48 } 56 49 ··· 190 183 $proj_result->setImageURI($proj->getProfileImageURI()); 191 184 192 185 $results[] = $proj_result; 193 - } 194 - } 195 - 196 - if ($need_packages) { 197 - $packages = id(new PhabricatorOwnersPackage())->loadAll(); 198 - foreach ($packages as $package) { 199 - $results[] = id(new PhabricatorTypeaheadResult()) 200 - ->setIcon('fa-list-alt bluegrey') 201 - ->setName($package->getName()) 202 - ->setURI('/owners/package/'.$package->getID().'/') 203 - ->setPHID($package->getPHID()); 204 186 } 205 187 } 206 188
-2
src/view/form/control/AphrontFormTokenizerControl.php
··· 97 97 $map = array( 98 98 'searchowner' => pht('Type a user name...'), 99 99 'searchproject' => pht('Type a project name...'), 100 - 'usersprojectsorpackages' => 101 - pht('Type a user, project, or package name...'), 102 100 ); 103 101 104 102 return idx($map, $request);