3 final class PhabricatorSpacesSearchEngineExtension
4 extends PhabricatorSearchEngineExtension
{
6 const EXTENSIONKEY
= 'spaces';
8 public function isExtensionEnabled() {
9 return PhabricatorApplication
::isClassInstalled(
10 'PhabricatorSpacesApplication');
13 public function getExtensionName() {
14 return pht('Support for Spaces');
17 public function getExtensionOrder() {
21 public function supportsObject($object) {
22 return ($object instanceof PhabricatorSpacesInterface
);
25 public function getSearchFields($object) {
28 if (PhabricatorSpacesNamespaceQuery
::getSpacesExist()) {
29 $fields[] = id(new PhabricatorSpacesSearchField())
30 ->setKey('spacePHIDs')
31 ->setConduitKey('spaces')
32 ->setAliases(array('space', 'spaces'))
33 ->setLabel(pht('Spaces'))
35 pht('Search for objects in certain spaces.'));
41 public function applyConstraintsToQuery(
44 PhabricatorSavedQuery
$saved,
47 if (!empty($map['spacePHIDs'])) {
48 $query->withSpacePHIDs($map['spacePHIDs']);
50 // If the user doesn't search for objects in specific spaces, we
51 // default to "all active spaces you have permission to view".
52 $query->withSpaceIsArchived(false);
56 public function getFieldSpecificationsForConduit($object) {
58 id(new PhabricatorConduitSearchFieldSpecification())
62 pht('PHID of the policy space this object is part of.')),
66 public function getFieldValuesForConduit($object, $data) {
68 'spacePHID' => $object->getSpacePHID(),