@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<?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}