@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 recaptime-dev/main 96 lines 2.3 kB view raw
1<?php 2 3final class PhabricatorEditEngineSearchEngine 4 extends PhabricatorApplicationSearchEngine { 5 6 public function getResultTypeDescription() { 7 return pht('Edit Engines'); 8 } 9 10 public function getApplicationClassName() { 11 return PhabricatorTransactionsApplication::class; 12 } 13 14 public function newQuery() { 15 return id(new PhabricatorEditEngineQuery()); 16 } 17 18 public function canUseInPanelContext() { 19 return false; 20 } 21 22 protected function buildQueryFromParameters(array $map) { 23 $query = $this->newQuery(); 24 return $query; 25 } 26 27 protected function buildCustomSearchFields() { 28 return array(); 29 } 30 31 protected function getDefaultFieldOrder() { 32 return array(); 33 } 34 35 protected function getURI($path) { 36 return '/transactions/editengine/'.$path; 37 } 38 39 protected function getBuiltinQueryNames() { 40 $names = array( 41 'all' => pht('All Edit Engines'), 42 ); 43 44 return $names; 45 } 46 47 public function buildSavedQueryFromBuiltin($query_key) { 48 $query = $this->newSavedQuery(); 49 $query->setQueryKey($query_key); 50 51 switch ($query_key) { 52 case 'all': 53 return $query; 54 } 55 56 return parent::buildSavedQueryFromBuiltin($query_key); 57 } 58 59 /** 60 * @param array<PhabricatorEditEngine> $engines 61 * @param PhabricatorSavedQuery $query 62 * @param array<PhabricatorObjectHandle> $handles 63 */ 64 protected function renderResultList( 65 array $engines, 66 PhabricatorSavedQuery $query, 67 array $handles) { 68 assert_instances_of($engines, PhabricatorEditEngine::class); 69 $viewer = $this->requireViewer(); 70 71 $list = id(new PHUIObjectItemListView()) 72 ->setUser($viewer); 73 foreach ($engines as $engine) { 74 if (!$engine->isEngineConfigurable()) { 75 continue; 76 } 77 78 $engine_key = $engine->getEngineKey(); 79 $query_uri = "/transactions/editengine/{$engine_key}/"; 80 81 $application = $engine->getApplication(); 82 $app_icon = $application->getIcon(); 83 84 $item = id(new PHUIObjectItemView()) 85 ->setHeader($engine->getSummaryHeader()) 86 ->setHref($query_uri) 87 ->setStatusIcon($app_icon) 88 ->addAttribute($engine->getSummaryText()); 89 90 $list->addItem($item); 91 } 92 93 return id(new PhabricatorApplicationSearchResultView()) 94 ->setObjectList($list); 95 } 96}