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

at upstream/main 98 lines 2.5 kB view raw
1<?php 2 3final class PhabricatorPackagesPackageSearchEngine 4 extends PhabricatorApplicationSearchEngine { 5 6 public function getResultTypeDescription() { 7 return pht('Packages'); 8 } 9 10 public function getApplicationClassName() { 11 return PhabricatorPackagesApplication::class; 12 } 13 14 public function newQuery() { 15 return id(new PhabricatorPackagesPackageQuery()); 16 } 17 18 public function canUseInPanelContext() { 19 return false; 20 } 21 22 protected function buildQueryFromParameters(array $map) { 23 $query = $this->newQuery(); 24 25 if ($map['match'] !== null) { 26 $query->withNameNgrams($map['match']); 27 } 28 29 if ($map['publisherPHIDs']) { 30 $query->withPublisherPHIDs($map['publisherPHIDs']); 31 } 32 33 return $query; 34 } 35 36 protected function buildCustomSearchFields() { 37 return array( 38 id(new PhabricatorSearchTextField()) 39 ->setLabel(pht('Name Contains')) 40 ->setKey('match') 41 ->setDescription(pht('Search for packages by name substring.')), 42 id(new PhabricatorSearchDatasourceField()) 43 ->setLabel(pht('Publishers')) 44 ->setKey('publisherPHIDs') 45 ->setAliases(array('publisherPHID', 'publisher', 'publishers')) 46 ->setDatasource(new PhabricatorPackagesPublisherDatasource()) 47 ->setDescription(pht('Search for packages by publisher.')), 48 ); 49 } 50 51 protected function getURI($path) { 52 return '/packages/package/'.$path; 53 } 54 55 protected function getBuiltinQueryNames() { 56 $names = array( 57 'all' => pht('All Packages'), 58 ); 59 60 return $names; 61 } 62 63 public function buildSavedQueryFromBuiltin($query_key) { 64 $query = $this->newSavedQuery(); 65 $query->setQueryKey($query_key); 66 67 switch ($query_key) { 68 case 'all': 69 return $query; 70 } 71 72 return parent::buildSavedQueryFromBuiltin($query_key); 73 } 74 75 /** 76 * @param array<PhabricatorPackagesPackage> $packages 77 * @param PhabricatorSavedQuery $query 78 * @param array<PhabricatorObjectHandle> $handles 79 */ 80 protected function renderResultList( 81 array $packages, 82 PhabricatorSavedQuery $query, 83 array $handles) { 84 85 assert_instances_of($packages, PhabricatorPackagesPackage::class); 86 $viewer = $this->requireViewer(); 87 88 $list = id(new PhabricatorPackagesPackageListView()) 89 ->setViewer($viewer) 90 ->setPackages($packages) 91 ->newListView(); 92 93 return id(new PhabricatorApplicationSearchResultView()) 94 ->setObjectList($list) 95 ->setNoDataString(pht('No packages found.')); 96 } 97 98}