Page MenuHomePhabricator

D13636.id32953.diff
No OneTemporary

D13636.id32953.diff

Index: src/applications/drydock/query/DrydockResourceSearchEngine.php
===================================================================
--- src/applications/drydock/query/DrydockResourceSearchEngine.php
+++ src/applications/drydock/query/DrydockResourceSearchEngine.php
@@ -17,6 +17,9 @@
$saved->setParameter(
'statuses',
$this->readListFromRequest($request, 'statuses'));
+ $saved->setParameter(
+ 'types',
+ $this->readListFromRequest($request, 'types'));
return $saved;
}
@@ -29,6 +32,11 @@
$query->withStatuses($statuses);
}
+ $types = $saved->getParameter('types', array());
+ if ($types) {
+ $query->withTypes($types);
+ }
+
return $query;
}
@@ -50,6 +58,26 @@
$form
->appendChild($status_control);
+
+ $types = $saved->getParameter('types', array());
+
+ $implementations =
+ DrydockBlueprintImplementation::getAllBlueprintImplementations();
+ $available_types = mpull($implementations, 'getType');
+ $available_types = array_unique($available_types);
+
+ $type_control = id(new AphrontFormCheckboxControl())
+ ->setLabel(pht('Resource Type'));
+ foreach ($available_types as $type) {
+ $type_control->addCheckbox(
+ 'types[]',
+ $type,
+ $type,
+ in_array($type, $types));
+ }
+
+ $form
+ ->appendChild($type_control);
}
protected function getURI($path) {
@@ -74,6 +102,15 @@
array(
DrydockResourceStatus::STATUS_PENDING,
DrydockResourceStatus::STATUS_OPEN,
+ ))->setParameter(
+ 'types',
+ array(
+ 'host',
+ 'working-copy',
+ // Exclude working copy cache resources by default
+ // as they are not very useful to look at (and they
+ // don't yet get cleaned up with the host resource
+ // disappears).
));
case 'all':
return $query;
Index: src/applications/drydock/view/DrydockResourceListView.php
===================================================================
--- src/applications/drydock/view/DrydockResourceListView.php
+++ src/applications/drydock/view/DrydockResourceListView.php
@@ -14,6 +14,12 @@
$resources = $this->resources;
$viewer = $this->getUser();
+ $blueprint_handles = id(new PhabricatorHandleQuery())
+ ->setViewer($viewer)
+ ->withPHIDs(mpull($resources, 'getBlueprintPHID'))
+ ->execute();
+ $blueprint_handles = mpull($blueprint_handles, null, 'getPHID');
+
$view = new PHUIObjectItemListView();
foreach ($resources as $resource) {
$name = pht('Resource %d', $resource->getID()).': '.$resource->getName();
@@ -25,6 +31,13 @@
$status = DrydockResourceStatus::getNameForStatus($resource->getStatus());
$item->addAttribute($status);
+ $blueprint_handle = idx(
+ $blueprint_handles,
+ $resource->getBlueprintPHID());
+ if ($blueprint_handle !== null) {
+ $item->addAttribute($blueprint_handle->renderLink());
+ }
+
switch ($resource->getStatus()) {
case DrydockResourceStatus::STATUS_ALLOCATING:
case DrydockResourceStatus::STATUS_PENDING:

File Metadata

Mime Type
text/plain
Expires
Fri, Apr 4, 2:58 AM (2 w, 6 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7731211
Default Alt Text
D13636.id32953.diff (3 KB)

Event Timeline