catalog/view/template/extension/task_manager/log_list.twig
Вот содержимое файла catalog/view/template/extension/task_manager/log_list.twig
:
{% extends 'common/column_left.twig' %}
{% block content %}
<div class="container">
<h1>{{ heading_title }}</h1>
<div class="log-filters">
<div class="filter-item">
<label for="filter-date">{{ entry_filter_date }}</label>
<input type="text" id="filter-date" class="form-control" placeholder="{{ placeholder_date }}" />
</div>
<div class="filter-item">
<label for="filter-status">{{ entry_filter_status }}</label>
<select id="filter-status" class="form-control">
<option value="">{{ text_all }}</option>
<option value="1">{{ text_success }}</option>
<option value="0">{{ text_error }}</option>
</select>
</div>
<div class="filter-item">
<button id="filter-button" class="btn btn-primary">{{ button_filter }}</button>
</div>
</div>
<div class="log-list">
{% if logs %}
<table class="table table-striped">
<thead>
<tr>
<th>{{ column_date }}</th>
<th>{{ column_type }}</th>
<th>{{ column_message }}</th>
<th>{{ column_action }}</th>
</tr>
</thead>
<tbody>
{% for log in logs %}
<tr>
<td>{{ log.date_added }}</td>
<td>
{% if log.type == 1 %}
<span class="badge badge-success">{{ text_success }}</span>
{% else %}
<span class="badge badge-danger">{{ text_error }}</span>
{% endif %}
</td>
<td>{{ log.message }}</td>
<td>
<a href="{{ log.view_url }}" class="btn btn-info">{{ button_view }}</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
<p>{{ text_no_logs }}</p>
{% endif %}
</div>
<div class="pagination">
{{ pagination }}
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function () {
// Filter button click event
document.getElementById('filter-button').addEventListener('click', function () {
var filterDate = document.getElementById('filter-date').value;
var filterStatus = document.getElementById('filter-status').value;
var url = '{{ filter_url }}&date=' + filterDate + '&status=' + filterStatus;
window.location.href = url;
});
});
</script>
{% endblock %}
Объяснение:
-
Фильтры для логов:
-
В верхней части страницы есть фильтры для даты и статуса логов. Пользователь может выбрать дату или статус логов (успешный или с ошибкой), а затем нажать кнопку для фильтрации.
-
-
Список логов:
-
Таблица с логами содержит дату, тип (успех или ошибка), сообщение лога и кнопку для просмотра подробностей.
-
Лог может быть либо успешным (отображается зеленым значком), либо с ошибкой (отображается красным).
-
-
Pagination:
-
Если логов много, добавлена пагинация, чтобы разделить их на несколько страниц.
-
-
JavaScript:
-
Сценарий для обработки нажатий на кнопки фильтрации. При нажатии на кнопку фильтрации происходит перезагрузка страницы с новыми параметрами фильтра.
-
-
Текстовые переменные и URL:
-
Переменные, такие как
heading_title
,text_no_logs
,text_success
,text_error
, и другие, динамически подставляются в шаблон. -
URL фильтрации генерируется на сервере и используется в JavaScript.
-
-
Теги:
-
В шаблоне используются стандартные теги
for
иif
для перебора логов и условного отображения их статуса.
-
Этот шаблон выполняет роль интерфейса для администраторов, где они могут просматривать, фильтровать и искать логи системы.