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(pht('Resource'), pht('Lease'), pht('Message'), pht('Date')));
     $table->setShortHeaders(array('R', 'L', pht('Message'), ''));
     $table->setColumnClasses(array('', '', 'wide', ''));
     return $table;
 }
 private function buildHumanReadableResponse($method, ConduitAPIRequest $request = null, $result = null)
 {
     $param_rows = array();
     $param_rows[] = array('Method', $this->renderAPIValue($method));
     if ($request) {
         foreach ($request->getAllParameters() as $key => $value) {
             $param_rows[] = array($key, $this->renderAPIValue($value));
         }
     }
     $param_table = new AphrontTableView($param_rows);
     $param_table->setDeviceReadyTable(true);
     $param_table->setColumnClasses(array('header', 'wide'));
     $result_rows = array();
     foreach ($result as $key => $value) {
         $result_rows[] = array($key, $this->renderAPIValue($value));
     }
     $result_table = new AphrontTableView($result_rows);
     $result_table->setDeviceReadyTable(true);
     $result_table->setColumnClasses(array('header', 'wide'));
     $param_panel = new AphrontPanelView();
     $param_panel->setHeader('Method Parameters');
     $param_panel->appendChild($param_table);
     $result_panel = new AphrontPanelView();
     $result_panel->setHeader('Method Result');
     $result_panel->appendChild($result_table);
     $param_head = id(new PHUIHeaderView())->setHeader(pht('Method Parameters'));
     $result_head = id(new PHUIHeaderView())->setHeader(pht('Method Result'));
     $method_uri = $this->getApplicationURI('method/' . $method . '/');
     $crumbs = $this->buildApplicationCrumbs()->addTextCrumb($method, $method_uri)->addTextCrumb(pht('Call'));
     return $this->buildApplicationPage(array($crumbs, $param_head, $param_table, $result_head, $result_table), array('title' => 'Method Call Result'));
 }