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

Add a "projects" Search attachment for Conduit APIs

Summary: Ref T9964. Builds on D14772. Allows callers to request project PHIDs for objects.

Test Plan: {F1025468}

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T9964

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

+52
+2
src/__phutil_library_map__.php
··· 2849 2849 'PhabricatorProjectsEditEngineExtension' => 'applications/project/engineextension/PhabricatorProjectsEditEngineExtension.php', 2850 2850 'PhabricatorProjectsEditField' => 'applications/transactions/editfield/PhabricatorProjectsEditField.php', 2851 2851 'PhabricatorProjectsPolicyRule' => 'applications/project/policyrule/PhabricatorProjectsPolicyRule.php', 2852 + 'PhabricatorProjectsSearchEngineAttachment' => 'applications/project/engineextension/PhabricatorProjectsSearchEngineAttachment.php', 2852 2853 'PhabricatorProjectsSearchEngineExtension' => 'applications/project/engineextension/PhabricatorProjectsSearchEngineExtension.php', 2853 2854 'PhabricatorProtocolAdapter' => 'infrastructure/daemon/bot/adapter/PhabricatorProtocolAdapter.php', 2854 2855 'PhabricatorPygmentSetupCheck' => 'applications/config/check/PhabricatorPygmentSetupCheck.php', ··· 7128 7129 'PhabricatorProjectsEditEngineExtension' => 'PhabricatorEditEngineExtension', 7129 7130 'PhabricatorProjectsEditField' => 'PhabricatorTokenizerEditField', 7130 7131 'PhabricatorProjectsPolicyRule' => 'PhabricatorPolicyRule', 7132 + 'PhabricatorProjectsSearchEngineAttachment' => 'PhabricatorSearchEngineAttachment', 7131 7133 'PhabricatorProjectsSearchEngineExtension' => 'PhabricatorSearchEngineExtension', 7132 7134 'PhabricatorProtocolAdapter' => 'Phobject', 7133 7135 'PhabricatorPygmentSetupCheck' => 'PhabricatorSetupCheck',
+43
src/applications/project/engineextension/PhabricatorProjectsSearchEngineAttachment.php
··· 1 + <?php 2 + 3 + final class PhabricatorProjectsSearchEngineAttachment 4 + extends PhabricatorSearchEngineAttachment { 5 + 6 + public function getAttachmentName() { 7 + return pht('Projects'); 8 + } 9 + 10 + public function getAttachmentDescription() { 11 + return pht('Get information about projects.'); 12 + } 13 + 14 + public function loadAttachmentData(array $objects, $spec) { 15 + $object_phids = mpull($objects, 'getPHID'); 16 + 17 + $projects_query = id(new PhabricatorEdgeQuery()) 18 + ->withSourcePHIDs($object_phids) 19 + ->withEdgeTypes( 20 + array( 21 + PhabricatorProjectObjectHasProjectEdgeType::EDGECONST, 22 + )); 23 + $projects_query->execute(); 24 + 25 + return array( 26 + 'projects.query' => $projects_query, 27 + ); 28 + } 29 + 30 + public function getAttachmentForObject($object, $data, $spec) { 31 + $projects_query = $data['projects.query']; 32 + $object_phid = $object->getPHID(); 33 + 34 + $project_phids = $projects_query->getDestinationPHIDs( 35 + array($object_phid), 36 + array(PhabricatorProjectObjectHasProjectEdgeType::EDGECONST)); 37 + 38 + return array( 39 + 'projectPHIDs' => array_values($project_phids), 40 + ); 41 + } 42 + 43 + }
+7
src/applications/project/engineextension/PhabricatorProjectsSearchEngineExtension.php
··· 49 49 return $fields; 50 50 } 51 51 52 + public function getSearchAttachments() { 53 + return array( 54 + id(new PhabricatorProjectsSearchEngineAttachment()) 55 + ->setAttachmentKey('projects'), 56 + ); 57 + } 58 + 52 59 53 60 }