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:
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user