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