Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/packages/query/PhabricatorPackagesPublisherSearchEngine.php
12242 views
1
<?php
2
3
final class PhabricatorPackagesPublisherSearchEngine
4
extends PhabricatorApplicationSearchEngine {
5
6
public function getResultTypeDescription() {
7
return pht('Package Publishers');
8
}
9
10
public function getApplicationClassName() {
11
return 'PhabricatorPackagesApplication';
12
}
13
14
public function newQuery() {
15
return id(new PhabricatorPackagesPublisherQuery());
16
}
17
18
public function canUseInPanelContext() {
19
return false;
20
}
21
22
protected function buildQueryFromParameters(array $map) {
23
$query = $this->newQuery();
24
25
if ($map['match'] !== null) {
26
$query->withNameNgrams($map['match']);
27
}
28
29
return $query;
30
}
31
32
protected function buildCustomSearchFields() {
33
return array(
34
id(new PhabricatorSearchTextField())
35
->setLabel(pht('Name Contains'))
36
->setKey('match')
37
->setDescription(pht('Search for publishers by name substring.')),
38
);
39
}
40
41
protected function getURI($path) {
42
return '/packages/publisher/'.$path;
43
}
44
45
protected function getBuiltinQueryNames() {
46
$names = array(
47
'all' => pht('All Publishers'),
48
);
49
50
return $names;
51
}
52
53
public function buildSavedQueryFromBuiltin($query_key) {
54
$query = $this->newSavedQuery();
55
$query->setQueryKey($query_key);
56
57
switch ($query_key) {
58
case 'all':
59
return $query;
60
}
61
62
return parent::buildSavedQueryFromBuiltin($query_key);
63
}
64
65
protected function renderResultList(
66
array $publishers,
67
PhabricatorSavedQuery $query,
68
array $handles) {
69
70
assert_instances_of($publishers, 'PhabricatorPackagesPublisher');
71
72
$viewer = $this->requireViewer();
73
74
$list = id(new PhabricatorPackagesPublisherListView())
75
->setViewer($viewer)
76
->setPublishers($publishers)
77
->newListView();
78
79
return id(new PhabricatorApplicationSearchResultView())
80
->setObjectList($list)
81
->setNoDataString(pht('No publishers found.'));
82
}
83
84
}
85
86