<div class="container-fluid">
<div class="row">
<div class="col-md-3 order-2 order-md-1">
<div class="sticky-top">
<div class="pretty-scrollbar">
<?php
$errors = null;
if ($logs) {
foreach ($logs as $key => $val) {
$errors .= '
<li class="list-group-item px-0">
<a href="' . current_page('remove', ['log' => $val]) . '" class="float-end text-danger --modal" data-bs-toggle="tooltip" title="' . phrase('Remove') . '">
<i class="mdi mdi-window-close"></i>
</a>
<a href="' . current_page(null, ['report' => $val]) . '" class="' . ($val == service('request')->getGet('report') ? ' fw-bold' : null) . ' --xhr">' . $val . '</a>
</li>
';
}
echo '
<div class="d-grid mt-3 mb-3">
<a href="' . current_page('clear') . '" class="btn btn-danger btn-sm --modal">
<i class="mdi mdi-delete-empty"></i>
' . phrase('Clear Logs') . '
</a>
</div>
<ul class="list-group list-group-flush">
' . $errors . '
</ul>
';
} else {
echo '<div class="pt-3 pb-3">' . phrase('No error log') . '</div>';
}
?>
</div>
</div>
</div>
<div class="col-md-9 order-1 order-md-2 stretch-height">
<div class="sticky-top">
<?php
if ($report) {
$errors = [];
$num = 0;
foreach ($report as $key => $val) {
if (! $val || ! trim($val)) {
continue;
}
$title = null;
if (strpos($val, 'CRITICAL - ') !== false || strpos($val, 'ALERT - ') !== false || strpos($val, 'EMERGENCY - ') !== false || strpos($val, 'DEBUG - ') !== false || strpos($val, 'ERROR - ') !== false || strpos($val, 'INFO - ') !== false || strpos($val, 'NOTICE - ') !== false || strpos($val, 'WARNING - ') !== false) {
$errors[$num] = [
'title' => $val,
'traces' => []
];
$num++;
} elseif (isset($errors[$num - 1])) {
$errors[$num - 1]['traces'][] = htmlspecialchars($val);
}
}
foreach($errors as $key => $val) {
$traces = null;
foreach($val['traces'] as $_key => $_val) {
$traces .= '<li>' . preg_replace('/^[\d\\s]+/', '', $_val) . '</li>';
}
echo '
<div>
<h6 class="text-danger">
' . $val['title'] . '
</h6>
' . ($traces ? '<ol>' . $traces . '</ol>' : null) . '
</div>
';
}
} else {
echo '<div class="pt-3 pb-3">' . ($errors ? phrase('Click on the log file to show the error details.') : phrase('Yay! Your application is working fine.')) . '</div>';
}
?>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
if (UA !== 'mobile') {
$('.stretch-height').css({
minHeight: $(window).outerHeight(true) - (($('[role=header]').outerHeight(true) ?? 0) + ($('[role=breadcrumb]').outerHeight(true) ?? 0) + ($('[role=meta]').outerHeight(true) ?? 0)),
borderLeft: '1px solid rgba(0,0,0,.2)'
});
if (typeof mCustomScrollbar === 'function') {
$('.pretty-scrollbar').mCustomScrollbar({
autoHideScrollbar: true,
axis: 'y',
scrollInertia: 170,
mouseWheelPixels: 170,
setHeight: $(window).outerHeight(true) - (($('[role=header]').outerHeight(true) ?? 0) + ($('[role=breadcrumb]').outerHeight(true) ?? 0) + ($('[role=meta]').outerHeight(true) ?? 0)),
advanced:
{
updateOnContentResize: true
},
autoHideScrollbar: false
})
}
}
})
</script>
|