]>
Commit | Line | Data |
---|---|---|
53e12188 AD |
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} |
2 | ||
4f0dfac6 | 3 | {% block title %}{% trans %}config{% endtrans %}{% endblock %} |
53e12188 AD |
4 | |
5 | {% block content %} | |
6 | ||
7 | <div class="row"> | |
8 | <div class="col s12"> | |
9948d899 | 9 | <div class="card-panel settings"> |
53e12188 AD |
10 | |
11 | <div class="row"> | |
9948d899 | 12 | <div class="div_tabs col s12"> |
53e12188 | 13 | <ul class="tabs"> |
26975877 JB |
14 | <li class="tab col s3"><a class="active" href="#set1">{% trans %}Settings{% endtrans %}</a></li> |
15 | <li class="tab col s3"><a href="#set2">{% trans %}RSS{% endtrans %}</a></li> | |
16 | <li class="tab col s3"><a href="#set3">{% trans %}User information{% endtrans %}</a></li> | |
17 | <li class="tab col s3"><a href="#set4">{% trans %}Password{% endtrans %}</a></li> | |
18 | <li class="tab col s3"><a href="#set5">{% trans %}Tagging rules{% endtrans %}</a></li> | |
19 | {% if is_granted('ROLE_SUPER_ADMIN') %} | |
20 | <li class="tab col s3"><a href="#set6">{% trans %}Add a user{% endtrans %}</a></li> | |
21 | {% endif %} | |
53e12188 AD |
22 | </ul> |
23 | </div> | |
24 | ||
53e12188 | 25 | <div id="set1" class="col s12"> |
33fe61f9 | 26 | {{ form_start(form.config) }} |
53e12188 AD |
27 | {{ form_errors(form.config) }} |
28 | ||
29 | <div class="row"> | |
30 | <div class="input-field col s12"> | |
31 | {{ form_errors(form.config.theme) }} | |
32 | {{ form_widget(form.config.theme) }} | |
33 | <label class="required">{% trans %}Theme{% endtrans %}</label> | |
34 | </div> | |
35 | </div> | |
36 | ||
37 | <div class="row"> | |
38 | <div class="input-field col s12"> | |
39 | {{ form_label(form.config.items_per_page) }} | |
40 | {{ form_errors(form.config.items_per_page) }} | |
41 | {{ form_widget(form.config.items_per_page) }} | |
42 | </div> | |
43 | </div> | |
44 | ||
bca54859 NL |
45 | <div class="row"> |
46 | <div class="input-field col s12"> | |
47 | {{ form_label(form.config.reading_speed) }} | |
48 | {{ form_errors(form.config.reading_speed) }} | |
49 | {{ form_widget(form.config.reading_speed) }} | |
6432b927 | 50 | <p>{% trans %}You can use online tools to estimate your reading speed{% endtrans %} (<a href="http://www.myreadspeed.com/calculate/">{% trans %}like this one{%endtrans%}</a>).</p> |
bca54859 NL |
51 | </div> |
52 | </div> | |
53 | ||
53e12188 AD |
54 | <div class="row"> |
55 | <div class="input-field col s12"> | |
56 | {{ form_label(form.config.language) }} | |
57 | {{ form_errors(form.config.language) }} | |
58 | {{ form_widget(form.config.language) }} | |
59 | </div> | |
60 | </div> | |
61 | ||
62 | <div class="hidden">{{ form_rest(form.config) }}</div> | |
63 | <button class="btn waves-effect waves-light" type="submit" name="action"> | |
43e6f47d | 64 | {% trans %}Save{% endtrans %} |
53e12188 AD |
65 | </button> |
66 | </form> | |
67 | </div> | |
68 | ||
53e12188 | 69 | <div id="set2" class="col s12"> |
33fe61f9 | 70 | {{ form_start(form.rss) }} |
53e12188 AD |
71 | {{ form_errors(form.rss) }} |
72 | ||
73 | <div class="row"> | |
74 | <div class="input-field col s12"> | |
4f0dfac6 NL |
75 | {% trans %}RSS feeds provided by wallabag allow you to read your saved articles with your favourite RSS reader. You need to generate a token first.{% endtrans %} |
76 | </div> | |
77 | </div> | |
78 | ||
79 | <div class="row"> | |
80 | <div class="input-field col s12"> | |
81 | <label>{% trans %}RSS token{% endtrans %}</label> | |
83aaf841 JB |
82 | <div> |
83 | {% if rss.token %} | |
84 | {{ rss.token }} | |
85 | {% else %} | |
4f0dfac6 | 86 | <em>{% trans %}No token{% endtrans %}</em> |
83aaf841 | 87 | {% endif %} |
4f0dfac6 | 88 | – <a href="{{ path('generate_token') }}">{% if rss.token %}{% trans %}Reset your token{% endtrans %}{% else %}{% trans %}Create your token{% endtrans %}{% endif %}</a> |
83aaf841 | 89 | </div> |
53e12188 AD |
90 | </div> |
91 | </div> | |
4f0dfac6 | 92 | {% if rss.token %} |
53e12188 AD |
93 | <div class="row"> |
94 | <div class="input-field col s12"> | |
4f0dfac6 | 95 | <label>{% trans %}RSS links{% endtrans %}</label> |
53e12188 | 96 | <ul> |
4f0dfac6 NL |
97 | <li><a href="{{ path('unread_rss', {'username': rss.username, 'token': rss.token}) }}">{% trans %}unread{% endtrans %}</a></li> |
98 | <li><a href="{{ path('starred_rss', {'username': rss.username, 'token': rss.token}) }}">{% trans %}starred{% endtrans %}</a></li> | |
99 | <li><a href="{{ path('archive_rss', {'username': rss.username, 'token': rss.token}) }}">{% trans %}archive{% endtrans %}</a></li> | |
53e12188 | 100 | </ul> |
4f0dfac6 | 101 | |
53e12188 AD |
102 | </div> |
103 | </div> | |
4f0dfac6 | 104 | {% endif %} |
53e12188 AD |
105 | |
106 | <div class="row"> | |
107 | <div class="input-field col s12"> | |
108 | {{ form_label(form.rss.rss_limit) }} | |
109 | {{ form_errors(form.rss.rss_limit) }} | |
110 | {{ form_widget(form.rss.rss_limit) }} | |
111 | </div> | |
112 | </div> | |
113 | ||
114 | <div class="hidden">{{ form_rest(form.rss) }}</div> | |
115 | <button class="btn waves-effect waves-light" type="submit" name="action"> | |
43e6f47d | 116 | {% trans %}Save{% endtrans %} |
53e12188 AD |
117 | </button> |
118 | ||
119 | </form> | |
120 | </div> | |
121 | ||
53e12188 | 122 | <div id="set3" class="col s12"> |
33fe61f9 | 123 | {{ form_start(form.user) }} |
53e12188 AD |
124 | {{ form_errors(form.user) }} |
125 | ||
126 | <div class="row"> | |
127 | <div class="input-field col s12"> | |
128 | {{ form_label(form.user.name) }} | |
129 | {{ form_errors(form.user.name) }} | |
130 | {{ form_widget(form.user.name) }} | |
131 | </div> | |
132 | </div> | |
133 | ||
134 | <div class="row"> | |
135 | <div class="input-field col s12"> | |
136 | {{ form_label(form.user.email) }} | |
137 | {{ form_errors(form.user.email) }} | |
138 | {{ form_widget(form.user.email) }} | |
139 | </div> | |
140 | </div> | |
141 | ||
18cf594f | 142 | {% if twofactor_auth %} |
23ff8d36 JB |
143 | <div class="row"> |
144 | <div class="input-field col s12"> | |
145 | {% trans %}Enabling two factor authentication means you'll receive an email with a code on every new untrusted connexion{% endtrans %} | |
146 | </div> | |
147 | </div> | |
148 | ||
2db616b5 NL |
149 | <div class="row"> |
150 | <div class="input-field col s12"> | |
151 | {{ form_widget(form.user.twoFactorAuthentication) }} | |
152 | {{ form_label(form.user.twoFactorAuthentication) }} | |
153 | {{ form_errors(form.user.twoFactorAuthentication) }} | |
154 | </div> | |
155 | </div> | |
18cf594f | 156 | {% endif %} |
2db616b5 | 157 | |
53e12188 AD |
158 | <div class="hidden">{{ form_rest(form.user) }}</div> |
159 | <button class="btn waves-effect waves-light" type="submit" name="action"> | |
43e6f47d | 160 | {% trans %}Save{% endtrans %} |
53e12188 AD |
161 | </button> |
162 | ||
163 | </form> | |
164 | </div> | |
165 | ||
53e12188 | 166 | <div id="set4" class="col s12"> |
33fe61f9 | 167 | {{ form_start(form.pwd) }} |
53e12188 AD |
168 | {{ form_errors(form.pwd) }} |
169 | ||
170 | <div class="row"> | |
171 | <div class="input-field col s12"> | |
172 | {{ form_label(form.pwd.old_password) }} | |
173 | {{ form_errors(form.pwd.old_password) }} | |
174 | {{ form_widget(form.pwd.old_password) }} | |
175 | </div> | |
176 | </div> | |
177 | ||
178 | <div class="row"> | |
179 | <div class="input-field col s12"> | |
180 | {{ form_label(form.pwd.new_password.first) }} | |
181 | {{ form_errors(form.pwd.new_password.first) }} | |
182 | {{ form_widget(form.pwd.new_password.first) }} | |
183 | </div> | |
184 | </div> | |
185 | ||
186 | <div class="row"> | |
187 | <div class="input-field col s12"> | |
188 | {{ form_label(form.pwd.new_password.second) }} | |
189 | {{ form_errors(form.pwd.new_password.second) }} | |
190 | {{ form_widget(form.pwd.new_password.second) }} | |
191 | </div> | |
192 | </div> | |
193 | ||
194 | <div class="hidden">{{ form_rest(form.pwd) }}</div> | |
195 | <button class="btn waves-effect waves-light" type="submit" name="action"> | |
4aafa7f0 | 196 | {% trans %}Save{% endtrans %} |
53e12188 AD |
197 | </button> |
198 | ||
199 | </form> | |
200 | </div> | |
201 | ||
f19f9f62 | 202 | <div id="set5" class="col s12"> |
981cacf7 KG |
203 | <div class="row"> |
204 | <div class="input-field col s12"> | |
205 | <ul> | |
206 | {% for tagging_rule in app.user.config.taggingRules %} | |
207 | <li> | |
208 | if « {{ tagging_rule.rule }} » then tag as « {{ tagging_rule.tags|join(', ') }} » | |
52e423f3 KG |
209 | <a href="{{ path('delete_tagging_rule', {id: tagging_rule.id}) }}" title="{% trans %}Delete{% endtrans %}"> |
210 | <i class="tool grey-text delete mdi-action-delete"></i> | |
211 | </a> | |
981cacf7 KG |
212 | </li> |
213 | {% endfor %} | |
214 | </ul> | |
215 | </div> | |
216 | </div> | |
217 | ||
c13eda46 | 218 | {{ form_start(form.new_tagging_rule) }} |
9b88658c | 219 | {{ form_errors(form.new_tagging_rule) }} |
f19f9f62 KG |
220 | |
221 | <div class="row"> | |
222 | <div class="input-field col s12"> | |
223 | {{ form_label(form.new_tagging_rule.rule) }} | |
224 | {{ form_errors(form.new_tagging_rule.rule) }} | |
225 | {{ form_widget(form.new_tagging_rule.rule) }} | |
226 | </div> | |
227 | </div> | |
228 | ||
229 | <div class="row"> | |
230 | <div class="input-field col s12"> | |
231 | {{ form_label(form.new_tagging_rule.tags) }} | |
232 | {{ form_errors(form.new_tagging_rule.tags) }} | |
233 | {{ form_widget(form.new_tagging_rule.tags) }} | |
234 | </div> | |
235 | </div> | |
236 | ||
237 | <div class="hidden">{{ form_rest(form.new_tagging_rule) }}</div> | |
238 | <button class="btn waves-effect waves-light" type="submit" name="action"> | |
239 | {% trans %}Save{% endtrans %} | |
240 | </button> | |
f19f9f62 | 241 | </form> |
e9fbd2d1 KG |
242 | |
243 | <div class="row"> | |
244 | <div class="input-field col s12"> | |
5c514b0b KG |
245 | <h4>{% trans %}FAQ{% endtrans %}</h4> |
246 | ||
247 | <h5>{% trans %}What does « tagging rules » mean?{% endtrans %}</h5> | |
248 | <p class="help"> | |
249 | {% trans %} | |
4c07a83b | 250 | They are rules used by Wallabag to automatically tag new entries.<br />Each time a new entry is added, all the tagging rules will be used to add the tags you configured, thus saving you the trouble to manually classify your entries. |
5c514b0b KG |
251 | {% endtrans %} |
252 | </p> | |
253 | ||
254 | <h5>{% trans %}How do I use them?{% endtrans %}</h5> | |
255 | <p class="help"> | |
256 | {% trans %} | |
4c07a83b | 257 | Let assume you want to tag new entries as « <i>short reading</i> » when the reading time is inferior to 3 minutes.<br />In that case, you should put « readingTime <= 3 » in the <i>Rule</i> field and « <i>short reading</i> » in the <i>Tags</i> field.<br />Several tags can added simultaneously by separating them by a comma: « <i>short reading, must read</i> »<br />Complex rules can be written by using predefined operators: if « <i>readingTime >= 5 AND domainName = "github.com"</i> » then tag as « <i>long reading, github </i> » |
5c514b0b KG |
258 | {% endtrans %} |
259 | </p> | |
260 | ||
261 | <h5>{% trans %}Which variables and operators can I use to write rules?{% endtrans %}</h5> | |
e9fbd2d1 | 262 | <p class="help"> |
5c514b0b | 263 | {% trans %}The following variables and operators can be used to create tagging rules:{% endtrans %} |
e9fbd2d1 KG |
264 | |
265 | <table> | |
266 | <thead> | |
267 | <tr> | |
5c514b0b KG |
268 | <th>{% trans %}Variable{% endtrans %}</th> |
269 | <th>{% trans %}Meaning{% endtrans %}</th> | |
270 | <th>{% trans %}Operator{% endtrans %}</th> | |
271 | <th>{% trans %}Meaning{% endtrans %}</th> | |
e9fbd2d1 KG |
272 | </tr> |
273 | </thead> | |
274 | ||
275 | <tbody> | |
276 | <tr> | |
277 | <td>title</td> | |
278 | <td>{% trans %}Title of the entry{% endtrans %}</td> | |
5c514b0b KG |
279 | <td><=</td> |
280 | <td>{% trans %}Less than…{% endtrans %}</td> | |
e9fbd2d1 KG |
281 | </tr> |
282 | <tr> | |
283 | <td>url</td> | |
284 | <td>{% trans %}URL of the entry{% endtrans %}</td> | |
5c514b0b KG |
285 | <td><</td> |
286 | <td>{% trans %}Strictly less than…{% endtrans %}</td> | |
e9fbd2d1 KG |
287 | </tr> |
288 | <tr> | |
289 | <td>isArchived</td> | |
290 | <td>{% trans %}Whether the entry is archived or not{% endtrans %}</td> | |
5c514b0b KG |
291 | <td>=></td> |
292 | <td>{% trans %}Greater than…{% endtrans %}</td> | |
e9fbd2d1 KG |
293 | </tr> |
294 | <tr> | |
4c07a83b | 295 | <td>isStarred</td> |
e9fbd2d1 | 296 | <td>{% trans %}Whether the entry is starred or not{% endtrans %}</td> |
5c514b0b KG |
297 | <td>></td> |
298 | <td>{% trans %}Strictly greater than…{% endtrans %}</td> | |
e9fbd2d1 KG |
299 | </tr> |
300 | <tr> | |
301 | <td>content</td> | |
302 | <td>{% trans %}The entry's content{% endtrans %}</td> | |
5c514b0b KG |
303 | <td>=</td> |
304 | <td>{% trans %}Equal to…{% endtrans %}</td> | |
e9fbd2d1 KG |
305 | </tr> |
306 | <tr> | |
307 | <td>language</td> | |
308 | <td>{% trans %}The entry's language{% endtrans %}</td> | |
5c514b0b KG |
309 | <td>!=</td> |
310 | <td>{% trans %}Not equal to…{% endtrans %}</td> | |
e9fbd2d1 KG |
311 | </tr> |
312 | <tr> | |
313 | <td>mimetype</td> | |
314 | <td>{% trans %}The entry's mime-type{% endtrans %}</td> | |
5c514b0b KG |
315 | <td>OR</td> |
316 | <td>{% trans %}One rule or another{% endtrans %}</td> | |
e9fbd2d1 KG |
317 | </tr> |
318 | <tr> | |
319 | <td>readingTime</td> | |
320 | <td>{% trans %}The estimated entry's reading time, in minutes{% endtrans %}</td> | |
5c514b0b KG |
321 | <td>AND</td> |
322 | <td>{% trans %}One rule and another{% endtrans %}</td> | |
e9fbd2d1 KG |
323 | </tr> |
324 | <tr> | |
325 | <td>domainName</td> | |
326 | <td>{% trans %}The domain name of the entry{% endtrans %}</td> | |
aeff8aa7 KG |
327 | <td>matches</td> |
328 | <td> | |
329 | {% trans %} | |
4c07a83b | 330 | Tests that a <i>subject</i> is matches a <i>search</i> (case-insensitive).<br />Example: <code>title matches "football"</code> |
aeff8aa7 KG |
331 | {% endtrans %} |
332 | </td> | |
e9fbd2d1 KG |
333 | </tr> |
334 | </tbody> | |
335 | </table> | |
336 | </p> | |
337 | </div> | |
338 | </div> | |
f19f9f62 KG |
339 | </div> |
340 | ||
fcb1fba5 | 341 | {% if is_granted('ROLE_SUPER_ADMIN') %} |
c13eda46 | 342 | <div id="set6" class="col s12"> |
33fe61f9 | 343 | {{ form_start(form.new_user) }} |
53e12188 AD |
344 | {{ form_errors(form.new_user) }} |
345 | ||
346 | <div class="row"> | |
347 | <div class="input-field col s12"> | |
348 | {{ form_label(form.new_user.username) }} | |
349 | {{ form_errors(form.new_user.username) }} | |
350 | {{ form_widget(form.new_user.username) }} | |
351 | </div> | |
352 | </div> | |
353 | ||
354 | <div class="row"> | |
355 | <div class="input-field col s12"> | |
fcb1fba5 NL |
356 | {{ form_label(form.new_user.plainPassword.first) }} |
357 | {{ form_errors(form.new_user.plainPassword.first) }} | |
358 | {{ form_widget(form.new_user.plainPassword.first) }} | |
359 | </div> | |
360 | </div> | |
361 | ||
362 | <div class="row"> | |
363 | <div class="input-field col s12"> | |
364 | {{ form_label(form.new_user.plainPassword.second) }} | |
365 | {{ form_errors(form.new_user.plainPassword.second) }} | |
366 | {{ form_widget(form.new_user.plainPassword.second) }} | |
53e12188 AD |
367 | </div> |
368 | </div> | |
369 | ||
370 | <div class="row"> | |
371 | <div class="input-field col s12"> | |
372 | {{ form_label(form.new_user.email) }} | |
373 | {{ form_errors(form.new_user.email) }} | |
374 | {{ form_widget(form.new_user.email) }} | |
375 | </div> | |
376 | </div> | |
377 | ||
378 | <div class="hidden">{{ form_rest(form.new_user) }}</div> | |
379 | <button class="btn waves-effect waves-light" type="submit" name="action"> | |
43e6f47d | 380 | {% trans %}Add a user{% endtrans %} |
53e12188 AD |
381 | </button> |
382 | ||
383 | </form> | |
384 | </div> | |
fcb1fba5 | 385 | {% endif %} |
53e12188 AD |
386 | </div> |
387 | ||
388 | </div> | |
389 | </div> | |
390 | </div> | |
53e12188 | 391 | {% endblock %} |