@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
at recaptime-dev/main 84 lines 2.0 kB view raw
1<?php 2 3final class DifferentialDiffSearchEngine 4 extends PhabricatorApplicationSearchEngine { 5 6 public function getResultTypeDescription() { 7 return pht('Differential Diffs'); 8 } 9 10 public function getApplicationClassName() { 11 return PhabricatorDifferentialApplication::class; 12 } 13 14 public function newQuery() { 15 return new DifferentialDiffQuery(); 16 } 17 18 protected function buildQueryFromParameters(array $map) { 19 $query = $this->newQuery(); 20 21 if ($map['revisionPHIDs']) { 22 $query->withRevisionPHIDs($map['revisionPHIDs']); 23 } 24 25 return $query; 26 } 27 28 protected function buildCustomSearchFields() { 29 return array( 30 id(new PhabricatorPHIDsSearchField()) 31 ->setLabel(pht('Revisions')) 32 ->setKey('revisionPHIDs') 33 ->setAliases(array('revision', 'revisions', 'revisionPHID')) 34 ->setDescription( 35 pht('Find diffs attached to a particular revision.')), 36 ); 37 } 38 39 protected function getURI($path) { 40 return '/differential/diff/'.$path; 41 } 42 43 protected function getBuiltinQueryNames() { 44 $names = array(); 45 46 $names['all'] = pht('All Diffs'); 47 48 return $names; 49 } 50 51 public function buildSavedQueryFromBuiltin($query_key) { 52 $query = $this->newSavedQuery(); 53 $query->setQueryKey($query_key); 54 55 $viewer = $this->requireViewer(); 56 57 switch ($query_key) { 58 case 'all': 59 return $query; 60 } 61 62 return parent::buildSavedQueryFromBuiltin($query_key); 63 } 64 65 /** 66 * @param array<DifferentialDiff> $revisions 67 * @param PhabricatorSavedQuery $query 68 * @param array<PhabricatorObjectHandle> $handles 69 */ 70 protected function renderResultList( 71 array $revisions, 72 PhabricatorSavedQuery $query, 73 array $handles) { 74 assert_instances_of($revisions, DifferentialDiff::class); 75 76 $viewer = $this->requireViewer(); 77 78 // NOTE: This is only exposed to Conduit, so we don't currently render 79 // results. 80 81 return id(new PhabricatorApplicationSearchResultView()); 82 } 83 84}