[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class HeraldTranscriptSearchEngine 4 extends PhabricatorApplicationSearchEngine { 5 6 public function getResultTypeDescription() { 7 return pht('Herald Transcripts'); 8 } 9 10 public function getApplicationClassName() { 11 return 'PhabricatorHeraldApplication'; 12 } 13 14 public function buildSavedQueryFromRequest(AphrontRequest $request) { 15 $saved = new PhabricatorSavedQuery(); 16 17 $object_monograms = $request->getStrList('objectMonograms'); 18 $saved->setParameter('objectMonograms', $object_monograms); 19 20 $ids = $request->getStrList('ids'); 21 foreach ($ids as $key => $id) { 22 if (!$id || !is_numeric($id)) { 23 unset($ids[$key]); 24 } else { 25 $ids[$key] = $id; 26 } 27 } 28 $saved->setParameter('ids', $ids); 29 30 return $saved; 31 } 32 33 public function buildQueryFromSavedQuery(PhabricatorSavedQuery $saved) { 34 $query = id(new HeraldTranscriptQuery()); 35 36 $object_monograms = $saved->getParameter('objectMonograms'); 37 if ($object_monograms) { 38 $objects = id(new PhabricatorObjectQuery()) 39 ->setViewer($this->requireViewer()) 40 ->withNames($object_monograms) 41 ->execute(); 42 $query->withObjectPHIDs(mpull($objects, 'getPHID')); 43 } 44 45 $ids = $saved->getParameter('ids'); 46 if ($ids) { 47 $query->withIDs($ids); 48 } 49 50 return $query; 51 } 52 53 public function buildSearchForm( 54 AphrontFormView $form, 55 PhabricatorSavedQuery $saved) { 56 57 $object_monograms = $saved->getParameter('objectMonograms', array()); 58 $ids = $saved->getParameter('ids', array()); 59 60 $form 61 ->appendChild( 62 id(new AphrontFormTextControl()) 63 ->setName('objectMonograms') 64 ->setLabel(pht('Object Monograms')) 65 ->setValue(implode(', ', $object_monograms))) 66 ->appendChild( 67 id(new AphrontFormTextControl()) 68 ->setName('ids') 69 ->setLabel(pht('Transcript IDs')) 70 ->setValue(implode(', ', $ids))); 71 } 72 73 protected function getURI($path) { 74 return '/herald/transcript/'.$path; 75 } 76 77 public function getBuiltinQueryNames() { 78 return array( 79 'all' => pht('All'), 80 ); 81 } 82 83 public function buildSavedQueryFromBuiltin($query_key) { 84 $query = $this->newSavedQuery(); 85 $query->setQueryKey($query_key); 86 87 $viewer_phid = $this->requireViewer()->getPHID(); 88 89 switch ($query_key) { 90 case 'all': 91 return $query; 92 } 93 94 return parent::buildSavedQueryFromBuiltin($query_key); 95 } 96 97 protected function getRequiredHandlePHIDsForResultList( 98 array $transcripts, 99 PhabricatorSavedQuery $query) { 100 return mpull($transcripts, 'getObjectPHID'); 101 } 102 103 protected function renderResultList( 104 array $transcripts, 105 PhabricatorSavedQuery $query, 106 array $handles) { 107 assert_instances_of($transcripts, 'HeraldTranscript'); 108 109 $viewer = $this->requireViewer(); 110 111 $list = new PHUIObjectItemListView(); 112 foreach ($transcripts as $xscript) { 113 $view_href = phutil_tag( 114 'a', 115 array( 116 'href' => '/herald/transcript/'.$xscript->getID().'/', 117 ), 118 pht('View Full Transcript')); 119 120 $item = new PHUIObjectItemView(); 121 $item->setObjectName($xscript->getID()); 122 $item->setHeader($view_href); 123 if ($xscript->getDryRun()) { 124 $item->addAttribute(pht('Dry Run')); 125 } 126 $item->addAttribute($handles[$xscript->getObjectPHID()]->renderLink()); 127 $item->addAttribute( 128 number_format((int)(1000 * $xscript->getDuration())).' ms'); 129 $item->addIcon( 130 'none', 131 phabricator_datetime($xscript->getTime(), $viewer)); 132 133 $list->addItem($item); 134 } 135 136 return $list; 137 } 138 139 }
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 |