[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/mailinglists/query/ -> PhabricatorMailingListSearchEngine.php (source)

   1  <?php
   2  
   3  final class PhabricatorMailingListSearchEngine
   4    extends PhabricatorApplicationSearchEngine {
   5  
   6    public function getResultTypeDescription() {
   7      return pht('Mailing Lists');
   8    }
   9  
  10    public function getApplicationClassName() {
  11      return 'PhabricatorMailingListsApplication';
  12    }
  13  
  14    public function buildSavedQueryFromRequest(AphrontRequest $request) {
  15      $saved = new PhabricatorSavedQuery();
  16  
  17      return $saved;
  18    }
  19  
  20    public function buildQueryFromSavedQuery(PhabricatorSavedQuery $saved) {
  21      $query = id(new PhabricatorMailingListQuery());
  22  
  23      return $query;
  24    }
  25  
  26    public function buildSearchForm(
  27      AphrontFormView $form,
  28      PhabricatorSavedQuery $saved_query) {
  29  
  30      // This just makes it clear to the user that the lack of filters is
  31      // intentional, not a bug.
  32      $form->appendChild(
  33        id(new AphrontFormMarkupControl())
  34          ->setValue(pht('No query filters are available for mailing lists.')));
  35    }
  36  
  37    protected function getURI($path) {
  38      return '/mailinglists/'.$path;
  39    }
  40  
  41    public function getBuiltinQueryNames() {
  42      return array(
  43        'all' => pht('All Lists'),
  44      );
  45    }
  46  
  47    public function buildSavedQueryFromBuiltin($query_key) {
  48      $query = $this->newSavedQuery();
  49      $query->setQueryKey($query_key);
  50  
  51      switch ($query_key) {
  52        case 'all':
  53          return $query;
  54      }
  55  
  56      return parent::buildSavedQueryFromBuiltin($query_key);
  57    }
  58  
  59    protected function renderResultList(
  60      array $lists,
  61      PhabricatorSavedQuery $query,
  62      array $handles) {
  63      assert_instances_of($lists, 'PhabricatorMetaMTAMailingList');
  64  
  65      $view = id(new PHUIObjectItemListView());
  66  
  67      foreach ($lists as $list) {
  68        $item = new PHUIObjectItemView();
  69  
  70        $item->setHeader($list->getName());
  71        $item->setHref($list->getURI());
  72        $item->addAttribute($list->getEmail());
  73        $item->addAction(
  74          id(new PHUIListItemView())
  75            ->setIcon('fa-pencil')
  76            ->setHref($this->getApplicationURI('/edit/'.$list->getID().'/')));
  77  
  78        $view->addItem($item);
  79      }
  80  
  81      return $view;
  82    }
  83  
  84  }


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