@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
at upstream/main 85 lines 2.0 kB view raw
1<?php 2 3final class PhabricatorProjectColumnSearchEngine 4 extends PhabricatorApplicationSearchEngine { 5 6 public function getResultTypeDescription() { 7 return pht('Workboard Columns'); 8 } 9 10 public function getApplicationClassName() { 11 return PhabricatorProjectApplication::class; 12 } 13 14 public function canUseInPanelContext() { 15 return false; 16 } 17 18 public function newQuery() { 19 return new PhabricatorProjectColumnQuery(); 20 } 21 22 protected function buildCustomSearchFields() { 23 return array( 24 id(new PhabricatorPHIDsSearchField()) 25 ->setLabel(pht('Projects')) 26 ->setKey('projectPHIDs') 27 ->setConduitKey('projects') 28 ->setDescription( 29 pht('Search for objects with specific project PHIDs.')) 30 ->setAliases(array('project', 'projects', 'projectPHID')), 31 ); 32 } 33 34 protected function buildQueryFromParameters(array $map) { 35 $query = $this->newQuery(); 36 37 if ($map['projectPHIDs']) { 38 $query->withProjectPHIDs($map['projectPHIDs']); 39 } 40 41 return $query; 42 } 43 44 protected function getURI($path) { 45 // NOTE: There's no way to query columns in the web UI, at least for 46 // the moment. 47 return ''; 48 } 49 50 protected function getBuiltinQueryNames() { 51 $names = array(); 52 53 $names['all'] = pht('All'); 54 55 return $names; 56 } 57 58 public function buildSavedQueryFromBuiltin($query_key) { 59 $query = $this->newSavedQuery(); 60 $query->setQueryKey($query_key); 61 62 switch ($query_key) { 63 case 'all': 64 return $query; 65 } 66 67 return parent::buildSavedQueryFromBuiltin($query_key); 68 } 69 70 /** 71 * @param array<PhabricatorProjectColumn> $projects 72 * @param PhabricatorSavedQuery $query 73 * @param array<PhabricatorObjectHandle> $handles 74 */ 75 protected function renderResultList( 76 array $projects, 77 PhabricatorSavedQuery $query, 78 array $handles) { 79 assert_instances_of($projects, PhabricatorProjectColumn::class); 80 $viewer = $this->requireViewer(); 81 82 return null; 83 } 84 85}