1 {% extends 'elements/list.html.twig' %}
3 {% set nb = history.getCount() %}
4 {% set filters = history.filters %}
5 {% set no_action = true %}
15 'label': _Tn("%count entry", "%count entries", history.getCount())|replace({"%count": history.getCount()}),
17 'name': 'history_filter'
23 {% block infoline_actions %}
26 class="ui tiny labeled icon button"
27 href="{{ url_for("flushHistory") }}"
29 <i class="trash red icon" aria-hidden="true"></i>
30 {{ _T("Flush the logs") }}
37 {'label': _T("Date"), 'order': constant("Galette\\Filters\\HistoryList::ORDERBY_DATE")},
38 {'label': _T("IP"), 'order': constant("Galette\\Filters\\HistoryList::ORDERBY_IP")},
39 {'label': _T("User"), 'order': constant("Galette\\Filters\\HistoryList::ORDERBY_USER")},
40 {'label': _T('Action'), 'order': constant("Galette\\Filters\\HistoryList::ORDERBY_ACTION")},
41 {'label': _T("Description")}
47 <form action="{{ url_for("history_filter") }}" method="post" class="ui form filters">
48 <div class="ui secondary yellow segment">
49 <div class="four fields">
50 <div class="two fields">
52 <label for="start_date_filter">{{ _T("since") }}</label>
53 <div class="ui calendar" id="contrib-rangestart">
54 <div class="ui input left icon">
55 <i class="calendar icon" aria-hidden="true"></i>
56 <input placeholder="{{ _T("(yyyy-mm-dd format)") }}" type="text" name="start_date_filter" id="start_date_filter" maxlength="10" size="10" value="{{ history.filters.start_date_filter }}"/>
61 <label for="end_date_filter">{{ _T("until") }}</label>
62 <div class="ui calendar" id="contrib-rangeend">
63 <div class="ui input left icon">
64 <i class="calendar icon" aria-hidden="true"></i>
65 <input placeholder="{{ _T("(yyyy-mm-dd format)") }}" type="text" name="end_date_filter" id="end_date_filter" maxlength="10" size="10" value="{{ history.filters.end_date_filter }}"/>
71 {% set users = history.getUsersList() %}
72 {% if users|length > 0 %}
73 <label for="user_filter">{{ _T("Member") }}</label>
74 <select name="user_filter" id="user_filter" class="ui search dropdown nochosen">
75 <option value="0"{% if history.filters.user_filter == 0 %} selected="selected"{% endif %}>{{ _T("Select an user") }}</option>
76 {% for user in users %}
77 <option value="{{ user }}"{% if history.filters.user_filter == user %} selected="selected"{% endif %}>{{ user }}</option>
83 {% set actions = history.getActionsList() %}
84 {% if actions|length > 0 %}
85 <label for="action_filter">{{ _T("Action") }}</label>
86 <select name="action_filter" id="action_filter" class="ui search dropdown nochosen">
87 <option value="0">{{ _T("Select an action") }}</option>
88 {% for action in actions %}
89 <option value="{{ action|escape }}"{% if history.filters.action_filter == action %} selected="selected"{% endif %}>{{ action|escape }}</option>
94 <div class="ui right aligned basic fitted segment field flexend">
95 <button type="submit" class="tooltip action ui labeled icon primary button" title="{{ _T('Apply filters') }}" name="filter">
96 <i class="search icon" aria-hidden="true"></i>
99 <button type="submit" name="clear_filter" class="tooltip ui labeled icon button" title="{{ _T('Reset all filters to defaults') }}">
100 <i class="trash alt red icon" aria-hidden="true"></i>
101 {{ _T('Clear filter') }}
106 {% include "components/forms/csrf.html.twig" %}
111 {% for log in logs %}
112 <tr class="{% if loop.index % 2 == 0 %}even{% else %}odd{% endif %}">
113 <td data-scope="row">
115 <span class="visually-hidden">
116 {{ _T("History entry %id")|replace({"%id": loop.index}) }}
119 <td data-col-label="{{ _T("Date") }}">{{ log.date_log|date(_T("Y-m-d H:i:s")) }}</td>
120 <td data-col-label="{{ _T("IP") }}">{{ log.ip_log }}</td>
121 <td data-col-label="{{ _T("User") }}">{{ log.adh_log }}</td>
122 <td data-col-label="{{ _T("Action") }}">{{ log.action_log|escape }}</td>
123 <td data-col-label="{{ _T("Description") }}">
124 {{ log.text_log|escape }}
126 <div class="tooltip title" title="{{ _T("Show associated query") }}">
127 <i class="dropdown icon" aria-hidden="true"></i>
128 {{ _T("Show associated query") }}
130 <div class="content">
131 <div class="ui grey inverted segment">{{ log.sql_log|escape }}</div>
138 <tr><td colspan="6" class="emptylist">{{ _T("logs are empty") }}</td></tr>
142 {% block javascripts %}
143 <script type="text/javascript">
145 {% include "elements/js/removal.js.twig" with {
148 single_action: "true"