]> git.agnieray.net Git - galette.git/blob - galette/templates/default/pages/history.html.twig
6a486f5a71542c4d764f6b02a51286752e322b7d
[galette.git] / galette / templates / default / pages / history.html.twig
1 {% extends 'elements/list.html.twig' %}
2
3 {% set nb = history.getCount() %}
4 {% set filters = history.filters %}
5 {% set no_action = true %}
6
7 {% set form = {
8 'order': {
9 'name': "history"
10 }
11 } %}
12
13 {% block infoline %}
14 {% set infoline = {
15 'label': _Tn("%count entry", "%count entries", history.getCount())|replace({"%count": history.getCount()}),
16 'route': {
17 'name': 'history_filter'
18 }
19 } %}
20 {{ parent() }}
21 {% endblock %}
22
23 {% block infoline_actions %}
24 <a
25 id="delete"
26 class="ui tiny labeled icon button"
27 href="{{ url_for("flushHistory") }}"
28 >
29 <i class="trash red icon" aria-hidden="true"></i>
30 {{ _T("Flush the logs") }}
31 </a>
32 {% endblock %}
33
34 {% block header %}
35 {% set columns = [
36 {'label': '#'},
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")}
42 ] %}
43 {{ parent() }}
44 {% endblock %}
45
46 {% block search %}
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">
51 <div class="field">
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 }}"/>
57 </div>
58 </div>
59 </div>
60 <div class="field">
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 }}"/>
66 </div>
67 </div>
68 </div>
69 </div>
70 <div class="field">
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>
78 {% endfor %}
79 </select>
80 {% endif %}
81 </div>
82 <div class="field">
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>
90 {% endfor %}
91 </select>
92 {% endif %}
93 </div>
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>
97 {{ _T('Filter') }}
98 </button>
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') }}
102 </button>
103 </div>
104 </div>
105 </div>
106 {% include "components/forms/csrf.html.twig" %}
107 </form>
108 {% endblock %}
109
110 {% block body %}
111 {% for log in logs %}
112 <tr class="{% if loop.index % 2 == 0 %}even{% else %}odd{% endif %}">
113 <td data-scope="row">
114 {{ loop.index }}
115 <span class="visually-hidden">
116 {{ _T("History entry %id")|replace({"%id": loop.index}) }}
117 </span>
118 </td>
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 }}
125 {% if log.sql_log %}
126 <div class="tooltip title" title="{{ _T("Show associated query") }}">
127 <i class="dropdown icon" aria-hidden="true"></i>
128 {{ _T("Show associated query") }}
129 </div>
130 <div class="content">
131 <div class="ui grey inverted segment">{{ log.sql_log|escape }}</div>
132 </div>
133 </div>
134 {% endif %}
135 </td>
136 </tr>
137 {% else %}
138 <tr><td colspan="6" class="emptylist">{{ _T("logs are empty") }}</td></tr>
139 {% endfor %}
140 {% endblock %}
141
142 {% block javascripts %}
143 <script type="text/javascript">
144 $(function() {
145 {% include "elements/js/removal.js.twig" with {
146 selector: "#delete",
147 loader: "button",
148 single_action: "true"
149 } %}
150 });
151 </script>
152 {% endblock %}