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')); }
protected function buildLogBox(DrydockLogQuery $query, $all_uri) { $viewer = $this->getViewer(); $logs = $query->setViewer($viewer)->setLimit(100)->execute(); $log_table = id(new DrydockLogListView())->setUser($viewer)->setLogs($logs)->render(); $log_header = id(new PHUIHeaderView())->setHeader(pht('Logs'))->addActionLink(id(new PHUIButtonView())->setTag('a')->setHref($all_uri)->setIcon('fa-search')->setText(pht('View All'))); return id(new PHUIObjectBoxView())->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)->setHeader($log_header)->setTable($log_table); }
public function newQuery() { $query = new DrydockLogQuery(); $blueprint = $this->getBlueprint(); if ($blueprint) { $query->withBlueprintPHIDs(array($blueprint->getPHID())); } $resource = $this->getResource(); if ($resource) { $query->withResourcePHIDs(array($resource->getPHID())); } $lease = $this->getLease(); if ($lease) { $query->withLeasePHIDs(array($lease->getPHID())); } return $query; }
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; }