Correct a parameter order swap in "diffusion.historyquery" for Mercurial
[phabricator.git] / src / applications / drydock / query / DrydockResourceSearchEngine.php
blob9015f92408b8fae37186aa31886b1aae0304db72
1 <?php
3 final class DrydockResourceSearchEngine
4 extends PhabricatorApplicationSearchEngine {
6 private $blueprint;
8 public function setBlueprint(DrydockBlueprint $blueprint) {
9 $this->blueprint = $blueprint;
10 return $this;
13 public function getBlueprint() {
14 return $this->blueprint;
17 public function getResultTypeDescription() {
18 return pht('Drydock Resources');
21 public function getApplicationClassName() {
22 return 'PhabricatorDrydockApplication';
25 public function newQuery() {
26 $query = new DrydockResourceQuery();
28 $blueprint = $this->getBlueprint();
29 if ($blueprint) {
30 $query->withBlueprintPHIDs(array($blueprint->getPHID()));
33 return $query;
36 protected function buildQueryFromParameters(array $map) {
37 $query = $this->newQuery();
39 if ($map['statuses']) {
40 $query->withStatuses($map['statuses']);
43 if ($map['blueprintPHIDs']) {
44 $query->withBlueprintPHIDs($map['blueprintPHIDs']);
47 return $query;
50 protected function buildCustomSearchFields() {
51 return array(
52 id(new PhabricatorSearchCheckboxesField())
53 ->setLabel(pht('Statuses'))
54 ->setKey('statuses')
55 ->setOptions(DrydockResourceStatus::getStatusMap()),
56 id(new PhabricatorPHIDsSearchField())
57 ->setLabel(pht('Blueprints'))
58 ->setKey('blueprintPHIDs')
59 ->setAliases(array('blueprintPHID', 'blueprints', 'blueprint'))
60 ->setDescription(
61 pht('Search for resources generated by particular blueprints.')),
65 protected function getURI($path) {
66 $blueprint = $this->getBlueprint();
67 if ($blueprint) {
68 $id = $blueprint->getID();
69 return "/drydock/blueprint/{$id}/resources/".$path;
70 } else {
71 return '/drydock/resource/'.$path;
75 protected function getBuiltinQueryNames() {
76 return array(
77 'active' => pht('Active Resources'),
78 'all' => pht('All Resources'),
82 public function buildSavedQueryFromBuiltin($query_key) {
83 $query = $this->newSavedQuery();
84 $query->setQueryKey($query_key);
86 switch ($query_key) {
87 case 'active':
88 return $query->setParameter(
89 'statuses',
90 array(
91 DrydockResourceStatus::STATUS_PENDING,
92 DrydockResourceStatus::STATUS_ACTIVE,
93 ));
94 case 'all':
95 return $query;
98 return parent::buildSavedQueryFromBuiltin($query_key);
101 protected function renderResultList(
102 array $resources,
103 PhabricatorSavedQuery $query,
104 array $handles) {
106 $list = id(new DrydockResourceListView())
107 ->setUser($this->requireViewer())
108 ->setResources($resources);
110 $result = new PhabricatorApplicationSearchResultView();
111 $result->setTable($list);
113 return $result;