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) }}
19 <fieldset class="w500p inline">
21 {{ form_label(form.config.items_per_page) }}
22 {{ form_errors(form.config.items_per_page) }}
23 {{ form_widget(form.config.items_per_page) }}
27 <fieldset class="w500p inline">
29 {{ form_label(form.config.reading_speed) }}
30 {{ form_errors(form.config.reading_speed) }}
31 {{ form_widget(form.config.reading_speed) }}
33 {{ 'config.form_settings.reading_speed.help_message'|trans }}
34 <a href="http://www.myreadspeed.com/calculate/">myreadspeed</a>
39 <fieldset class="w500p inline">
41 {{ form_label(form.config.language) }}
42 {{ form_errors(form.config.language) }}
43 {{ form_widget(form.config.language) }}
47 <fieldset class="w500p inline">
49 {{ form_label(form.config.pocket_consumer_key) }}
50 {{ form_errors(form.config.pocket_consumer_key) }}
51 {{ form_widget(form.config.pocket_consumer_key) }}
54 <a href="https://getpocket.com/developer/docs/authentication">https://getpocket.com/developer/docs/authentication</a>
59 <h3>{{ 'config.form_settings.android_configuration'|trans }}</h3>
60 <a href="wallabag://{{ app.user.username }}@{{ wallabag_url }}" >Touch here to prefill your Android application</a>
61 <img id="androidQrcode" />
63 const imgBase64 = jrQrcode.getQrBase64('wallabag://{{ app.user.username }}@{{ wallabag_url }}');
64 document.getElementById('androidQrcode').src=imgBase64;
69 {{ form_rest(form.config) }}
72 <h2>{{ 'config.tab_menu.rss'|trans }}</h2>
74 {{ form_start(form.rss) }}
75 {{ form_errors(form.rss) }}
78 {{ 'config.form_rss.description'|trans }}
81 <fieldset class="w500p inline">
83 <label>Rss token</label>
87 <em>{{ 'config.form_rss.no_token'|trans }}</em>
90 <a href="{{ path('generate_token') }}">
92 {{ 'config.form_rss.token_reset'|trans }}
94 {{ 'config.form_rss.token_create'|trans }}
101 <fieldset class="w500p inline">
103 <label>{{ 'config.form_rss.rss_links'|trans }}</label>
105 <li><a href="{{ path('unread_rss', {'username': rss.username, 'token': rss.token}) }}">unread</a></li>
106 <li><a href="{{ path('starred_rss', {'username': rss.username, 'token': rss.token}) }}">fav</a></li>
107 <li><a href="{{ path('archive_rss', {'username': rss.username, 'token': rss.token}) }}">archives</a></li>
113 <fieldset class="w500p inline">
115 {{ form_label(form.rss.rss_limit) }}
116 {{ form_errors(form.rss.rss_limit) }}
117 {{ form_widget(form.rss.rss_limit) }}
121 {{ form_rest(form.rss) }}
124 <h2>{{ 'config.tab_menu.user_info'|trans }}</h2>
126 {{ form_start(form.user) }}
127 {{ form_errors(form.user) }}
129 <fieldset class="w500p inline">
131 {{ form_label(form.user.name) }}
132 {{ form_errors(form.user.name) }}
133 {{ form_widget(form.user.name) }}
137 <fieldset class="w500p inline">
139 {{ form_label(form.user.email) }}
140 {{ form_errors(form.user.email) }}
141 {{ form_widget(form.user.email) }}
145 {% if twofactor_auth %}
147 {{ 'config.form_user.two_factor_description'|trans }}
150 <fieldset class="w500p inline">
152 {{ form_label(form.user.twoFactorAuthentication) }}
153 {{ form_errors(form.user.twoFactorAuthentication) }}
154 {{ form_widget(form.user.twoFactorAuthentication) }}
159 <h2>{{ 'config.reset.title'|trans }}</h2>
160 <fieldset class="w500p inline">
161 <p>{{ 'config.reset.description'|trans }}</p>
164 <a href="{{ path('config_reset', { type: 'annotations'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
165 {{ 'config.reset.annotations'|trans }}
169 <a href="{{ path('config_reset', { type: 'tags'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
170 {{ 'config.reset.tags'|trans }}
174 <a href="{{ path('config_reset', { type: 'entries'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
175 {{ 'config.reset.entries'|trans }}
181 {{ form_widget(form.user._token) }}
182 {{ form_widget(form.user.save) }}
185 {% if enabled_users > 1 %}
186 <h2>{{ 'config.form_user.delete.title'|trans }}</h2>
188 <p>{{ 'config.form_user.delete.description'|trans }}</p>
189 <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">
190 {{ 'config.form_user.delete.button'|trans }}
194 <h2>{{ 'config.tab_menu.password'|trans }}</h2>
196 {{ form_start(form.pwd) }}
197 {{ form_errors(form.pwd) }}
199 <fieldset class="w500p inline">
201 {{ form_label(form.pwd.old_password) }}
202 {{ form_errors(form.pwd.old_password) }}
203 {{ form_widget(form.pwd.old_password) }}
207 <fieldset class="w500p inline">
209 {{ form_label(form.pwd.new_password.first) }}
210 {{ form_errors(form.pwd.new_password.first) }}
211 {{ form_widget(form.pwd.new_password.first) }}
215 <fieldset class="w500p inline">
217 {{ form_label(form.pwd.new_password.second) }}
218 {{ form_errors(form.pwd.new_password.second) }}
219 {{ form_widget(form.pwd.new_password.second) }}
223 {{ form_rest(form.pwd) }}
226 <h2>{{ 'config.tab_menu.rules'|trans }}</h2>
229 {% for tagging_rule in app.user.config.taggingRules %}
231 {{ 'config.form_rules.if_label'|trans }}
232 « {{ tagging_rule.rule }} »
233 {{ 'config.form_rules.then_tag_as_label'|trans }}
234 « {{ tagging_rule.tags|join(', ') }} »
235 <a href="{{ path('edit_tagging_rule', {id: tagging_rule.id}) }}" title="{{ 'config.form_rules.edit_rule_label'|trans }}" class="tool mode_edit">✎</a>
236 <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>
241 {{ form_start(form.new_tagging_rule) }}
242 {{ form_errors(form.new_tagging_rule) }}
244 <fieldset class="w500p inline">
246 {{ form_label(form.new_tagging_rule.rule) }}
247 {{ form_errors(form.new_tagging_rule.rule) }}
248 {{ form_widget(form.new_tagging_rule.rule) }}
252 <fieldset class="w500p inline">
254 {{ form_label(form.new_tagging_rule.tags) }}
255 {{ form_errors(form.new_tagging_rule.tags) }}
256 {{ form_widget(form.new_tagging_rule.tags) }}
260 {{ form_rest(form.new_tagging_rule) }}
263 <div class="input-field col s12">
264 <h3>{{ 'config.form_rules.faq.title'|trans }}</h3>
266 <h4>{{ 'config.form_rules.faq.tagging_rules_definition_title'|trans }}</h4>
267 <p class="help">{{ 'config.form_rules.faq.tagging_rules_definition_description'|trans|raw }}</p>
269 <h4>{{ 'config.form_rules.faq.how_to_use_them_title'|trans }}</h4>
270 <p class="help">{{ 'config.form_rules.faq.how_to_use_them_description'|trans|raw }}</p>
272 <h4>{{ 'config.form_rules.faq.variables_available_title'|trans }}</h4>
274 {{ 'config.form_rules.faq.variables_available_description'|trans }}
277 <table class="bordered">
280 <th>{{ 'config.form_rules.faq.variable_description.label'|trans }}</th>
281 <th>{{ 'config.form_rules.faq.meaning'|trans }}</th>
282 <th>{{ 'config.form_rules.faq.operator_description.label'|trans }}</th>
283 <th>{{ 'config.form_rules.faq.meaning'|trans }}</th>
290 <td>{{ 'config.form_rules.faq.variable_description.title'|trans }}</td>
292 <td>{{ 'config.form_rules.faq.operator_description.less_than'|trans }}</td>
296 <td>{{ 'config.form_rules.faq.variable_description.url'|trans }}</td>
298 <td>{{ 'config.form_rules.faq.operator_description.strictly_less_than'|trans }}</td>
302 <td>{{ 'config.form_rules.faq.variable_description.isArchived'|trans }}</td>
304 <td>{{ 'config.form_rules.faq.operator_description.greater_than'|trans }}</td>
308 <td>{{ 'config.form_rules.faq.variable_description.isStarred'|trans }}</td>
310 <td>{{ 'config.form_rules.faq.operator_description.strictly_greater_than'|trans }}</td>
314 <td>{{ 'config.form_rules.faq.variable_description.content'|trans }}</td>
316 <td>{{ 'config.form_rules.faq.operator_description.equal_to'|trans }}</td>
320 <td>{{ 'config.form_rules.faq.variable_description.language'|trans }}</td>
322 <td>{{ 'config.form_rules.faq.operator_description.not_equal_to'|trans }}</td>
326 <td>{{ 'config.form_rules.faq.variable_description.mimetype'|trans }}</td>
328 <td>{{ 'config.form_rules.faq.operator_description.or'|trans }}</td>
332 <td>{{ 'config.form_rules.faq.variable_description.readingTime'|trans }}</td>
334 <td>{{ 'config.form_rules.faq.operator_description.and'|trans }}</td>
338 <td>{{ 'config.form_rules.faq.variable_description.domainName'|trans }}</td>
340 <td>{{ 'config.form_rules.faq.operator_description.matches'|trans|raw }}</td>