{% extends 'admin/base.html.twig' %}
{% block title %}История изменения данных{% endblock %}
{% block content %}
<h1 class="h3 mb-2 text-gray-800">История изменения данных</h1>
<div class="card shadow mb-4 mt-4">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary">Список изменений</h6>
</div>
<div class="card-body">
<div id="entity-log-table-filters" class="mb-4 d-flex align-items-center" style="gap: 20px; flex-wrap: wrap;">
{% include 'components/table_filter.html.twig' with { options: {
labelText: 'Автор',
dropdownIdPrefix: 'author',
allItemsButtonText: 'Все авторы',
}} %}
{% include 'components/table_filter.html.twig' with { options: {
labelText: 'Тип данных',
dropdownIdPrefix: 'entityType',
allItemsButtonText: 'Все типы',
}} %}
{% include 'components/table_filter.html.twig' with { options: {
labelText: 'Действие',
dropdownIdPrefix: 'actionType',
allItemsButtonText: 'Все действия',
}} %}
</div>
<div class="table-responsive">
<table class="table table-bordered" id="entity-log-data-table">
<thead>
<tr>
<th data-table-type="num">Номер п/п</th>
<th data-table-type="date-d-m-Y-asc">Дата</th>
<th data-table-dropdown-id="authorDropdown"
data-table-badge-id="authorBadge"
data-table-dropdown-text-for-all="Все авторы">Автор</th>
<th>Данные</th>
<th data-table-hide-col
data-table-dropdown-id="entityTypeDropdown"
data-table-badge-id="entityTypeBadge"
data-table-dropdown-text-for-all="Все типы">Тип данных</th>
{# <th>Поле</th>#}
<th data-table-dropdown-id="actionTypeDropdown"
data-table-badge-id="actionTypeBadge"
data-table-dropdown-text-for-all="Все действия">Действие</th>
<th>Старое значение</th>
<th>Новое значение</th>
</tr>
</thead>
<tbody>
{% set i = 0 %}
{% for item in items %}
{% set i = i + 1 %}
<tr>
<td>{{ i }}</td>
<td>{{ item.createdAt|date('d.m.Y H:i') }}</td>
<td>{{ item.editedBy ? item.editedBy.name : '–' }}</td>
<td>
{% set fieldLabel = item.getEntityFieldText() %}
{% if fieldLabel == item.fieldName %}
{% set fieldLabel = entityLogService.getEntityFormFieldLabel(
"App\\Entity\\" ~ item.entityClass, item.fieldName) %}
{% endif %}
{% include 'components/status_button.html.twig' with { options: {
buttonClass: item.getEntityClassCss(),
text: item.getEntityText(),
} } %}
<small class="text-muted">{{ fieldLabel ?: '–' }}</small>
</td>
<td>{{ item.getEntityText() }}</td>
{# <td>{{ item.getEntityFieldText() ?: '–' }}</td>#}
<td>{{ item.typeText }}</td>
<td>
{% if item.getOldFieldValueText %}
{{ item.getOldFieldValueText|raw }}
{% elseif item.oldData %}
{% for key, value in item.oldData %}
<strong>{{ value.label }}:</strong> {{ isArray(value.value) ? "[]" : value.value|raw }}{% if not loop.last %}<br>{% endif %}
{% endfor %}
{% else %}
–
{% endif %}
</td>
<td>
{% if item.getOldFieldValueText %}
{{ item.getOldFieldValueText|raw }}
{% elseif item.data %}
{% for key, value in item.data %}
<strong>{{ value.label }}:</strong> {{ isArray(value.value) ? "[]" : value.value|raw }}{% if not loop.last %}<br>{% endif %}
{% endfor %}
{% else %}
–
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
{% endblock %}
{% block addJs %}
<script>
let table = new CustomDataTable('#entity-log-data-table', {
"lengthMenu": [[20, 50, 100, 200, -1], [20, 50, 100, 200, "Все"]],
drawRowNumbersForColIndex: 0,
});
table.initDataTable();
</script>
{% endblock %}