Make most Drydock web interfaces work with mobile

Summary: The logs bits still need some work but add crumbs/lists to everything else. Also build a propery DrydockResourceQuery.

Test Plan: Looked at lease list/detail; resource list/detail.

Reviewers: btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T2015

Differential Revision: https://secure.phabricator.com/D4221
This commit is contained in:
epriestley
2012-12-17 14:47:21 -08:00
parent ee392ada93
commit 53c1483ee5
10 changed files with 207 additions and 170 deletions

View File

@@ -12,8 +12,6 @@ final class DrydockResourceViewController extends DrydockController {
$request = $this->getRequest();
$user = $request->getUser();
$nav = $this->buildSideNav('resource');
$resource = id(new DrydockResource())->load($this->id);
if (!$resource) {
return new Aphront404Response();
@@ -32,8 +30,12 @@ final class DrydockResourceViewController extends DrydockController {
$leases = id(new DrydockLeaseQuery())
->withResourceIDs(array($resource->getID()))
->needResources(true)
->execute();
$lease_header = id(new PhabricatorHeaderView())
->setHeader(pht('Leases'));
$lease_list = $this->buildLeaseListView($leases);
$lease_list->setNoDataString(pht('This resource has no leases.'));
@@ -48,17 +50,21 @@ final class DrydockResourceViewController extends DrydockController {
$log_table = $this->buildLogTableView($logs);
$log_table->appendChild($pager);
$nav->appendChild(
$crumbs = $this->buildApplicationCrumbs();
$crumbs->addCrumb(
id(new PhabricatorCrumbView())
->setName(pht('Resource %d', $resource->getID())));
return $this->buildApplicationPage(
array(
$crumbs,
$header,
$actions,
$properties,
$lease_header,
$lease_list,
$log_table,
));
return $this->buildApplicationPage(
$nav,
),
array(
'device' => true,
'title' => $title,
@@ -114,34 +120,4 @@ final class DrydockResourceViewController extends DrydockController {
return $view;
}
private function buildLeaseListView(array $leases) {
assert_instances_of($leases, 'DrydockLease');
$user = $this->getRequest()->getUser();
$view = new PhabricatorObjectItemListView();
foreach ($leases as $lease) {
$item = id(new PhabricatorObjectItemView())
->setHeader($lease->getLeaseName())
->setHref($this->getApplicationURI('/lease/'.$lease->getID().'/'));
$status = DrydockLeaseStatus::getNameForStatus($lease->getStatus());
$item->addAttribute(phutil_escape_html($status));
$date_created = phabricator_date($lease->getDateCreated(), $user);
$item->addAttribute(pht('Created on %s', $date_created));
if ($lease->isActive()) {
$item->setBarColor('green');
} else {
$item->setBarColor('red');
}
$view->addItem($item);
}
return $view;
}
}