diff --git a/src/applications/drydock/controller/DrydockConsoleController.php b/src/applications/drydock/controller/DrydockConsoleController.php index 923e43a44e..fd2dff8ba5 100644 --- a/src/applications/drydock/controller/DrydockConsoleController.php +++ b/src/applications/drydock/controller/DrydockConsoleController.php @@ -1,74 +1,78 @@ setBaseURI(new PhutilURI($this->getApplicationURI())); // These are only used on mobile. $nav->addFilter('blueprint', pht('Blueprints')); $nav->addFilter('resource', pht('Resources')); $nav->addFilter('lease', pht('Leases')); $nav->addFilter('log', pht('Logs')); $nav->selectFilter(null); return $nav; } public function processRequest() { $request = $this->getRequest(); $viewer = $request->getUser(); $menu = id(new PHUIObjectItemListView()) ->setUser($viewer); $menu->addItem( id(new PHUIObjectItemView()) ->setHeader(pht('Blueprints')) ->setHref($this->getApplicationURI('blueprint/')) ->addAttribute( pht( 'Configure blueprints so Drydock can build resources, like '. 'hosts and working copies.'))); $menu->addItem( id(new PHUIObjectItemView()) ->setHeader(pht('Resources')) ->setHref($this->getApplicationURI('resource/')) ->addAttribute( pht('View and manage resources Drydock has built, like hosts.'))); $menu->addItem( id(new PHUIObjectItemView()) ->setHeader(pht('Leases')) ->setHref($this->getApplicationURI('lease/')) ->addAttribute(pht('Manage leases on resources.'))); $menu->addItem( id(new PHUIObjectItemView()) ->setHeader(pht('Logs')) ->setHref($this->getApplicationURI('log/')) ->addAttribute(pht('View logs.'))); $crumbs = $this->buildApplicationCrumbs(); $crumbs->addTextCrumb(pht('Console')); + $box = id(new PHUIObjectBoxView()) + ->setHeaderText(pht('Drydock Console')) + ->setObjectList($menu); + return $this->buildApplicationPage( array( $crumbs, - $menu, + $box, ), array( 'title' => pht('Drydock Console'), )); } } diff --git a/src/applications/drydock/view/DrydockLeaseListView.php b/src/applications/drydock/view/DrydockLeaseListView.php index dcafd59419..40fcfa49be 100644 --- a/src/applications/drydock/view/DrydockLeaseListView.php +++ b/src/applications/drydock/view/DrydockLeaseListView.php @@ -1,56 +1,56 @@ leases = $leases; return $this; } public function render() { $leases = $this->leases; $viewer = $this->getUser(); $view = new PHUIObjectItemListView(); foreach ($leases as $lease) { $item = id(new PHUIObjectItemView()) ->setUser($viewer) ->setHeader($lease->getLeaseName()) ->setHref('/drydock/lease/'.$lease->getID().'/'); if ($lease->hasAttachedResource()) { $resource = $lease->getResource(); $resource_href = '/drydock/resource/'.$resource->getID().'/'; $resource_name = $resource->getName(); $item->addAttribute( phutil_tag( 'a', array( 'href' => $resource_href, ), $resource_name)); } $status = DrydockLeaseStatus::getNameForStatus($lease->getStatus()); $item->addAttribute($status); $item->setEpoch($lease->getDateCreated()); if ($lease->isActive()) { - $item->setBarColor('green'); + $item->setStatusIcon('fa-dot-circle green'); } else { - $item->setBarColor('red'); + $item->setStatusIcon('fa-dot-circle red'); } $view->addItem($item); } return $view; } } diff --git a/src/applications/drydock/view/DrydockLogListView.php b/src/applications/drydock/view/DrydockLogListView.php index aba883ed65..65f4969d5e 100644 --- a/src/applications/drydock/view/DrydockLogListView.php +++ b/src/applications/drydock/view/DrydockLogListView.php @@ -1,69 +1,69 @@ logs = $logs; return $this; } public function render() { $logs = $this->logs; $viewer = $this->getUser(); $view = new PHUIObjectItemListView(); $rows = array(); foreach ($logs as $log) { $resource_uri = '/drydock/resource/'.$log->getResourceID().'/'; $lease_uri = '/drydock/lease/'.$log->getLeaseID().'/'; $rows[] = array( phutil_tag( 'a', array( 'href' => $resource_uri, ), $log->getResourceID()), phutil_tag( 'a', array( 'href' => $lease_uri, ), $log->getLeaseID()), $log->getMessage(), phabricator_date($log->getEpoch(), $viewer), ); } $table = new AphrontTableView($rows); $table->setDeviceReadyTable(true); $table->setHeaders( array( - 'Resource', - 'Lease', - 'Message', - 'Date', + pht('Resource'), + pht('Lease'), + pht('Message'), + pht('Date'), )); $table->setShortHeaders( array( - 'R', - 'L', - 'Message', + pht('R'), + pht('L'), + pht('Message'), '', )); $table->setColumnClasses( array( '', '', 'wide', '', )); return $table; } } diff --git a/src/applications/drydock/view/DrydockResourceListView.php b/src/applications/drydock/view/DrydockResourceListView.php index a0e32c2d3a..e8921b21c9 100644 --- a/src/applications/drydock/view/DrydockResourceListView.php +++ b/src/applications/drydock/view/DrydockResourceListView.php @@ -1,49 +1,49 @@ resources = $resources; return $this; } public function render() { $resources = $this->resources; $viewer = $this->getUser(); $view = new PHUIObjectItemListView(); foreach ($resources as $resource) { $name = pht('Resource %d', $resource->getID()).': '.$resource->getName(); $item = id(new PHUIObjectItemView()) ->setHref('/drydock/resource/'.$resource->getID().'/') ->setHeader($name); $status = DrydockResourceStatus::getNameForStatus($resource->getStatus()); $item->addAttribute($status); switch ($resource->getStatus()) { case DrydockResourceStatus::STATUS_PENDING: - $item->setBarColor('yellow'); + $item->setStatusIcon('fa-dot-circle yellow'); break; case DrydockResourceStatus::STATUS_OPEN: - $item->setBarColor('green'); + $item->setStatusIcon('fa-dot-circle green'); break; case DrydockResourceStatus::STATUS_DESTROYED: - $item->setBarColor('black'); + $item->setStatusIcon('fa-times-circle black'); break; default: - $item->setBarColor('red'); + $item->setStatusIcon('fa-dot-circle red'); break; } $view->addItem($item); } return $view; } }