events = $events; } public function setCombinedLog($is_combined) { $this->combinedLog = $is_combined; } public function setUser(PhabricatorUser $user) { $this->user = $user; return $this; } public function render() { $rows = array(); if (!$this->user) { throw new Exception("Call setUser() before rendering!"); } foreach ($this->events as $event) { $row = array( phutil_escape_html($event->getLogType()), phabricator_date($event->getEpoch(), $this->user), phabricator_time($event->getEpoch(), $this->user), str_replace("\n", '
', phutil_escape_html($event->getMessage())), ); if ($this->combinedLog) { array_unshift( $row, phutil_render_tag( 'a', array( 'href' => '/daemon/log/'.$event->getLogID().'/', ), phutil_escape_html('Daemon '.$event->getLogID()))); } $rows[] = $row; } $classes = array( '', '', 'right', 'wide wrap', ); $headers = array( 'Type', 'Date', 'Time', 'Message', ); if ($this->combinedLog) { array_unshift($classes, 'pri'); array_unshift($headers, 'Daemon'); } $log_table = new AphrontTableView($rows); $log_table->setHeaders($headers); $log_table->setColumnClasses($classes); return $log_table->render(); } }