@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 82 lines 1.9 kB view raw
1<?php 2 3final class NuanceQueueSearchEngine 4 extends PhabricatorApplicationSearchEngine { 5 6 public function getApplicationClassName() { 7 return PhabricatorNuanceApplication::class; 8 } 9 10 public function getResultTypeDescription() { 11 return pht('Nuance Queues'); 12 } 13 14 public function newQuery() { 15 return new NuanceQueueQuery(); 16 } 17 18 protected function buildQueryFromParameters(array $map) { 19 $query = $this->newQuery(); 20 21 return $query; 22 } 23 24 protected function buildCustomSearchFields() { 25 return array(); 26 } 27 28 protected function getURI($path) { 29 return '/nuance/queue/'.$path; 30 } 31 32 protected function getBuiltinQueryNames() { 33 $names = array( 34 'all' => pht('All Queues'), 35 ); 36 37 return $names; 38 } 39 40 public function buildSavedQueryFromBuiltin($query_key) { 41 $query = $this->newSavedQuery(); 42 $query->setQueryKey($query_key); 43 44 switch ($query_key) { 45 case 'all': 46 return $query; 47 } 48 49 return parent::buildSavedQueryFromBuiltin($query_key); 50 } 51 52 /** 53 * @param array<NuanceQueue> $queues 54 * @param PhabricatorSavedQuery $query 55 * @param array<PhabricatorObjectHandle> $handles 56 */ 57 protected function renderResultList( 58 array $queues, 59 PhabricatorSavedQuery $query, 60 array $handles) { 61 assert_instances_of($queues, NuanceQueue::class); 62 63 $viewer = $this->requireViewer(); 64 65 $list = new PHUIObjectItemListView(); 66 $list->setUser($viewer); 67 foreach ($queues as $queue) { 68 $item = id(new PHUIObjectItemView()) 69 ->setObjectName(pht('Queue %d', $queue->getID())) 70 ->setHeader($queue->getName()) 71 ->setHref($queue->getURI()); 72 $list->addItem($item); 73 } 74 75 $result = new PhabricatorApplicationSearchResultView(); 76 $result->setObjectList($list); 77 $result->setNoDataString(pht('No queues found.')); 78 79 return $result; 80 } 81 82}