Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/dashboard/query/PhabricatorDashboardPortalSearchEngine.php
12242 views
1
<?php
2
3
final class PhabricatorDashboardPortalSearchEngine
4
extends PhabricatorApplicationSearchEngine {
5
6
public function getResultTypeDescription() {
7
return pht('Portals');
8
}
9
10
public function getApplicationClassName() {
11
return 'PhabricatorDashboardApplication';
12
}
13
14
public function newQuery() {
15
return new PhabricatorDashboardPortalQuery();
16
}
17
18
protected function buildQueryFromParameters(array $map) {
19
$query = $this->newQuery();
20
return $query;
21
}
22
23
protected function buildCustomSearchFields() {
24
return array();
25
}
26
27
protected function getURI($path) {
28
return '/portal/'.$path;
29
}
30
31
protected function getBuiltinQueryNames() {
32
$names = array();
33
34
$names['all'] = pht('All Portals');
35
36
return $names;
37
}
38
39
public function buildSavedQueryFromBuiltin($query_key) {
40
$query = $this->newSavedQuery();
41
$query->setQueryKey($query_key);
42
$viewer = $this->requireViewer();
43
44
switch ($query_key) {
45
case 'all':
46
return $query;
47
}
48
49
return parent::buildSavedQueryFromBuiltin($query_key);
50
}
51
52
protected function renderResultList(
53
array $portals,
54
PhabricatorSavedQuery $query,
55
array $handles) {
56
57
assert_instances_of($portals, 'PhabricatorDashboardPortal');
58
59
$viewer = $this->requireViewer();
60
61
$list = new PHUIObjectItemListView();
62
$list->setUser($viewer);
63
foreach ($portals as $portal) {
64
$item = id(new PHUIObjectItemView())
65
->setObjectName($portal->getObjectName())
66
->setHeader($portal->getName())
67
->setHref($portal->getURI())
68
->setObject($portal);
69
70
$list->addItem($item);
71
}
72
73
return id(new PhabricatorApplicationSearchResultView())
74
->setObjectList($list)
75
->setNoDataString(pht('No portals found.'));
76
}
77
78
}
79
80