45 lines
1.3 KiB
PHP
45 lines
1.3 KiB
PHP
<?php
|
||
/**
|
||
* @package Bicycle
|
||
* @author Egor Isaev
|
||
* @description LogsController.php
|
||
* @copyright (c) 24/06/2026
|
||
*/
|
||
|
||
namespace App\Controller\Admin;
|
||
|
||
use System\Classes\FileLogReader;
|
||
use System\Classes\Request;
|
||
|
||
/**
|
||
* Просмотр и поиск логов. URL: /admin/logs
|
||
*/
|
||
class LogsController extends AdminController
|
||
{
|
||
/**
|
||
* Список записей лога с фильтрами (дата, канал, уровень, текст).
|
||
*
|
||
* @return string
|
||
* @throws \System\Classes\MyException
|
||
*/
|
||
public function indexAction(): string
|
||
{
|
||
$request = Request::$current;
|
||
// Позже FileLogReader заменяется на DbLogReader без изменения остального.
|
||
$reader = new FileLogReader();
|
||
|
||
$filters = [
|
||
'date' => $request?->query('date') ?: date('Y-m-d'),
|
||
'channel' => $request?->query('channel') ?: 'action',
|
||
'level' => $request?->query('level') ?: '',
|
||
'q' => $request?->query('q') ?: '',
|
||
];
|
||
|
||
return $this->render('logs', [
|
||
'entries' => $reader->read($filters),
|
||
'filters' => $filters,
|
||
'dates' => $reader->dates(),
|
||
]);
|
||
}
|
||
}
|