Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/nuance/query/NuanceItemSearchEngine.php
12256 views
1
<?php
2
3
final class NuanceItemSearchEngine
4
extends PhabricatorApplicationSearchEngine {
5
6
public function getApplicationClassName() {
7
return 'PhabricatorNuanceApplication';
8
}
9
10
public function getResultTypeDescription() {
11
return pht('Nuance Items');
12
}
13
14
public function newQuery() {
15
return new NuanceItemQuery();
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
29
protected function getURI($path) {
30
return '/nuance/item/'.$path;
31
}
32
33
protected function getBuiltinQueryNames() {
34
$names = array(
35
'all' => pht('All Items'),
36
);
37
38
return $names;
39
}
40
41
public function buildSavedQueryFromBuiltin($query_key) {
42
$query = $this->newSavedQuery();
43
$query->setQueryKey($query_key);
44
45
switch ($query_key) {
46
case 'all':
47
return $query;
48
}
49
50
return parent::buildSavedQueryFromBuiltin($query_key);
51
}
52
53
protected function renderResultList(
54
array $items,
55
PhabricatorSavedQuery $query,
56
array $handles) {
57
assert_instances_of($items, 'NuanceItem');
58
59
$viewer = $this->requireViewer();
60
61
$list = new PHUIObjectItemListView();
62
$list->setUser($viewer);
63
foreach ($items as $item) {
64
$impl = $item->getImplementation();
65
66
$view = id(new PHUIObjectItemView())
67
->setObjectName(pht('Item %d', $item->getID()))
68
->setHeader($item->getDisplayName())
69
->setHref($item->getURI());
70
71
$view->addIcon(
72
$impl->getItemTypeDisplayIcon(),
73
$impl->getItemTypeDisplayName());
74
75
$queue = $item->getQueue();
76
if ($queue) {
77
$view->addAttribute(
78
phutil_tag(
79
'a',
80
array(
81
'href' => $queue->getURI(),
82
),
83
$queue->getName()));
84
} else {
85
$view->addAttribute(phutil_tag('em', array(), pht('Not in Queue')));
86
}
87
88
$list->addItem($view);
89
}
90
91
$result = new PhabricatorApplicationSearchResultView();
92
$result->setObjectList($list);
93
$result->setNoDataString(pht('No items found.'));
94
95
return $result;
96
}
97
98
}
99
100