@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 "arcanist project" datasource

Summary: Ref T4420. Do arc projects.

Test Plan:
- Used Herald typeahead.
- Used Repositories typehaead.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T4420

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

+34 -15
+2
src/__phutil_library_map__.php
··· 459 459 'DifferentialUnitStatus' => 'applications/differential/constants/DifferentialUnitStatus.php', 460 460 'DifferentialUnitTestResult' => 'applications/differential/constants/DifferentialUnitTestResult.php', 461 461 'DifferentialViewPolicyField' => 'applications/differential/customfield/DifferentialViewPolicyField.php', 462 + 'DiffusionArcanistProjectDatasource' => 'applications/diffusion/typeahead/DiffusionArcanistProjectDatasource.php', 462 463 'DiffusionBranchTableController' => 'applications/diffusion/controller/DiffusionBranchTableController.php', 463 464 'DiffusionBranchTableView' => 'applications/diffusion/view/DiffusionBranchTableView.php', 464 465 'DiffusionBrowseController' => 'applications/diffusion/controller/DiffusionBrowseController.php', ··· 3175 3176 'DifferentialTransactionView' => 'PhabricatorApplicationTransactionView', 3176 3177 'DifferentialUnitField' => 'DifferentialCustomField', 3177 3178 'DifferentialViewPolicyField' => 'DifferentialCoreCustomField', 3179 + 'DiffusionArcanistProjectDatasource' => 'PhabricatorTypeaheadDatasource', 3178 3180 'DiffusionBranchTableController' => 'DiffusionController', 3179 3181 'DiffusionBranchTableView' => 'DiffusionView', 3180 3182 'DiffusionBrowseController' => 'DiffusionController',
+30
src/applications/diffusion/typeahead/DiffusionArcanistProjectDatasource.php
··· 1 + <?php 2 + 3 + final class DiffusionArcanistProjectDatasource 4 + extends PhabricatorTypeaheadDatasource { 5 + 6 + public function getPlaceholderText() { 7 + return pht('Type an arcanist project name...'); 8 + } 9 + 10 + public function getDatasourceApplicationClass() { 11 + return 'PhabricatorApplicationDiffusion'; 12 + } 13 + 14 + public function loadResults() { 15 + $viewer = $this->getViewer(); 16 + $raw_query = $this->getRawQuery(); 17 + 18 + $results = array(); 19 + 20 + $arcprojs = id(new PhabricatorRepositoryArcanistProject())->loadAll(); 21 + foreach ($arcprojs as $proj) { 22 + $results[] = id(new PhabricatorTypeaheadResult()) 23 + ->setName($proj->getName()) 24 + ->setPHID($proj->getPHID()); 25 + } 26 + 27 + return $results; 28 + } 29 + 30 + }
+1 -1
src/applications/herald/controller/HeraldRuleController.php
··· 593 593 'legaldocuments' => new LegalpadDocumentDatasource(), 594 594 'taskpriority' => new ManiphestTaskPriorityDatasource(), 595 595 'buildplan' => new HarbormasterBuildPlanDatasource(), 596 + 'arcanistprojects' => new DiffusionArcanistProjectDatasource(), 596 597 ); 597 598 598 599 $sources = mpull($sources, 'getDatasourceURI'); ··· 602 603 'package' => '/typeahead/common/packages/', 603 604 'project' => '/typeahead/common/projects/', 604 605 'userorproject' => '/typeahead/common/accountsorprojects/', 605 - 'arcanistprojects' => '/typeahead/common/arcanistprojects/', 606 606 ); 607 607 608 608 return array(
+1 -1
src/applications/repository/controller/PhabricatorRepositoryArcanistProjectEditController.php
··· 95 95 id(new AphrontFormTokenizerControl()) 96 96 ->setLabel('Uses Symbols From') 97 97 ->setName('symbolIndexProjects') 98 - ->setDatasource('/typeahead/common/arcanistprojects/') 98 + ->setDatasource(new DiffusionArcanistProjectDatasource()) 99 99 ->setValue($uses)) 100 100 ->appendChild( 101 101 id(new AphrontFormSubmitControl())
-13
src/applications/typeahead/controller/PhabricatorTypeaheadCommonDatasourceController.php
··· 28 28 $need_projs = false; 29 29 $need_packages = false; 30 30 $need_upforgrabs = false; 31 - $need_arcanist_projects = false; 32 31 $need_noproject = false; 33 32 $need_symbols = false; 34 33 $need_jump_objects = false; ··· 75 74 break; 76 75 case 'packages': 77 76 $need_packages = true; 78 - break; 79 - case 'arcanistprojects': 80 - $need_arcanist_projects = true; 81 77 break; 82 78 } 83 79 ··· 240 236 ->setName($package->getName()) 241 237 ->setURI('/owners/package/'.$package->getID().'/') 242 238 ->setPHID($package->getPHID()); 243 - } 244 - } 245 - 246 - if ($need_arcanist_projects) { 247 - $arcprojs = id(new PhabricatorRepositoryArcanistProject())->loadAll(); 248 - foreach ($arcprojs as $proj) { 249 - $results[] = id(new PhabricatorTypeaheadResult()) 250 - ->setName($proj->getName()) 251 - ->setPHID($proj->getPHID()); 252 239 } 253 240 } 254 241