Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/oauthserver/query/PhabricatorOAuthServerClientSearchEngine.php
12242 views
1
<?php
2
3
final class PhabricatorOAuthServerClientSearchEngine
4
extends PhabricatorApplicationSearchEngine {
5
6
public function getResultTypeDescription() {
7
return pht('OAuth Clients');
8
}
9
10
public function getApplicationClassName() {
11
return 'PhabricatorOAuthServerApplication';
12
}
13
14
public function canUseInPanelContext() {
15
return false;
16
}
17
18
public function newQuery() {
19
return id(new PhabricatorOAuthServerClientQuery());
20
}
21
22
protected function buildQueryFromParameters(array $map) {
23
$query = $this->newQuery();
24
25
if ($map['creatorPHIDs']) {
26
$query->withCreatorPHIDs($map['creatorPHIDs']);
27
}
28
29
return $query;
30
}
31
32
protected function buildCustomSearchFields() {
33
return array(
34
id(new PhabricatorUsersSearchField())
35
->setAliases(array('creators'))
36
->setKey('creatorPHIDs')
37
->setConduitKey('creators')
38
->setLabel(pht('Creators'))
39
->setDescription(
40
pht('Search for applications created by particular users.')),
41
);
42
}
43
44
protected function getURI($path) {
45
return '/oauthserver/'.$path;
46
}
47
48
protected function getBuiltinQueryNames() {
49
$names = array();
50
51
if ($this->requireViewer()->isLoggedIn()) {
52
$names['created'] = pht('Created');
53
}
54
55
$names['all'] = pht('All Applications');
56
57
return $names;
58
}
59
60
public function buildSavedQueryFromBuiltin($query_key) {
61
$query = $this->newSavedQuery();
62
$query->setQueryKey($query_key);
63
64
switch ($query_key) {
65
case 'all':
66
return $query;
67
case 'created':
68
return $query->setParameter(
69
'creatorPHIDs',
70
array($this->requireViewer()->getPHID()));
71
}
72
73
return parent::buildSavedQueryFromBuiltin($query_key);
74
}
75
76
protected function renderResultList(
77
array $clients,
78
PhabricatorSavedQuery $query,
79
array $handles) {
80
assert_instances_of($clients, 'PhabricatorOAuthServerClient');
81
82
$viewer = $this->requireViewer();
83
84
$list = id(new PHUIObjectItemListView())
85
->setUser($viewer);
86
foreach ($clients as $client) {
87
$item = id(new PHUIObjectItemView())
88
->setObjectName(pht('Application %d', $client->getID()))
89
->setHeader($client->getName())
90
->setHref($client->getViewURI())
91
->setObject($client);
92
93
if ($client->getIsDisabled()) {
94
$item->setDisabled(true);
95
}
96
97
$list->addItem($item);
98
}
99
100
$result = new PhabricatorApplicationSearchResultView();
101
$result->setObjectList($list);
102
$result->setNoDataString(pht('No clients found.'));
103
104
return $result;
105
}
106
107
}
108
109