[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
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 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Nov 30 09:20:46 2014 | Cross-referenced by PHPXref 0.7.1 |