[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/oauthserver/query/ -> PhabricatorOAuthServerClientSearchEngine.php (source)

   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 buildSavedQueryFromRequest(AphrontRequest $request) {
  15      $saved = new PhabricatorSavedQuery();
  16  
  17      $saved->setParameter(
  18        'creatorPHIDs',
  19        $this->readUsersFromRequest($request, 'creators'));
  20  
  21      return $saved;
  22    }
  23  
  24    public function buildQueryFromSavedQuery(PhabricatorSavedQuery $saved) {
  25      $query = id(new PhabricatorOAuthServerClientQuery());
  26  
  27      $creator_phids = $saved->getParameter('creatorPHIDs', array());
  28      if ($creator_phids) {
  29        $query->withCreatorPHIDs($saved->getParameter('creatorPHIDs', array()));
  30      }
  31  
  32      return $query;
  33    }
  34  
  35    public function buildSearchForm(
  36      AphrontFormView $form,
  37      PhabricatorSavedQuery $saved_query) {
  38  
  39      $phids = $saved_query->getParameter('creatorPHIDs', array());
  40      $creator_handles = id(new PhabricatorHandleQuery())
  41        ->setViewer($this->requireViewer())
  42        ->withPHIDs($phids)
  43        ->execute();
  44  
  45      $form
  46        ->appendChild(
  47          id(new AphrontFormTokenizerControl())
  48            ->setDatasource(new PhabricatorPeopleDatasource())
  49            ->setName('creators')
  50            ->setLabel(pht('Creators'))
  51            ->setValue($creator_handles));
  52    }
  53  
  54    protected function getURI($path) {
  55      return '/oauthserver/'.$path;
  56    }
  57  
  58    public function getBuiltinQueryNames() {
  59      $names = array();
  60  
  61      if ($this->requireViewer()->isLoggedIn()) {
  62        $names['created'] = pht('Created');
  63      }
  64  
  65      $names['all'] = pht('All Applications');
  66  
  67      return $names;
  68    }
  69  
  70    public function buildSavedQueryFromBuiltin($query_key) {
  71      $query = $this->newSavedQuery();
  72      $query->setQueryKey($query_key);
  73  
  74      switch ($query_key) {
  75        case 'all':
  76          return $query;
  77        case 'created':
  78          return $query->setParameter(
  79            'creatorPHIDs',
  80            array($this->requireViewer()->getPHID()));
  81      }
  82  
  83      return parent::buildSavedQueryFromBuiltin($query_key);
  84    }
  85  
  86    protected function getRequiredHandlePHIDsForResultList(
  87      array $clients,
  88      PhabricatorSavedQuery $query) {
  89      return mpull($clients, 'getCreatorPHID');
  90    }
  91  
  92    protected function renderResultList(
  93      array $clients,
  94      PhabricatorSavedQuery $query,
  95      array $handles) {
  96      assert_instances_of($clients, 'PhabricatorOauthServerClient');
  97  
  98      $viewer = $this->requireViewer();
  99  
 100      $list = id(new PHUIObjectItemListView())
 101        ->setUser($viewer);
 102      foreach ($clients as $client) {
 103        $creator = $handles[$client->getCreatorPHID()];
 104  
 105        $item = id(new PHUIObjectItemView())
 106          ->setObjectName(pht('Application %d', $client->getID()))
 107          ->setHeader($client->getName())
 108          ->setHref($client->getViewURI())
 109          ->setObject($client)
 110          ->addByline(pht('Creator: %s', $creator->renderLink()));
 111  
 112        $list->addItem($item);
 113      }
 114  
 115      return $list;
 116    }
 117  
 118  }


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1