public function processRequest()
 {
     $request = $this->getRequest();
     $user = $request->getUser();
     $nav = $this->buildSideNav('log');
     $query = new DrydockLogQuery();
     $resource_ids = $request->getStrList('resource');
     if ($resource_ids) {
         $query->withResourceIDs($resource_ids);
     }
     $lease_ids = $request->getStrList('lease');
     if ($lease_ids) {
         $query->withLeaseIDs($lease_ids);
     }
     $pager = new AphrontPagerView();
     $pager->setPageSize(500);
     $pager->setOffset($request->getInt('offset'));
     $pager->setURI($request->getRequestURI(), 'offset');
     $logs = $query->executeWithOffsetPager($pager);
     $rows = array();
     foreach ($logs as $log) {
         $rows[] = array($log->getResourceID(), $log->getLeaseID(), phutil_escape_html($log->getMessage()), phabricator_datetime($log->getEpoch(), $user));
     }
     $table = new AphrontTableView($rows);
     $table->setHeaders(array('Resource', 'Lease', 'Message', 'Date'));
     $table->setColumnClasses(array('', '', 'wide', ''));
     $panel = new AphrontPanelView();
     $panel->setHeader('Drydock Logs');
     $panel->appendChild($table);
     $panel->appendChild($pager);
     $nav->appendChild($panel);
     return $this->buildStandardPageResponse($nav, array('title' => 'Logs'));
 }
 public function buildQueryFromSavedQuery(PhabricatorSavedQuery $saved)
 {
     $resource_phids = $saved->getParameter('resourcePHIDs', array());
     $lease_phids = $saved->getParameter('leasePHIDs', array());
     // TODO: Change logs to use PHIDs instead of IDs.
     $resource_ids = array();
     $lease_ids = array();
     if ($resource_phids) {
         $resource_ids = id(new DrydockResourceQuery())->setViewer(PhabricatorUser::getOmnipotentUser())->withPHIDs($resource_phids)->execute();
         $resource_ids = mpull($resource_ids, 'getID');
     }
     if ($lease_phids) {
         $lease_ids = id(new DrydockLeaseQuery())->setViewer(PhabricatorUser::getOmnipotentUser())->withPHIDs($lease_phids)->execute();
         $lease_ids = mpull($lease_ids, 'getID');
     }
     $query = new DrydockLogQuery();
     if ($resource_ids) {
         $query->withResourceIDs($resource_ids);
     }
     if ($lease_ids) {
         $query->withLeaseIDs($lease_ids);
     }
     return $query;
 }