[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/dashboard/query/ -> PhabricatorDashboardPanelSearchEngine.php (source)

   1  <?php
   2  
   3  final class PhabricatorDashboardPanelSearchEngine
   4    extends PhabricatorApplicationSearchEngine {
   5  
   6    public function getResultTypeDescription() {
   7      return pht('Dashboard Panels');
   8    }
   9  
  10    public function getApplicationClassName() {
  11      return 'PhabricatorDashboardApplication';
  12    }
  13  
  14    public function buildSavedQueryFromRequest(AphrontRequest $request) {
  15      $saved = new PhabricatorSavedQuery();
  16      $saved->setParameter('status', $request->getStr('status'));
  17      return $saved;
  18    }
  19  
  20    public function buildQueryFromSavedQuery(PhabricatorSavedQuery $saved) {
  21      $query = id(new PhabricatorDashboardPanelQuery());
  22  
  23      $status = $saved->getParameter('status');
  24      switch ($status) {
  25        case 'active':
  26          $query->withArchived(false);
  27          break;
  28        case 'archived':
  29          $query->withArchived(true);
  30          break;
  31        default:
  32          break;
  33      }
  34  
  35      return $query;
  36    }
  37  
  38    public function buildSearchForm(
  39      AphrontFormView $form,
  40      PhabricatorSavedQuery $saved_query) {
  41  
  42      $status = $saved_query->getParameter('status', '');
  43  
  44      $form
  45        ->appendChild(
  46          id(new AphrontFormSelectControl())
  47            ->setLabel(pht('Status'))
  48            ->setName('status')
  49            ->setValue($status)
  50            ->setOptions(
  51              array(
  52                '' => pht('(All Panels)'),
  53                'active' => pht('Active Panels'),
  54                'archived' => pht('Archived Panels'),
  55              )));
  56    }
  57  
  58    protected function getURI($path) {
  59      return '/dashboard/panel/'.$path;
  60    }
  61  
  62    public function getBuiltinQueryNames() {
  63      return array(
  64        'active' => pht('Active Panels'),
  65        'all'    => pht('All Panels'),
  66      );
  67    }
  68  
  69    public function buildSavedQueryFromBuiltin($query_key) {
  70      $query = $this->newSavedQuery();
  71      $query->setQueryKey($query_key);
  72  
  73      switch ($query_key) {
  74        case 'active':
  75          return $query->setParameter('status', 'active');
  76        case 'all':
  77          return $query;
  78      }
  79  
  80      return parent::buildSavedQueryFromBuiltin($query_key);
  81    }
  82  
  83    protected function renderResultList(
  84      array $panels,
  85      PhabricatorSavedQuery $query,
  86      array $handles) {
  87  
  88      $viewer = $this->requireViewer();
  89  
  90      $list = new PHUIObjectItemListView();
  91      $list->setUser($viewer);
  92      foreach ($panels as $panel) {
  93        $item = id(new PHUIObjectItemView())
  94          ->setObjectName($panel->getMonogram())
  95          ->setHeader($panel->getName())
  96          ->setHref('/'.$panel->getMonogram())
  97          ->setObject($panel);
  98  
  99        $impl = $panel->getImplementation();
 100        if ($impl) {
 101          $type_text = $impl->getPanelTypeName();
 102          $type_icon = 'none';
 103        } else {
 104          $type_text = nonempty($panel->getPanelType(), pht('Unknown Type'));
 105          $type_icon = 'fa-question';
 106        }
 107  
 108        $item->addIcon($type_icon, $type_text);
 109  
 110        if ($panel->getIsArchived()) {
 111          $item->setDisabled(true);
 112        }
 113  
 114        $list->addItem($item);
 115      }
 116  
 117      return $list;
 118    }
 119  
 120  }


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