Correct a parameter order swap in "diffusion.historyquery" for Mercurial
[phabricator.git] / src / applications / oauthserver / query / PhabricatorOAuthServerClientSearchEngine.php
blobe07b1ea2c27b32772de48863bda9567ef0913cc8
1 <?php
3 final class PhabricatorOAuthServerClientSearchEngine
4 extends PhabricatorApplicationSearchEngine {
6 public function getResultTypeDescription() {
7 return pht('OAuth Clients');
10 public function getApplicationClassName() {
11 return 'PhabricatorOAuthServerApplication';
14 public function canUseInPanelContext() {
15 return false;
18 public function newQuery() {
19 return id(new PhabricatorOAuthServerClientQuery());
22 protected function buildQueryFromParameters(array $map) {
23 $query = $this->newQuery();
25 if ($map['creatorPHIDs']) {
26 $query->withCreatorPHIDs($map['creatorPHIDs']);
29 return $query;
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.')),
44 protected function getURI($path) {
45 return '/oauthserver/'.$path;
48 protected function getBuiltinQueryNames() {
49 $names = array();
51 if ($this->requireViewer()->isLoggedIn()) {
52 $names['created'] = pht('Created');
55 $names['all'] = pht('All Applications');
57 return $names;
60 public function buildSavedQueryFromBuiltin($query_key) {
61 $query = $this->newSavedQuery();
62 $query->setQueryKey($query_key);
64 switch ($query_key) {
65 case 'all':
66 return $query;
67 case 'created':
68 return $query->setParameter(
69 'creatorPHIDs',
70 array($this->requireViewer()->getPHID()));
73 return parent::buildSavedQueryFromBuiltin($query_key);
76 protected function renderResultList(
77 array $clients,
78 PhabricatorSavedQuery $query,
79 array $handles) {
80 assert_instances_of($clients, 'PhabricatorOAuthServerClient');
82 $viewer = $this->requireViewer();
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);
93 if ($client->getIsDisabled()) {
94 $item->setDisabled(true);
97 $list->addItem($item);
100 $result = new PhabricatorApplicationSearchResultView();
101 $result->setObjectList($list);
102 $result->setNoDataString(pht('No clients found.'));
104 return $result;