Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/almanac/query/AlmanacInterfaceSearchEngine.php
12256 views
1
<?php
2
3
final class AlmanacInterfaceSearchEngine
4
extends PhabricatorApplicationSearchEngine {
5
6
public function getResultTypeDescription() {
7
return pht('Almanac Interfaces');
8
}
9
10
public function getApplicationClassName() {
11
return 'PhabricatorAlmanacApplication';
12
}
13
14
public function newQuery() {
15
return new AlmanacInterfaceQuery();
16
}
17
18
protected function buildCustomSearchFields() {
19
return array(
20
id(new PhabricatorPHIDsSearchField())
21
->setLabel(pht('Devices'))
22
->setKey('devicePHIDs')
23
->setAliases(array('device', 'devicePHID', 'devices'))
24
->setDescription(pht('Search for interfaces on particular devices.')),
25
);
26
}
27
28
protected function buildQueryFromParameters(array $map) {
29
$query = $this->newQuery();
30
31
if ($map['devicePHIDs']) {
32
$query->withDevicePHIDs($map['devicePHIDs']);
33
}
34
35
return $query;
36
}
37
38
protected function getURI($path) {
39
return '/almanac/interface/'.$path;
40
}
41
42
protected function getBuiltinQueryNames() {
43
$names = array(
44
'all' => pht('All Interfaces'),
45
);
46
47
return $names;
48
}
49
50
public function buildSavedQueryFromBuiltin($query_key) {
51
$query = $this->newSavedQuery();
52
$query->setQueryKey($query_key);
53
54
switch ($query_key) {
55
case 'all':
56
return $query;
57
}
58
59
return parent::buildSavedQueryFromBuiltin($query_key);
60
}
61
62
protected function renderResultList(
63
array $devices,
64
PhabricatorSavedQuery $query,
65
array $handles) {
66
67
// For now, this SearchEngine just supports API access via Conduit.
68
throw new PhutilMethodNotImplementedException();
69
}
70
71
}
72
73