forked from phacility/phabricator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPhrictionContentSearchEngine.php
76 lines (60 loc) · 1.81 KB
/
PhrictionContentSearchEngine.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
final class PhrictionContentSearchEngine
extends PhabricatorApplicationSearchEngine {
public function getResultTypeDescription() {
return pht('Phriction Document Content');
}
public function getApplicationClassName() {
return 'PhabricatorPhrictionApplication';
}
public function newQuery() {
return new PhrictionContentQuery();
}
protected function buildQueryFromParameters(array $map) {
$query = $this->newQuery();
if ($map['documentPHIDs']) {
$query->withDocumentPHIDs($map['documentPHIDs']);
}
if ($map['versions']) {
$query->withVersions($map['versions']);
}
return $query;
}
protected function buildCustomSearchFields() {
return array(
id(new PhabricatorPHIDsSearchField())
->setKey('documentPHIDs')
->setAliases(array('document', 'documents', 'documentPHID'))
->setLabel(pht('Documents')),
id(new PhabricatorIDsSearchField())
->setKey('versions')
->setAliases(array('version')),
);
}
protected function getURI($path) {
// There's currently no web UI for this search interface, it exists purely
// to power the Conduit API.
throw new PhutilMethodNotImplementedException();
}
protected function getBuiltinQueryNames() {
return array(
'all' => pht('All Content'),
);
}
public function buildSavedQueryFromBuiltin($query_key) {
$query = $this->newSavedQuery();
$query->setQueryKey($query_key);
switch ($query_key) {
case 'all':
return $query;
}
return parent::buildSavedQueryFromBuiltin($query_key);
}
protected function renderResultList(
array $contents,
PhabricatorSavedQuery $query,
array $handles) {
assert_instances_of($contents, 'PhrictionContent');
throw new PhutilMethodNotImplementedException();
}
}