[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

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

   1  <?php
   2  
   3  final class DrydockLeaseSearchEngine
   4    extends PhabricatorApplicationSearchEngine {
   5  
   6    public function getResultTypeDescription() {
   7      return pht('Drydock Leases');
   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 DrydockLeaseQuery());
  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 (DrydockLeaseStatus::getAllStatuses() as $status) {
  44        $status_control->addCheckbox(
  45          'statuses[]',
  46          $status,
  47          DrydockLeaseStatus::getNameForStatus($status),
  48          in_array($status, $statuses));
  49      }
  50  
  51      $form
  52        ->appendChild($status_control);
  53  
  54    }
  55  
  56    protected function getURI($path) {
  57      return '/drydock/lease/'.$path;
  58    }
  59  
  60    public function getBuiltinQueryNames() {
  61      return array(
  62        'active' => pht('Active Leases'),
  63        'all' => pht('All Leases'),
  64      );
  65    }
  66  
  67    public function buildSavedQueryFromBuiltin($query_key) {
  68      $query = $this->newSavedQuery();
  69      $query->setQueryKey($query_key);
  70  
  71      switch ($query_key) {
  72        case 'active':
  73          return $query->setParameter(
  74            'statuses',
  75            array(
  76              DrydockLeaseStatus::STATUS_PENDING,
  77              DrydockLeaseStatus::STATUS_ACQUIRING,
  78              DrydockLeaseStatus::STATUS_ACTIVE,
  79            ));
  80        case 'all':
  81          return $query;
  82      }
  83  
  84      return parent::buildSavedQueryFromBuiltin($query_key);
  85    }
  86  
  87    protected function renderResultList(
  88      array $leases,
  89      PhabricatorSavedQuery $saved,
  90      array $handles) {
  91  
  92      return id(new DrydockLeaseListView())
  93        ->setUser($this->requireViewer())
  94        ->setLeases($leases)
  95        ->render();
  96    }
  97  
  98  }


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