[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/drydock/query/ -> DrydockResourceSearchEngine.php (source)

   1  <?php
   2  
   3  final class DrydockResourceSearchEngine
   4    extends PhabricatorApplicationSearchEngine {
   5  
   6    public function getResultTypeDescription() {
   7      return pht('Drydock Resources');
   8    }
   9  
  10    public function getApplicationClassName() {
  11      return 'PhabricatorDrydockApplication';
  12    }
  13  
  14    public function buildSavedQueryFromRequest(AphrontRequest $request) {
  15      $saved = new PhabricatorSavedQuery();
  16  
  17      $saved->setParameter(
  18        'statuses',
  19        $this->readListFromRequest($request, 'statuses'));
  20  
  21      return $saved;
  22    }
  23  
  24    public function buildQueryFromSavedQuery(PhabricatorSavedQuery $saved) {
  25      $query = id(new DrydockResourceQuery());
  26  
  27      $statuses = $saved->getParameter('statuses', array());
  28      if ($statuses) {
  29        $query->withStatuses($statuses);
  30      }
  31  
  32      return $query;
  33    }
  34  
  35    public function buildSearchForm(
  36      AphrontFormView $form,
  37      PhabricatorSavedQuery $saved) {
  38  
  39      $statuses = $saved->getParameter('statuses', array());
  40  
  41      $status_control = id(new AphrontFormCheckboxControl())
  42        ->setLabel(pht('Status'));
  43      foreach (DrydockResourceStatus::getAllStatuses() as $status) {
  44        $status_control->addCheckbox(
  45          'statuses[]',
  46          $status,
  47          DrydockResourceStatus::getNameForStatus($status),
  48          in_array($status, $statuses));
  49      }
  50  
  51      $form
  52        ->appendChild($status_control);
  53    }
  54  
  55    protected function getURI($path) {
  56      return '/drydock/resource/'.$path;
  57    }
  58  
  59    public function getBuiltinQueryNames() {
  60      return array(
  61        'active' => pht('Active Resources'),
  62        'all' => pht('All Resources'),
  63      );
  64    }
  65  
  66    public function buildSavedQueryFromBuiltin($query_key) {
  67      $query = $this->newSavedQuery();
  68      $query->setQueryKey($query_key);
  69  
  70      switch ($query_key) {
  71        case 'active':
  72          return $query->setParameter(
  73            'statuses',
  74            array(
  75              DrydockResourceStatus::STATUS_PENDING,
  76              DrydockResourceStatus::STATUS_OPEN,
  77            ));
  78        case 'all':
  79          return $query;
  80      }
  81  
  82      return parent::buildSavedQueryFromBuiltin($query_key);
  83    }
  84  
  85    protected function renderResultList(
  86      array $resources,
  87      PhabricatorSavedQuery $query,
  88      array $handles) {
  89  
  90      return id(new DrydockResourceListView())
  91        ->setUser($this->requireViewer())
  92        ->setResources($resources)
  93        ->render();
  94    }
  95  
  96  }


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