1 {% extends "WallabagCoreBundle::layout.html.twig" %}
3 {% block title %}{{ 'config.page_title'|trans }}{% endblock %}
6 <h2>{{ 'config.tab_menu.settings'|trans }}</h2>
8 {{ form_start(form.config) }}
9 {{ form_errors(form.config) }}
11 <fieldset class="w500p inline">
13 {{ form_label(form.config.theme) }}
14 {{ form_errors(form.config.theme) }}
15 {{ form_widget(form.config.theme) }}
17 <a href="#" title="{{ 'config.form_settings.help_theme'|trans }}">
18 <i class="material-icons">live_help</i>
22 <fieldset class="w500p inline">
24 {{ form_label(form.config.items_per_page) }}
25 {{ form_errors(form.config.items_per_page) }}
26 {{ form_widget(form.config.items_per_page) }}
28 <a href="#" title="{{ 'config.form_settings.help_items_per_page'|trans }}">
29 <i class="material-icons">live_help</i>
33 <fieldset class="w500p inline">
35 {{ form_label(form.config.reading_speed) }}
36 {{ form_errors(form.config.reading_speed) }}
37 {{ form_widget(form.config.reading_speed) }}
39 {{ 'config.form_settings.reading_speed.help_message'|trans }}
40 <a href="http://www.myreadspeed.com/calculate/">myreadspeed</a>
43 <a href="#" title="{{ 'config.form_settings.help_reading_speed'|trans }}">
44 <i class="material-icons">live_help</i>
48 <fieldset class="w500p inline">
50 {{ form_label(form.config.action_mark_as_read) }}
51 {{ form_errors(form.config.action_mark_as_read) }}
52 {{ form_widget(form.config.action_mark_as_read) }}
56 <fieldset class="w500p inline">
58 {{ form_label(form.config.language) }}
59 {{ form_errors(form.config.language) }}
60 {{ form_widget(form.config.language) }}
62 <a href="#" title="{{ 'config.form_settings.help_language'|trans }}">
63 <i class="material-icons">live_help</i>
67 <fieldset class="w500p inline">
69 {{ form_label(form.config.pocket_consumer_key) }}
70 {{ form_errors(form.config.pocket_consumer_key) }}
71 {{ form_widget(form.config.pocket_consumer_key) }}
74 <a href="https://getpocket.com/developer/docs/authentication">https://getpocket.com/developer/docs/authentication</a>
77 <a href="#" title="{{ 'config.form_settings.help_pocket_consumer_key'|trans }}">
78 <i class="material-icons">live_help</i>
82 <fieldset class="w500p inline">
84 <h3>{{ 'config.form_settings.android_configuration'|trans }}</h3>
85 <a href="wallabag://{{ app.user.username }}@{{ wallabag_url }}">{{ 'config.form_settings.android_instruction' | trans }}</a>
87 <img id="androidQrcode" />
89 document.getElementById('androidQrcode').src = jrQrcode.getQrBase64('wallabag://{{ app.user.username }}@{{ wallabag_url }}');
94 {{ form_rest(form.config) }}
97 <h2>{{ 'config.tab_menu.feed'|trans }}</h2>
99 {{ form_start(form.feed) }}
100 {{ form_errors(form.feed) }}
103 {{ 'config.form_feed.description'|trans }}
106 <fieldset class="w500p inline">
108 <label>{{ 'config.form_feed.token_label'|trans }}</label>
112 <em>{{ 'config.form_feed.no_token'|trans }}</em>
116 – <a href="{{ path('generate_token') }}">{{ 'config.form_feed.token_reset'|trans }}</a>
117 – <a href="{{ path('revoke_token') }}">{{ 'config.form_feed.token_revoke'|trans }}</a>
119 – <a href="{{ path('generate_token') }}">{{ 'config.form_feed.token_create'|trans }}</a>
126 <fieldset class="w500p inline">
128 <label>{{ 'config.form_feed.feed_links'|trans }}</label>
130 <li><a href="{{ path('unread_feed', {'username': feed.username, 'token': feed.token}) }}">{{ 'config.form_feed.feed_link.unread'|trans }}</a></li>
131 <li><a href="{{ path('starred_feed', {'username': feed.username, 'token': feed.token}) }}">{{ 'config.form_feed.feed_link.starred'|trans }}</a></li>
132 <li><a href="{{ path('archive_feed', {'username': feed.username, 'token': feed.token}) }}">{{ 'config.form_feed.feed_link.archive'|trans }}</a></li>
133 <li><a href="{{ path('all_feed', {'username': feed.username, 'token': feed.token}) }}">{{ 'config.form_feed.feed_link.all'|trans }}</a></li>
139 <fieldset class="w500p inline">
141 {{ form_label(form.feed.feed_limit) }}
142 {{ form_errors(form.feed.feed_limit) }}
143 {{ form_widget(form.feed.feed_limit) }}
147 {{ form_rest(form.feed) }}
150 <h2>{{ 'config.tab_menu.user_info'|trans }}</h2>
152 {{ form_start(form.user) }}
153 {{ form_errors(form.user) }}
155 <fieldset class="w500p inline">
157 {{ form_label(form.user.name) }}
158 {{ form_errors(form.user.name) }}
159 {{ form_widget(form.user.name) }}
163 <fieldset class="w500p inline">
165 {{ form_label(form.user.email) }}
166 {{ form_errors(form.user.email) }}
167 {{ form_widget(form.user.email) }}
171 {{ form_widget(form.user.save) }}
173 {% if twofactor_auth %}
174 <h5>{{ 'config.otp.page_title'|trans }}</h5>
177 {{ 'config.form_user.two_factor_description'|trans }}
183 <th>{{ 'config.form_user.two_factor.table_method'|trans }}</th>
184 <th>{{ 'config.form_user.two_factor.table_state'|trans }}</th>
185 <th>{{ 'config.form_user.two_factor.table_action'|trans }}</th>
191 <td>{{ 'config.form_user.two_factor.emailTwoFactor_label'|trans }}</td>
192 <td>{% if app.user.isEmailTwoFactor %}<b>{{ 'config.form_user.two_factor.state_enabled'|trans }}</b>{% else %}{{ 'config.form_user.two_factor.state_disabled'|trans }}{% endif %}</td>
193 <td><a href="{{ path('config_otp_email') }}" class="waves-effect waves-light btn{% if app.user.isEmailTwoFactor %} disabled{% endif %}">{{ 'config.form_user.two_factor.action_email'|trans }}</a></td>
196 <td>{{ 'config.form_user.two_factor.googleTwoFactor_label'|trans }}</td>
197 <td>{% if app.user.isGoogleTwoFactor %}<b>{{ 'config.form_user.two_factor.state_enabled'|trans }}</b>{% else %}{{ 'config.form_user.two_factor.state_disabled'|trans }}{% endif %}</td>
198 <td><a href="{{ path('config_otp_app') }}" class="waves-effect waves-light btn{% if app.user.isGoogleTwoFactor %} disabled{% endif %}">{{ 'config.form_user.two_factor.action_app'|trans }}</a></td>
205 {{ form_widget(form.user._token) }}
208 {% if enabled_users > 1 %}
209 <h2>{{ 'config.form_user.delete.title'|trans }}</h2>
211 <p>{{ 'config.form_user.delete.description'|trans }}</p>
212 <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">
213 {{ 'config.form_user.delete.button'|trans }}
217 <h2>{{ 'config.tab_menu.password'|trans }}</h2>
219 {{ form_start(form.pwd) }}
220 {{ form_errors(form.pwd) }}
223 {{ 'config.form_password.description'|trans }}
226 <fieldset class="w500p inline">
228 {{ form_label(form.pwd.old_password) }}
229 {{ form_errors(form.pwd.old_password) }}
230 {{ form_widget(form.pwd.old_password) }}
234 <fieldset class="w500p inline">
236 {{ form_label(form.pwd.new_password.first) }}
237 {{ form_errors(form.pwd.new_password.first) }}
238 {{ form_widget(form.pwd.new_password.first) }}
242 <fieldset class="w500p inline">
244 {{ form_label(form.pwd.new_password.second) }}
245 {{ form_errors(form.pwd.new_password.second) }}
246 {{ form_widget(form.pwd.new_password.second) }}
250 {{ form_rest(form.pwd) }}
253 <h2>{{ 'config.tab_menu.rules'|trans }}</h2>
256 {% for tagging_rule in app.user.config.taggingRules %}
258 {{ 'config.form_rules.if_label'|trans }}
259 « {{ tagging_rule.rule }} »
260 {{ 'config.form_rules.then_tag_as_label'|trans }}
261 « {{ tagging_rule.tags|join(', ') }} »
262 <a href="{{ path('edit_tagging_rule', {id: tagging_rule.id}) }}" title="{{ 'config.form_rules.edit_rule_label'|trans }}" class="tool mode_edit">✎</a>
263 <a href="{{ path('delete_tagging_rule', {id: tagging_rule.id}) }}" title="{{ 'config.form_rules.delete_rule_label'|trans }}" class="tool delete icon-trash icon"></a>
268 {{ form_start(form.new_tagging_rule) }}
269 {{ form_errors(form.new_tagging_rule) }}
271 <fieldset class="w500p inline">
273 {{ form_label(form.new_tagging_rule.rule) }}
274 {{ form_errors(form.new_tagging_rule.rule) }}
275 {{ form_widget(form.new_tagging_rule.rule) }}
279 <fieldset class="w500p inline">
281 {{ form_label(form.new_tagging_rule.tags) }}
282 {{ form_errors(form.new_tagging_rule.tags) }}
283 {{ form_widget(form.new_tagging_rule.tags) }}
287 {{ form_rest(form.new_tagging_rule) }}
290 <div class="input-field col s12">
291 <h3>{{ 'config.form_rules.faq.title'|trans }}</h3>
293 <h4>{{ 'config.form_rules.faq.tagging_rules_definition_title'|trans }}</h4>
294 <p class="help">{{ 'config.form_rules.faq.tagging_rules_definition_description'|trans|raw }}</p>
296 <h4>{{ 'config.form_rules.faq.how_to_use_them_title'|trans }}</h4>
297 <p class="help">{{ 'config.form_rules.faq.how_to_use_them_description'|trans|raw }}</p>
299 <h4>{{ 'config.form_rules.faq.variables_available_title'|trans }}</h4>
301 {{ 'config.form_rules.faq.variables_available_description'|trans }}
304 <table class="bordered">
307 <th>{{ 'config.form_rules.faq.variable_description.label'|trans }}</th>
308 <th>{{ 'config.form_rules.faq.meaning'|trans }}</th>
309 <th>{{ 'config.form_rules.faq.operator_description.label'|trans }}</th>
310 <th>{{ 'config.form_rules.faq.meaning'|trans }}</th>
317 <td>{{ 'config.form_rules.faq.variable_description.title'|trans }}</td>
319 <td>{{ 'config.form_rules.faq.operator_description.less_than'|trans }}</td>
323 <td>{{ 'config.form_rules.faq.variable_description.url'|trans }}</td>
325 <td>{{ 'config.form_rules.faq.operator_description.strictly_less_than'|trans }}</td>
329 <td>{{ 'config.form_rules.faq.variable_description.isArchived'|trans }}</td>
331 <td>{{ 'config.form_rules.faq.operator_description.greater_than'|trans }}</td>
335 <td>{{ 'config.form_rules.faq.variable_description.isStarred'|trans }}</td>
337 <td>{{ 'config.form_rules.faq.operator_description.strictly_greater_than'|trans }}</td>
341 <td>{{ 'config.form_rules.faq.variable_description.content'|trans }}</td>
343 <td>{{ 'config.form_rules.faq.operator_description.equal_to'|trans }}</td>
347 <td>{{ 'config.form_rules.faq.variable_description.language'|trans }}</td>
349 <td>{{ 'config.form_rules.faq.operator_description.not_equal_to'|trans }}</td>
353 <td>{{ 'config.form_rules.faq.variable_description.mimetype'|trans }}</td>
355 <td>{{ 'config.form_rules.faq.operator_description.or'|trans }}</td>
359 <td>{{ 'config.form_rules.faq.variable_description.readingTime'|trans }}</td>
361 <td>{{ 'config.form_rules.faq.operator_description.and'|trans }}</td>
365 <td>{{ 'config.form_rules.faq.variable_description.domainName'|trans }}</td>
367 <td>{{ 'config.form_rules.faq.operator_description.matches'|trans|raw }}</td>
374 <h2>{{ 'config.reset.title'|trans }}</h2>
375 <fieldset class="w500p inline">
376 <p>{{ 'config.reset.description'|trans }}</p>
379 <a href="{{ path('config_reset', { type: 'annotations'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
380 {{ 'config.reset.annotations'|trans }}
384 <a href="{{ path('config_reset', { type: 'tags'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
385 {{ 'config.reset.tags'|trans }}
389 <a href="{{ path('config_reset', { type: 'archived'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
390 {{ 'config.reset.archived'|trans }}
394 <a href="{{ path('config_reset', { type: 'entries'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
395 {{ 'config.reset.entries'|trans }}