@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
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}