]> git.immae.eu Git - github/wallabag/wallabag.git/blob - src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig
Create a dedicated tab to reset data
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / Resources / views / themes / material / Config / index.html.twig
1 {% extends "WallabagCoreBundle::layout.html.twig" %}
2
3 {% block title %}{{ 'config.page_title'|trans }}{% endblock %}
4
5 {% block content %}
6
7 <div class="row">
8 <div class="col s12">
9 <div class="card-panel settings">
10
11 <div class="row">
12 <div class="div_tabs col s12">
13 <ul class="tabs">
14 <li class="tab col s12 m6 l3"><a class="active" href="#set1">{{ 'config.tab_menu.settings'|trans }}</a></li>
15 <li class="tab col s12 m6 l3"><a href="#set2">{{ 'config.tab_menu.rss'|trans }}</a></li>
16 <li class="tab col s12 m6 l3"><a href="#set3">{{ 'config.tab_menu.user_info'|trans }}</a></li>
17 <li class="tab col s12 m6 l3"><a href="#set4">{{ 'config.tab_menu.password'|trans }}</a></li>
18 <li class="tab col s12 m6 l3"><a href="#set5">{{ 'config.tab_menu.rules'|trans }}</a></li>
19 <li class="tab col s12 m6 l3"><a href="#set6">{{ 'config.tab_menu.reset'|trans }}</a></li>
20 </ul>
21 </div>
22
23 <div id="set1" class="col s12">
24 {{ form_start(form.config) }}
25 {{ form_errors(form.config) }}
26
27 <div class="row">
28 <div class="input-field col s11">
29 {{ form_errors(form.config.theme) }}
30 {{ form_widget(form.config.theme) }}
31 {{ form_label(form.config.theme) }}
32 </div>
33 <div class="input-field col s1">
34 <a href="#" class="tooltipped" data-position="left" data-delay="50" data-tooltip="{{ 'config.form_settings.help_theme'|trans }}">
35 <i class="material-icons">live_help</i>
36 </a>
37 </div>
38 </div>
39
40 <div class="row">
41 <div class="input-field col s11">
42 {{ form_errors(form.config.items_per_page) }}
43 {{ form_widget(form.config.items_per_page) }}
44 {{ form_label(form.config.items_per_page) }}
45 </div>
46 <div class="input-field col s1">
47 <a href="#" class="tooltipped" data-position="left" data-delay="50" data-tooltip="{{ 'config.form_settings.help_items_per_page'|trans }}">
48 <i class="material-icons">live_help</i>
49 </a>
50 </div>
51 </div>
52
53 <div class="row">
54 <div class="input-field col s11">
55 {{ form_errors(form.config.reading_speed) }}
56 {{ form_widget(form.config.reading_speed) }}
57 {{ form_label(form.config.reading_speed) }}
58 <p>
59 {{ 'config.form_settings.reading_speed.help_message'|trans }}
60 <a href="http://www.myreadspeed.com/calculate/">myreadspeed</a>
61 </p>
62 </div>
63 <div class="input-field col s1">
64 <a href="#" class="tooltipped" data-position="left" data-delay="50" data-tooltip="{{ 'config.form_settings.help_reading_speed'|trans }}">
65 <i class="material-icons">live_help</i>
66 </a>
67 </div>
68 </div>
69
70 <div class="row">
71 <div class="input-field col s12">
72 {{ form_errors(form.config.action_mark_as_read) }}
73 {{ form_widget(form.config.action_mark_as_read) }}
74 {{ form_label(form.config.action_mark_as_read) }}
75 </div>
76 </div>
77
78 <div class="row">
79 <div class="input-field col s11">
80 {{ form_errors(form.config.language) }}
81 {{ form_widget(form.config.language) }}
82 {{ form_label(form.config.language) }}
83 </div>
84 <div class="input-field col s1">
85 <a href="#" class="tooltipped" data-position="left" data-delay="50" data-tooltip="{{ 'config.form_settings.help_language'|trans }}">
86 <i class="material-icons">live_help</i>
87 </a>
88 </div>
89 </div>
90
91 <div class="row">
92 <div class="input-field col s11">
93 {{ form_errors(form.config.pocket_consumer_key) }}
94 {{ form_widget(form.config.pocket_consumer_key) }}
95 {{ form_label(form.config.pocket_consumer_key) }}
96 <p>
97 &raquo;
98 <a href="https://getpocket.com/developer/docs/authentication">https://getpocket.com/developer/docs/authentication</a>
99 </p>
100 </div>
101 <div class="input-field col s1">
102 <a href="#" class="tooltipped" data-position="left" data-delay="50" data-tooltip="{{ 'config.form_settings.help_pocket_consumer_key'|trans }}">
103 <i class="material-icons">live_help</i>
104 </a>
105 </div>
106 </div>
107
108 <div class="row">
109 <div class="input-field col s12">
110 <h5>{{ 'config.form_settings.android_configuration'|trans }}</h5>
111 <a href="wallabag://{{ app.user.username }}@{{ wallabag_url }}" class="waves-effect waves-light btn hide-on-large-only">{{ 'config.form_settings.android_instruction' | trans }}</a>
112 <img id="androidQrcode" class="hide-on-med-and-down" />
113 </div>
114 <script>
115 const imgBase64 = jrQrcode.getQrBase64('wallabag://{{ app.user.username }}@{{ wallabag_url }}');
116 document.getElementById('androidQrcode').src = imgBase64;
117 </script>
118 </div>
119
120 {{ form_widget(form.config.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
121 {{ form_rest(form.config) }}
122 </form>
123 </div>
124
125 <div id="set2" class="col s12">
126 {{ form_start(form.rss) }}
127 {{ form_errors(form.rss) }}
128
129 <div class="row">
130 <div class="input-field col s12">
131 {{ 'config.form_rss.description'|trans }}
132 </div>
133 </div>
134
135 <div class="row">
136 <div class="col s12">
137 <h6 class="grey-text">{{ 'config.form_rss.token_label'|trans }}</h6>
138 <div>
139 {% if rss.token %}
140 {{ rss.token }}
141 {% else %}
142 <em>{{ 'config.form_rss.no_token'|trans }}</em>
143 {% endif %}
144 – <a href="{{ path('generate_token') }}">
145 {% if rss.token %}
146 {{ 'config.form_rss.token_reset'|trans }}
147 {% else %}
148 {{ 'config.form_rss.token_create'|trans }}
149 {% endif %}</a>
150 </div>
151 </div>
152 </div>
153 {% if rss.token %}
154 <div class="row">
155 <div class="col s12">
156 <h6 class="grey-text">{{ 'config.form_rss.rss_links'|trans }}</h6>
157 <ul>
158 <li><a href="{{ path('unread_rss', {'username': rss.username, 'token': rss.token}) }}">{{ 'config.form_rss.rss_link.unread'|trans }}</a></li>
159 <li><a href="{{ path('starred_rss', {'username': rss.username, 'token': rss.token}) }}">{{ 'config.form_rss.rss_link.starred'|trans }}</a></li>
160 <li><a href="{{ path('archive_rss', {'username': rss.username, 'token': rss.token}) }}">{{ 'config.form_rss.rss_link.archive'|trans }}</a></li>
161 <li><a href="{{ path('all_rss', {'username': rss.username, 'token': rss.token}) }}">{{ 'config.form_rss.rss_link.all'|trans }}</a></li>
162 </ul>
163 </div>
164 </div>
165 {% endif %}
166
167 <div class="row">
168 <div class="input-field col s12">
169 {{ form_label(form.rss.rss_limit) }}
170 {{ form_errors(form.rss.rss_limit) }}
171 {{ form_widget(form.rss.rss_limit) }}
172 </div>
173 </div>
174
175 {{ form_widget(form.rss.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
176 {{ form_rest(form.rss) }}
177 </form>
178 </div>
179
180 <div id="set3" class="col s12">
181 {{ form_start(form.user) }}
182 {{ form_errors(form.user) }}
183
184 <div class="row">
185 <div class="input-field col s12">
186 {{ form_label(form.user.name) }}
187 {{ form_errors(form.user.name) }}
188 {{ form_widget(form.user.name) }}
189 </div>
190 </div>
191
192 <div class="row">
193 <div class="input-field col s12">
194 {{ form_label(form.user.email) }}
195 {{ form_errors(form.user.email) }}
196 {{ form_widget(form.user.email) }}
197 </div>
198 </div>
199
200 {% if twofactor_auth %}
201 <div class="row">
202 <div class="input-field col s11">
203 {{ 'config.form_user.two_factor_description'|trans }}
204
205 <br />
206
207 {{ form_widget(form.user.twoFactorAuthentication) }}
208 {{ form_label(form.user.twoFactorAuthentication) }}
209 {{ form_errors(form.user.twoFactorAuthentication) }}
210 </div>
211 <div class="input-field col s1">
212 <a href="#" class="tooltipped" data-position="left" data-delay="50" data-tooltip="{{ 'config.form_user.help_twoFactorAuthentication'|trans }}">
213 <i class="material-icons">live_help</i>
214 </a>
215 </div>
216 </div>
217 {% endif %}
218
219 {{ form_widget(form.user.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
220 {{ form_widget(form.user._token) }}
221 </form>
222 </div>
223
224 <div id="set4" class="col s12">
225 {{ form_start(form.pwd) }}
226 {{ form_errors(form.pwd) }}
227
228 <div class="row">
229 <div class="input-field col s12">
230 {{ 'config.form_password.description'|trans }}
231 </div>
232 </div>
233
234 <div class="row">
235 <div class="input-field col s12">
236 {{ form_label(form.pwd.old_password) }}
237 {{ form_errors(form.pwd.old_password) }}
238 {{ form_widget(form.pwd.old_password) }}
239 </div>
240 </div>
241
242 <div class="row">
243 <div class="input-field col s12">
244 {{ form_label(form.pwd.new_password.first) }}
245 {{ form_errors(form.pwd.new_password.first) }}
246 {{ form_widget(form.pwd.new_password.first) }}
247 </div>
248 </div>
249
250 <div class="row">
251 <div class="input-field col s12">
252 {{ form_label(form.pwd.new_password.second) }}
253 {{ form_errors(form.pwd.new_password.second) }}
254 {{ form_widget(form.pwd.new_password.second) }}
255 </div>
256 </div>
257
258 {{ form_widget(form.pwd.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
259 {{ form_rest(form.pwd) }}
260 </form>
261 </div>
262
263 <div id="set5" class="col s12">
264 {% if app.user.config.taggingRules is not empty %}
265 <div class="row">
266 <div class="input-field col s12">
267 <ul>
268 {% for tagging_rule in app.user.config.taggingRules %}
269 <li>
270 {{ 'config.form_rules.if_label'|trans }}
271 « {{ tagging_rule.rule }} »
272 {{ 'config.form_rules.then_tag_as_label'|trans }}
273 « {{ tagging_rule.tags|join(', ') }} »
274 <a href="{{ path('edit_tagging_rule', {id: tagging_rule.id}) }}" title="{{ 'config.form_rules.edit_rule_label'|trans }}">
275 <i class="tool grey-text mode_edit material-icons">mode_edit</i>
276 </a>
277 <a href="{{ path('delete_tagging_rule', {id: tagging_rule.id}) }}" title="{{ 'config.form_rules.delete_rule_label'|trans }}">
278 <i class="tool grey-text delete material-icons">delete</i>
279 </a>
280 </li>
281 {% endfor %}
282 </ul>
283 </div>
284 </div>
285 {% endif %}
286
287 {{ form_start(form.new_tagging_rule) }}
288 {{ form_errors(form.new_tagging_rule) }}
289
290 <div class="row">
291 <div class="input-field col s12">
292 {{ form_label(form.new_tagging_rule.rule) }}
293 {{ form_errors(form.new_tagging_rule.rule) }}
294 {{ form_widget(form.new_tagging_rule.rule) }}
295 </div>
296 </div>
297
298 <div class="row">
299 <div class="input-field col s12">
300 {{ form_label(form.new_tagging_rule.tags) }}
301 {{ form_errors(form.new_tagging_rule.tags) }}
302 {{ form_widget(form.new_tagging_rule.tags) }}
303 </div>
304 </div>
305
306 {{ form_widget(form.new_tagging_rule.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
307 {{ form_rest(form.new_tagging_rule) }}
308 </form>
309
310 <div class="row">
311 <div class="input-field col s12">
312 <h4>{{ 'config.form_rules.faq.title'|trans }}</h4>
313
314 <h5>{{ 'config.form_rules.faq.tagging_rules_definition_title'|trans }}</h5>
315 <p class="help">{{ 'config.form_rules.faq.tagging_rules_definition_description'|trans|raw }}</p>
316
317 <h5>{{ 'config.form_rules.faq.how_to_use_them_title'|trans }}</h5>
318 <p class="help">{{ 'config.form_rules.faq.how_to_use_them_description'|trans|raw }}</p>
319
320 <h5>{{ 'config.form_rules.faq.variables_available_title'|trans }}</h5>
321 <p class="help">
322 {{ 'config.form_rules.faq.variables_available_description'|trans }}
323 </p>
324
325 <table class="bordered">
326 <thead>
327 <tr>
328 <th>{{ 'config.form_rules.faq.variable_description.label'|trans }}</th>
329 <th>{{ 'config.form_rules.faq.meaning'|trans }}</th>
330 <th>{{ 'config.form_rules.faq.operator_description.label'|trans }}</th>
331 <th>{{ 'config.form_rules.faq.meaning'|trans }}</th>
332 </tr>
333 </thead>
334
335 <tbody>
336 <tr>
337 <td>title</td>
338 <td>{{ 'config.form_rules.faq.variable_description.title'|trans }}</td>
339 <td>&lt;=</td>
340 <td>{{ 'config.form_rules.faq.operator_description.less_than'|trans }}</td>
341 </tr>
342 <tr>
343 <td>url</td>
344 <td>{{ 'config.form_rules.faq.variable_description.url'|trans }}</td>
345 <td>&lt;</td>
346 <td>{{ 'config.form_rules.faq.operator_description.strictly_less_than'|trans }}</td>
347 </tr>
348 <tr>
349 <td>isArchived</td>
350 <td>{{ 'config.form_rules.faq.variable_description.isArchived'|trans }}</td>
351 <td>&gt;=</td>
352 <td>{{ 'config.form_rules.faq.operator_description.greater_than'|trans }}</td>
353 </tr>
354 <tr>
355 <td>isStarred</td>
356 <td>{{ 'config.form_rules.faq.variable_description.isStarred'|trans }}</td>
357 <td>&gt;</td>
358 <td>{{ 'config.form_rules.faq.operator_description.strictly_greater_than'|trans }}</td>
359 </tr>
360 <tr>
361 <td>content</td>
362 <td>{{ 'config.form_rules.faq.variable_description.content'|trans }}</td>
363 <td>=</td>
364 <td>{{ 'config.form_rules.faq.operator_description.equal_to'|trans }}</td>
365 </tr>
366 <tr>
367 <td>language</td>
368 <td>{{ 'config.form_rules.faq.variable_description.language'|trans }}</td>
369 <td>!=</td>
370 <td>{{ 'config.form_rules.faq.operator_description.not_equal_to'|trans }}</td>
371 </tr>
372 <tr>
373 <td>mimetype</td>
374 <td>{{ 'config.form_rules.faq.variable_description.mimetype'|trans }}</td>
375 <td>OR</td>
376 <td>{{ 'config.form_rules.faq.operator_description.or'|trans }}</td>
377 </tr>
378 <tr>
379 <td>readingTime</td>
380 <td>{{ 'config.form_rules.faq.variable_description.readingTime'|trans }}</td>
381 <td>AND</td>
382 <td>{{ 'config.form_rules.faq.operator_description.and'|trans }}</td>
383 </tr>
384 <tr>
385 <td>domainName</td>
386 <td>{{ 'config.form_rules.faq.variable_description.domainName'|trans }}</td>
387 <td>matches<br />notmaches</td>
388 <td>{{ 'config.form_rules.faq.operator_description.matches'|trans|raw }}<br />{{ 'config.form_rules.faq.operator_description.notmatches'|trans|raw }}</td>
389 </tr>
390 </tbody>
391 </table>
392 </div>
393 </div>
394 </div>
395
396 <div id="set6" class="col s12">
397 <div class="row">
398 <h5>{{ 'config.reset.title'|trans }}</h5>
399 <p>{{ 'config.reset.description'|trans }}</p>
400 <a href="{{ path('config_reset', { type: 'annotations'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
401 {{ 'config.reset.annotations'|trans }}
402 </a>
403 <a href="{{ path('config_reset', { type: 'tags'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
404 {{ 'config.reset.tags'|trans }}
405 </a>
406 <a href="{{ path('config_reset', { type: 'archived'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
407 {{ 'config.reset.archived'|trans }}
408 </a>
409 <a href="{{ path('config_reset', { type: 'entries'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
410 {{ 'config.reset.entries'|trans }}
411 </a>
412 </div>
413
414 {% if enabled_users > 1 %}
415 <br /><hr /><br />
416
417 <div class="row">
418 <h5>{{ 'config.form_user.delete.title'|trans }}</h5>
419 <p>{{ 'config.form_user.delete.description'|trans }}</p>
420 <a href="{{ path('delete_account') }}" onclick="return confirm('{{ 'config.form_user.delete.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red delete-account">
421 {{ 'config.form_user.delete.button'|trans }}
422 </a>
423 </div>
424 {% endif %}
425 </div>
426 </div>
427
428 </div>
429 </div>
430 </div>
431 {% endblock %}