3 final class DifferentialChangesetSearchEngine
4 extends PhabricatorApplicationSearchEngine
{
8 public function setDiff(DifferentialDiff
$diff) {
13 public function getDiff() {
17 public function getResultTypeDescription() {
18 return pht('Differential Changesets');
21 public function getApplicationClassName() {
22 return 'PhabricatorDifferentialApplication';
25 public function canUseInPanelContext() {
29 public function newQuery() {
30 $query = id(new DifferentialChangesetQuery());
33 $query->withDiffs(array($this->diff
));
39 protected function buildQueryFromParameters(array $map) {
40 $query = $this->newQuery();
42 if ($map['diffPHIDs']) {
43 $query->withDiffPHIDs($map['diffPHIDs']);
49 protected function buildCustomSearchFields() {
51 id(new PhabricatorPHIDsSearchField())
52 ->setLabel(pht('Diffs'))
54 ->setAliases(array('diff', 'diffs', 'diffPHID'))
56 pht('Find changesets attached to a particular diff.')),
60 protected function getURI($path) {
61 $diff = $this->getDiff();
63 return '/differential/diff/'.$diff->getID().'/changesets/'.$path;
66 throw new PhutilMethodNotImplementedException();
69 protected function getBuiltinQueryNames() {
71 $names['all'] = pht('All Changesets');
75 public function buildSavedQueryFromBuiltin($query_key) {
76 $query = $this->newSavedQuery();
77 $query->setQueryKey($query_key);
79 $viewer = $this->requireViewer();
83 return $query->setParameter('order', 'oldest');
86 return parent
::buildSavedQueryFromBuiltin($query_key);
89 protected function renderResultList(
91 PhabricatorSavedQuery
$query,
94 assert_instances_of($changesets, 'DifferentialChangeset');
95 $viewer = $this->requireViewer();
98 foreach ($changesets as $changeset) {
102 'href' => '/differential/changeset/?ref='.$changeset->getID(),
104 $changeset->getDisplayFilename());
106 $type = $changeset->getChangeType();
108 $title = DifferentialChangeType
::getFullNameForChangeType($type);
110 $add_lines = $changeset->getAddLines();
114 $add_lines = '+'.$add_lines;
117 $rem_lines = $changeset->getDelLines();
121 $rem_lines = '-'.$rem_lines;
125 $changeset->newFileTreeIcon(),
131 $table = id(new AphrontTableView($rows))
145 return id(new PhabricatorApplicationSearchResultView())