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

Allow Fund initiatives to be searched for

Summary: Ref T5835. Dump these into global search so you can find them.

Test Plan: {F216290}

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T5835

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

+63 -1
+2
src/__phutil_library_map__.php
··· 684 684 'FundInitiativeCloseController' => 'applications/fund/controller/FundInitiativeCloseController.php', 685 685 'FundInitiativeEditController' => 'applications/fund/controller/FundInitiativeEditController.php', 686 686 'FundInitiativeEditor' => 'applications/fund/editor/FundInitiativeEditor.php', 687 + 'FundInitiativeIndexer' => 'applications/fund/search/FundInitiativeIndexer.php', 687 688 'FundInitiativeListController' => 'applications/fund/controller/FundInitiativeListController.php', 688 689 'FundInitiativePHIDType' => 'applications/fund/phid/FundInitiativePHIDType.php', 689 690 'FundInitiativeQuery' => 'applications/fund/query/FundInitiativeQuery.php', ··· 3579 3580 'FundInitiativeCloseController' => 'FundController', 3580 3581 'FundInitiativeEditController' => 'FundController', 3581 3582 'FundInitiativeEditor' => 'PhabricatorApplicationTransactionEditor', 3583 + 'FundInitiativeIndexer' => 'PhabricatorSearchDocumentIndexer', 3582 3584 'FundInitiativeListController' => 'FundController', 3583 3585 'FundInitiativePHIDType' => 'PhabricatorPHIDType', 3584 3586 'FundInitiativeQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
+3 -1
src/applications/fund/editor/FundInitiativeEditor.php
··· 277 277 return true; 278 278 } 279 279 280 - 280 + protected function supportsSearch() { 281 + return true; 282 + } 281 283 282 284 }
+58
src/applications/fund/search/FundInitiativeIndexer.php
··· 1 + <?php 2 + 3 + final class FundInitiativeIndexer 4 + extends PhabricatorSearchDocumentIndexer { 5 + 6 + public function getIndexableObject() { 7 + return new FundInitiative(); 8 + } 9 + 10 + protected function loadDocumentByPHID($phid) { 11 + $object = id(new FundInitiativeQuery()) 12 + ->setViewer($this->getViewer()) 13 + ->withPHIDs(array($phid)) 14 + ->executeOne(); 15 + if (!$object) { 16 + throw new Exception("Unable to load object by phid '{$phid}'!"); 17 + } 18 + return $object; 19 + } 20 + 21 + protected function buildAbstractDocumentByPHID($phid) { 22 + $initiative = $this->loadDocumentByPHID($phid); 23 + 24 + $doc = id(new PhabricatorSearchAbstractDocument()) 25 + ->setPHID($initiative->getPHID()) 26 + ->setDocumentType(FundInitiativePHIDType::TYPECONST) 27 + ->setDocumentTitle($initiative->getName()) 28 + ->setDocumentCreated($initiative->getDateCreated()) 29 + ->setDocumentModified($initiative->getDateModified()); 30 + 31 + $doc->addRelationship( 32 + PhabricatorSearchRelationship::RELATIONSHIP_AUTHOR, 33 + $initiative->getOwnerPHID(), 34 + PhabricatorPeopleUserPHIDType::TYPECONST, 35 + $initiative->getDateCreated()); 36 + 37 + $doc->addRelationship( 38 + PhabricatorSearchRelationship::RELATIONSHIP_OWNER, 39 + $initiative->getOwnerPHID(), 40 + PhabricatorPeopleUserPHIDType::TYPECONST, 41 + $initiative->getDateCreated()); 42 + 43 + $doc->addRelationship( 44 + $initiative->isClosed() 45 + ? PhabricatorSearchRelationship::RELATIONSHIP_CLOSED 46 + : PhabricatorSearchRelationship::RELATIONSHIP_OPEN, 47 + $initiative->getPHID(), 48 + FundInitiativePHIDType::TYPECONST, 49 + time()); 50 + 51 + $this->indexTransactions( 52 + $doc, 53 + new FundInitiativeTransactionQuery(), 54 + array($initiative->getPHID())); 55 + 56 + return $doc; 57 + } 58 + }