You are here

public function LogController::overview in TacJS 8.5

Displays a listing of database logs.

Return value

array A render array as expected by \Drupal\Core\Render\RendererInterface::render().

Throws

\Exception

1 string reference to 'LogController::overview'
tacjs.routing.yml in ./tacjs.routing.yml
tacjs.routing.yml

File

src/Controller/LogController.php, line 65

Class

LogController

Namespace

Drupal\tacjs\Controller

Code

public function overview() {
  $rows = [];
  $header = [
    [
      'data' => $this
        ->t('Timestamp'),
      'field' => 'log.timestamp',
      'sort' => 'desc',
    ],
    [
      'data' => $this
        ->t('IP address'),
      'field' => 'log.ip_address',
    ],
    [
      'data' => $this
        ->t('Services allowed'),
      'field' => 'log.services_allowed',
    ],
  ];
  try {
    $sth = $this->connection
      ->select('tacjslog', 'log')
      ->extend('\\Drupal\\Core\\Database\\Query\\PagerSelectExtender')
      ->extend('\\Drupal\\Core\\Database\\Query\\TableSortExtender')
      ->fields('log', [
      'timestamp',
      'ip_address',
      'services_allowed',
    ]);

    // Execute the statement
    $data = $sth
      ->limit(50)
      ->orderByHeader($header)
      ->execute();

    // Get all the results
    $results = $data
      ->fetchAll(\PDO::FETCH_OBJ);
  } catch (\Exception $e) {
    throw $e;
  }
  foreach ($results as $result) {
    $rows[] = [
      'data' => [
        \Drupal::service('date.formatter')
          ->format($result->timestamp, 'short'),
        $result->ip_address,
        $result->services_allowed,
      ],
    ];
  }
  $build['tacjslog_table'] = [
    '#type' => 'table',
    '#header' => $header,
    '#rows' => $rows,
    '#empty' => $this
      ->t('No log available.'),
  ];
  $build['tacjslog_pager'] = [
    '#type' => 'pager',
  ];
  return $build;
}