mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-23 07:12:41 +01:00
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
This commit is contained in:
parent
2d0ee77bd4
commit
fcdd4a533f
3 changed files with 63 additions and 1 deletions
|
@ -684,6 +684,7 @@ phutil_register_library_map(array(
|
||||||
'FundInitiativeCloseController' => 'applications/fund/controller/FundInitiativeCloseController.php',
|
'FundInitiativeCloseController' => 'applications/fund/controller/FundInitiativeCloseController.php',
|
||||||
'FundInitiativeEditController' => 'applications/fund/controller/FundInitiativeEditController.php',
|
'FundInitiativeEditController' => 'applications/fund/controller/FundInitiativeEditController.php',
|
||||||
'FundInitiativeEditor' => 'applications/fund/editor/FundInitiativeEditor.php',
|
'FundInitiativeEditor' => 'applications/fund/editor/FundInitiativeEditor.php',
|
||||||
|
'FundInitiativeIndexer' => 'applications/fund/search/FundInitiativeIndexer.php',
|
||||||
'FundInitiativeListController' => 'applications/fund/controller/FundInitiativeListController.php',
|
'FundInitiativeListController' => 'applications/fund/controller/FundInitiativeListController.php',
|
||||||
'FundInitiativePHIDType' => 'applications/fund/phid/FundInitiativePHIDType.php',
|
'FundInitiativePHIDType' => 'applications/fund/phid/FundInitiativePHIDType.php',
|
||||||
'FundInitiativeQuery' => 'applications/fund/query/FundInitiativeQuery.php',
|
'FundInitiativeQuery' => 'applications/fund/query/FundInitiativeQuery.php',
|
||||||
|
@ -3579,6 +3580,7 @@ phutil_register_library_map(array(
|
||||||
'FundInitiativeCloseController' => 'FundController',
|
'FundInitiativeCloseController' => 'FundController',
|
||||||
'FundInitiativeEditController' => 'FundController',
|
'FundInitiativeEditController' => 'FundController',
|
||||||
'FundInitiativeEditor' => 'PhabricatorApplicationTransactionEditor',
|
'FundInitiativeEditor' => 'PhabricatorApplicationTransactionEditor',
|
||||||
|
'FundInitiativeIndexer' => 'PhabricatorSearchDocumentIndexer',
|
||||||
'FundInitiativeListController' => 'FundController',
|
'FundInitiativeListController' => 'FundController',
|
||||||
'FundInitiativePHIDType' => 'PhabricatorPHIDType',
|
'FundInitiativePHIDType' => 'PhabricatorPHIDType',
|
||||||
'FundInitiativeQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
'FundInitiativeQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
||||||
|
|
|
@ -277,6 +277,8 @@ final class FundInitiativeEditor
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function supportsSearch() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
58
src/applications/fund/search/FundInitiativeIndexer.php
Normal file
58
src/applications/fund/search/FundInitiativeIndexer.php
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
final class FundInitiativeIndexer
|
||||||
|
extends PhabricatorSearchDocumentIndexer {
|
||||||
|
|
||||||
|
public function getIndexableObject() {
|
||||||
|
return new FundInitiative();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function loadDocumentByPHID($phid) {
|
||||||
|
$object = id(new FundInitiativeQuery())
|
||||||
|
->setViewer($this->getViewer())
|
||||||
|
->withPHIDs(array($phid))
|
||||||
|
->executeOne();
|
||||||
|
if (!$object) {
|
||||||
|
throw new Exception("Unable to load object by phid '{$phid}'!");
|
||||||
|
}
|
||||||
|
return $object;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function buildAbstractDocumentByPHID($phid) {
|
||||||
|
$initiative = $this->loadDocumentByPHID($phid);
|
||||||
|
|
||||||
|
$doc = id(new PhabricatorSearchAbstractDocument())
|
||||||
|
->setPHID($initiative->getPHID())
|
||||||
|
->setDocumentType(FundInitiativePHIDType::TYPECONST)
|
||||||
|
->setDocumentTitle($initiative->getName())
|
||||||
|
->setDocumentCreated($initiative->getDateCreated())
|
||||||
|
->setDocumentModified($initiative->getDateModified());
|
||||||
|
|
||||||
|
$doc->addRelationship(
|
||||||
|
PhabricatorSearchRelationship::RELATIONSHIP_AUTHOR,
|
||||||
|
$initiative->getOwnerPHID(),
|
||||||
|
PhabricatorPeopleUserPHIDType::TYPECONST,
|
||||||
|
$initiative->getDateCreated());
|
||||||
|
|
||||||
|
$doc->addRelationship(
|
||||||
|
PhabricatorSearchRelationship::RELATIONSHIP_OWNER,
|
||||||
|
$initiative->getOwnerPHID(),
|
||||||
|
PhabricatorPeopleUserPHIDType::TYPECONST,
|
||||||
|
$initiative->getDateCreated());
|
||||||
|
|
||||||
|
$doc->addRelationship(
|
||||||
|
$initiative->isClosed()
|
||||||
|
? PhabricatorSearchRelationship::RELATIONSHIP_CLOSED
|
||||||
|
: PhabricatorSearchRelationship::RELATIONSHIP_OPEN,
|
||||||
|
$initiative->getPHID(),
|
||||||
|
FundInitiativePHIDType::TYPECONST,
|
||||||
|
time());
|
||||||
|
|
||||||
|
$this->indexTransactions(
|
||||||
|
$doc,
|
||||||
|
new FundInitiativeTransactionQuery(),
|
||||||
|
array($initiative->getPHID()));
|
||||||
|
|
||||||
|
return $doc;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue