Samuel Georges 7a8867f00b Improve Event log formatting for emails
If an email is seen (Message-ID:) then convert newlines to <br> unless within <html> tags. Also place the contents inside an iframe so the CSS rules don't leech out.
Fixes #3032
2018-08-31 11:09:20 +10:00

99 lines
2.5 KiB
PHP

<?php namespace System\Controllers;
use App;
use Lang;
use Flash;
use BackendMenu;
use Backend\Classes\Controller;
use System\Classes\SettingsManager;
use System\Models\EventLog;
/**
* Event Logs controller
*
* @package october\system
* @author Alexey Bobkov, Samuel Georges
*/
class EventLogs extends Controller
{
/**
* @var array Extensions implemented by this controller.
*/
public $implement = [
\Backend\Behaviors\FormController::class,
\Backend\Behaviors\ListController::class
];
/**
* @var array `FormController` configuration.
*/
public $formConfig = 'config_form.yaml';
/**
* @var array `ListController` configuration.
*/
public $listConfig = 'config_list.yaml';
/**
* @var array Permissions required to view this page.
*/
public $requiredPermissions = ['system.access_logs'];
/**
* Constructor.
*/
public function __construct()
{
parent::__construct();
BackendMenu::setContext('October.System', 'system', 'settings');
SettingsManager::setContext('October.System', 'event_logs');
}
public function index_onRefresh()
{
return $this->listRefresh();
}
public function index_onEmptyLog()
{
EventLog::truncate();
Flash::success(Lang::get('system::lang.event_log.empty_success'));
return $this->listRefresh();
}
public function index_onDelete()
{
if (($checkedIds = post('checked')) && is_array($checkedIds) && count($checkedIds)) {
foreach ($checkedIds as $recordId) {
if (!$record = EventLog::find($recordId)) continue;
$record->delete();
}
Flash::success(Lang::get('backend::lang.list.delete_selected_success'));
}
else {
Flash::error(Lang::get('backend::lang.list.delete_selected_empty'));
}
return $this->listRefresh();
}
/**
* Preview page action
* @return void
*/
public function preview($id)
{
$this->addCss('/modules/system/assets/css/eventlogs/exception-beautifier.css', 'core');
$this->addJs('/modules/system/assets/js/eventlogs/exception-beautifier.js', 'core');
if (in_array(App::environment(), ['dev', 'local'])) {
$this->addJs('/modules/system/assets/js/eventlogs/exception-beautifier.links.js', 'core');
}
return $this->asExtension('FormController')->preview($id);
}
}