Path: blob/master/src/applications/oauthserver/query/PhabricatorOAuthServerClientSearchEngine.php
12242 views
<?php12final class PhabricatorOAuthServerClientSearchEngine3extends PhabricatorApplicationSearchEngine {45public function getResultTypeDescription() {6return pht('OAuth Clients');7}89public function getApplicationClassName() {10return 'PhabricatorOAuthServerApplication';11}1213public function canUseInPanelContext() {14return false;15}1617public function newQuery() {18return id(new PhabricatorOAuthServerClientQuery());19}2021protected function buildQueryFromParameters(array $map) {22$query = $this->newQuery();2324if ($map['creatorPHIDs']) {25$query->withCreatorPHIDs($map['creatorPHIDs']);26}2728return $query;29}3031protected function buildCustomSearchFields() {32return array(33id(new PhabricatorUsersSearchField())34->setAliases(array('creators'))35->setKey('creatorPHIDs')36->setConduitKey('creators')37->setLabel(pht('Creators'))38->setDescription(39pht('Search for applications created by particular users.')),40);41}4243protected function getURI($path) {44return '/oauthserver/'.$path;45}4647protected function getBuiltinQueryNames() {48$names = array();4950if ($this->requireViewer()->isLoggedIn()) {51$names['created'] = pht('Created');52}5354$names['all'] = pht('All Applications');5556return $names;57}5859public function buildSavedQueryFromBuiltin($query_key) {60$query = $this->newSavedQuery();61$query->setQueryKey($query_key);6263switch ($query_key) {64case 'all':65return $query;66case 'created':67return $query->setParameter(68'creatorPHIDs',69array($this->requireViewer()->getPHID()));70}7172return parent::buildSavedQueryFromBuiltin($query_key);73}7475protected function renderResultList(76array $clients,77PhabricatorSavedQuery $query,78array $handles) {79assert_instances_of($clients, 'PhabricatorOAuthServerClient');8081$viewer = $this->requireViewer();8283$list = id(new PHUIObjectItemListView())84->setUser($viewer);85foreach ($clients as $client) {86$item = id(new PHUIObjectItemView())87->setObjectName(pht('Application %d', $client->getID()))88->setHeader($client->getName())89->setHref($client->getViewURI())90->setObject($client);9192if ($client->getIsDisabled()) {93$item->setDisabled(true);94}9596$list->addItem($item);97}9899$result = new PhabricatorApplicationSearchResultView();100$result->setObjectList($list);101$result->setNoDataString(pht('No clients found.'));102103return $result;104}105106}107108109