diff options
Diffstat (limited to 'src/Wallabag/CoreBundle/Resources/views/themes/material')
12 files changed, 303 insertions, 129 deletions
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig index f896fe2d..d8e9694d 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig | |||
@@ -12,10 +12,11 @@ | |||
12 | <div class="div_tabs col s12"> | 12 | <div class="div_tabs col s12"> |
13 | <ul class="tabs"> | 13 | <ul class="tabs"> |
14 | <li class="tab col s12 m6 l3"><a class="active" href="#set1">{{ 'config.tab_menu.settings'|trans }}</a></li> | 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> | 15 | <li class="tab col s12 m6 l3"><a href="#set2">{{ 'config.tab_menu.feed'|trans }}</a></li> |
16 | <li class="tab col s12 m6 l3"><a href="#set3">{{ 'config.tab_menu.user_info'|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> | 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> | 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> | ||
19 | </ul> | 20 | </ul> |
20 | </div> | 21 | </div> |
21 | 22 | ||
@@ -111,8 +112,7 @@ | |||
111 | <img id="androidQrcode" class="hide-on-med-and-down" /> | 112 | <img id="androidQrcode" class="hide-on-med-and-down" /> |
112 | </div> | 113 | </div> |
113 | <script> | 114 | <script> |
114 | const imgBase64 = jrQrcode.getQrBase64('wallabag://{{ app.user.username }}@{{ wallabag_url }}'); | 115 | document.getElementById('androidQrcode').src = jrQrcode.getQrBase64('wallabag://{{ app.user.username }}@{{ wallabag_url }}'); |
115 | document.getElementById('androidQrcode').src = imgBase64; | ||
116 | </script> | 116 | </script> |
117 | </div> | 117 | </div> |
118 | 118 | ||
@@ -122,42 +122,43 @@ | |||
122 | </div> | 122 | </div> |
123 | 123 | ||
124 | <div id="set2" class="col s12"> | 124 | <div id="set2" class="col s12"> |
125 | {{ form_start(form.rss) }} | 125 | {{ form_start(form.feed) }} |
126 | {{ form_errors(form.rss) }} | 126 | {{ form_errors(form.feed) }} |
127 | 127 | ||
128 | <div class="row"> | 128 | <div class="row"> |
129 | <div class="input-field col s12"> | 129 | <div class="input-field col s12"> |
130 | {{ 'config.form_rss.description'|trans }} | 130 | {{ 'config.form_feed.description'|trans }} |
131 | </div> | 131 | </div> |
132 | </div> | 132 | </div> |
133 | 133 | ||
134 | <div class="row"> | 134 | <div class="row"> |
135 | <div class="col s12"> | 135 | <div class="col s12"> |
136 | <h6 class="grey-text">{{ 'config.form_rss.token_label'|trans }}</h6> | 136 | <h6 class="grey-text">{{ 'config.form_feed.token_label'|trans }}</h6> |
137 | <div> | 137 | <div> |
138 | {% if rss.token %} | 138 | {% if feed.token %} |
139 | {{ rss.token }} | 139 | {{ feed.token }} |
140 | {% else %} | 140 | {% else %} |
141 | <em>{{ 'config.form_rss.no_token'|trans }}</em> | 141 | <em>{{ 'config.form_feed.no_token'|trans }}</em> |
142 | {% endif %} | 142 | {% endif %} |
143 | – <a href="{{ path('generate_token') }}"> | 143 | |
144 | {% if rss.token %} | 144 | {% if feed.token %} |
145 | {{ 'config.form_rss.token_reset'|trans }} | 145 | – <a href="{{ path('generate_token') }}">{{ 'config.form_feed.token_reset'|trans }}</a> |
146 | – <a href="{{ path('revoke_token') }}">{{ 'config.form_feed.token_revoke'|trans }}</a> | ||
146 | {% else %} | 147 | {% else %} |
147 | {{ 'config.form_rss.token_create'|trans }} | 148 | – <a href="{{ path('generate_token') }}">{{ 'config.form_feed.token_create'|trans }}</a> |
148 | {% endif %}</a> | 149 | {% endif %} |
149 | </div> | 150 | </div> |
150 | </div> | 151 | </div> |
151 | </div> | 152 | </div> |
152 | {% if rss.token %} | 153 | {% if feed.token %} |
153 | <div class="row"> | 154 | <div class="row"> |
154 | <div class="col s12"> | 155 | <div class="col s12"> |
155 | <h6 class="grey-text">{{ 'config.form_rss.rss_links'|trans }}</h6> | 156 | <h6 class="grey-text">{{ 'config.form_feed.feed_links'|trans }}</h6> |
156 | <ul> | 157 | <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('unread_feed', {'username': feed.username, 'token': feed.token}) }}">{{ 'config.form_feed.feed_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('starred_feed', {'username': feed.username, 'token': feed.token}) }}">{{ 'config.form_feed.feed_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 | <li><a href="{{ path('archive_feed', {'username': feed.username, 'token': feed.token}) }}">{{ 'config.form_feed.feed_link.archive'|trans }}</a></li> |
160 | <li><a href="{{ path('all_rss', {'username': rss.username, 'token': rss.token}) }}">{{ 'config.form_rss.rss_link.all'|trans }}</a></li> | 161 | <li><a href="{{ path('all_feed', {'username': feed.username, 'token': feed.token}) }}">{{ 'config.form_feed.feed_link.all'|trans }}</a></li> |
161 | </ul> | 162 | </ul> |
162 | </div> | 163 | </div> |
163 | </div> | 164 | </div> |
@@ -165,14 +166,14 @@ | |||
165 | 166 | ||
166 | <div class="row"> | 167 | <div class="row"> |
167 | <div class="input-field col s12"> | 168 | <div class="input-field col s12"> |
168 | {{ form_label(form.rss.rss_limit) }} | 169 | {{ form_label(form.feed.feed_limit) }} |
169 | {{ form_errors(form.rss.rss_limit) }} | 170 | {{ form_errors(form.feed.feed_limit) }} |
170 | {{ form_widget(form.rss.rss_limit) }} | 171 | {{ form_widget(form.feed.feed_limit) }} |
171 | </div> | 172 | </div> |
172 | </div> | 173 | </div> |
173 | 174 | ||
174 | {{ form_widget(form.rss.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }} | 175 | {{ form_widget(form.feed.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }} |
175 | {{ form_rest(form.rss) }} | 176 | {{ form_rest(form.feed) }} |
176 | </form> | 177 | </form> |
177 | </div> | 178 | </div> |
178 | 179 | ||
@@ -181,6 +182,15 @@ | |||
181 | {{ form_errors(form.user) }} | 182 | {{ form_errors(form.user) }} |
182 | 183 | ||
183 | <div class="row"> | 184 | <div class="row"> |
185 | <div class="col s12"> | ||
186 | <h6 class="grey-text">{{ 'config.form_user.login_label'|trans }}</h6> | ||
187 | <div> | ||
188 | {{ app.user.username }} | ||
189 | </div> | ||
190 | </div> | ||
191 | </div> | ||
192 | |||
193 | <div class="row"> | ||
184 | <div class="input-field col s12"> | 194 | <div class="input-field col s12"> |
185 | {{ form_label(form.user.name) }} | 195 | {{ form_label(form.user.name) }} |
186 | {{ form_errors(form.user.name) }} | 196 | {{ form_errors(form.user.name) }} |
@@ -196,59 +206,42 @@ | |||
196 | </div> | 206 | </div> |
197 | </div> | 207 | </div> |
198 | 208 | ||
199 | {% if twofactor_auth %} | 209 | {{ form_widget(form.user.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }} |
200 | <div class="row"> | ||
201 | <div class="input-field col s11"> | ||
202 | {{ 'config.form_user.two_factor_description'|trans }} | ||
203 | |||
204 | <br /> | ||
205 | 210 | ||
206 | {{ form_widget(form.user.twoFactorAuthentication) }} | 211 | {% if twofactor_auth %} |
207 | {{ form_label(form.user.twoFactorAuthentication) }} | 212 | <br/> |
208 | {{ form_errors(form.user.twoFactorAuthentication) }} | 213 | <br/> |
209 | </div> | 214 | <div class="row"> |
210 | <div class="input-field col s1"> | 215 | <h5>{{ 'config.otp.page_title'|trans }}</h5> |
211 | <a href="#" class="tooltipped" data-position="left" data-delay="50" data-tooltip="{{ 'config.form_user.help_twoFactorAuthentication'|trans }}"> | 216 | |
212 | <i class="material-icons">live_help</i> | 217 | <p>{{ 'config.form_user.two_factor_description'|trans }}</p> |
213 | </a> | 218 | |
219 | <table> | ||
220 | <thead> | ||
221 | <tr> | ||
222 | <th>{{ 'config.form_user.two_factor.table_method'|trans }}</th> | ||
223 | <th>{{ 'config.form_user.two_factor.table_state'|trans }}</th> | ||
224 | <th>{{ 'config.form_user.two_factor.table_action'|trans }}</th> | ||
225 | </tr> | ||
226 | </thead> | ||
227 | |||
228 | <tbody> | ||
229 | <tr> | ||
230 | <td>{{ 'config.form_user.two_factor.emailTwoFactor_label'|trans }}</td> | ||
231 | <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> | ||
232 | <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> | ||
233 | </tr> | ||
234 | <tr> | ||
235 | <td>{{ 'config.form_user.two_factor.googleTwoFactor_label'|trans }}</td> | ||
236 | <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> | ||
237 | <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> | ||
238 | </tr> | ||
239 | </tbody> | ||
240 | </table> | ||
214 | </div> | 241 | </div> |
215 | </div> | ||
216 | {% endif %} | 242 | {% endif %} |
217 | |||
218 | {{ form_widget(form.user.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }} | ||
219 | {{ form_widget(form.user._token) }} | 243 | {{ form_widget(form.user._token) }} |
220 | </form> | 244 | </form> |
221 | |||
222 | <br /><hr /><br /> | ||
223 | |||
224 | <div class="row"> | ||
225 | <h5>{{ 'config.reset.title'|trans }}</h5> | ||
226 | <p>{{ 'config.reset.description'|trans }}</p> | ||
227 | <a href="{{ path('config_reset', { type: 'annotations'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red"> | ||
228 | {{ 'config.reset.annotations'|trans }} | ||
229 | </a> | ||
230 | <a href="{{ path('config_reset', { type: 'tags'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red"> | ||
231 | {{ 'config.reset.tags'|trans }} | ||
232 | </a> | ||
233 | <a href="{{ path('config_reset', { type: 'archived'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red"> | ||
234 | {{ 'config.reset.archived'|trans }} | ||
235 | </a> | ||
236 | <a href="{{ path('config_reset', { type: 'entries'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red"> | ||
237 | {{ 'config.reset.entries'|trans }} | ||
238 | </a> | ||
239 | </div> | ||
240 | |||
241 | {% if enabled_users > 1 %} | ||
242 | <br /><hr /><br /> | ||
243 | |||
244 | <div class="row"> | ||
245 | <h5>{{ 'config.form_user.delete.title'|trans }}</h5> | ||
246 | <p>{{ 'config.form_user.delete.description'|trans }}</p> | ||
247 | <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"> | ||
248 | {{ 'config.form_user.delete.button'|trans }} | ||
249 | </a> | ||
250 | </div> | ||
251 | {% endif %} | ||
252 | </div> | 245 | </div> |
253 | 246 | ||
254 | <div id="set4" class="col s12"> | 247 | <div id="set4" class="col s12"> |
@@ -314,28 +307,77 @@ | |||
314 | </div> | 307 | </div> |
315 | {% endif %} | 308 | {% endif %} |
316 | 309 | ||
317 | {{ form_start(form.new_tagging_rule) }} | 310 | <ul class="row"> |
318 | {{ form_errors(form.new_tagging_rule) }} | 311 | <li class="col l6 m6 s12"> |
319 | 312 | <div class="card"> | |
320 | <div class="row"> | 313 | <div class="card-content"> |
321 | <div class="input-field col s12"> | 314 | <span class="card-title">{{ 'config.form_rules.card.new_tagging_rule'|trans }}</span> |
322 | {{ form_label(form.new_tagging_rule.rule) }} | 315 | |
323 | {{ form_errors(form.new_tagging_rule.rule) }} | 316 | {{ form_start(form.new_tagging_rule) }} |
324 | {{ form_widget(form.new_tagging_rule.rule) }} | 317 | {{ form_errors(form.new_tagging_rule) }} |
318 | |||
319 | <div class="row"> | ||
320 | <div class="input-field col s12"> | ||
321 | {{ form_label(form.new_tagging_rule.rule) }} | ||
322 | {{ form_errors(form.new_tagging_rule.rule) }} | ||
323 | {{ form_widget(form.new_tagging_rule.rule) }} | ||
324 | </div> | ||
325 | </div> | ||
326 | |||
327 | <div class="row"> | ||
328 | <div class="input-field col s12"> | ||
329 | {{ form_label(form.new_tagging_rule.tags) }} | ||
330 | {{ form_errors(form.new_tagging_rule.tags) }} | ||
331 | {{ form_widget(form.new_tagging_rule.tags) }} | ||
332 | </div> | ||
333 | </div> | ||
334 | |||
335 | {{ form_widget(form.new_tagging_rule.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }} | ||
336 | {{ form_rest(form.new_tagging_rule) }} | ||
337 | </form> | ||
338 | </div> | ||
325 | </div> | 339 | </div> |
326 | </div> | 340 | </li> |
327 | 341 | <li class="col l6 m6 s12"> | |
328 | <div class="row"> | 342 | <div class="card z-depth-1"> |
329 | <div class="input-field col s12"> | 343 | <div class="card-content"> |
330 | {{ form_label(form.new_tagging_rule.tags) }} | 344 | <span class="card-title">{{ 'config.form_rules.card.import_tagging_rules'|trans }}</span> |
331 | {{ form_errors(form.new_tagging_rule.tags) }} | 345 | <p>{{ 'config.form_rules.card.import_tagging_rules_detail'|trans }}</p> |
332 | {{ form_widget(form.new_tagging_rule.tags) }} | 346 | {{ form_start(form.import_tagging_rule) }} |
347 | {{ form_errors(form.import_tagging_rule) }} | ||
348 | <div class="row"> | ||
349 | <div class="file-field input-field col s12"> | ||
350 | {{ form_errors(form.import_tagging_rule.file) }} | ||
351 | <div class="btn"> | ||
352 | <span>{{ form.import_tagging_rule.file.vars.label|trans }}</span> | ||
353 | {{ form_widget(form.import_tagging_rule.file) }} | ||
354 | </div> | ||
355 | <div class="file-path-wrapper"> | ||
356 | <input class="file-path validate" type="text"> | ||
357 | </div> | ||
358 | </div> | ||
359 | </div> | ||
360 | |||
361 | {{ form_widget(form.import_tagging_rule.import, { 'attr': {'class': 'btn waves-effect waves-light'} }) }} | ||
362 | |||
363 | {{ form_rest(form.import_tagging_rule) }} | ||
364 | </form> | ||
365 | </div> | ||
333 | </div> | 366 | </div> |
334 | </div> | 367 | </li> |
335 | 368 | {% if app.user.config.taggingRules is not empty %} | |
336 | {{ form_widget(form.new_tagging_rule.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }} | 369 | <li class="col l6 m6 s12"> |
337 | {{ form_rest(form.new_tagging_rule) }} | 370 | <div class="card z-depth-1"> |
338 | </form> | 371 | <div class="card-content"> |
372 | <span class="card-title">{{ 'config.form_rules.card.export_tagging_rules'|trans }}</span> | ||
373 | <p>{{ 'config.form_rules.card.export_tagging_rules_detail'|trans }}</p> | ||
374 | <br/> | ||
375 | <p><a href="{{ path('export_tagging_rule') }}" class="waves-effect waves-light btn">{{ 'config.form_rules.export'|trans }}</a></p> | ||
376 | </div> | ||
377 | </div> | ||
378 | </li> | ||
379 | {% endif %} | ||
380 | </ul> | ||
339 | 381 | ||
340 | <div class="row"> | 382 | <div class="row"> |
341 | <div class="input-field col s12"> | 383 | <div class="input-field col s12"> |
@@ -422,6 +464,37 @@ | |||
422 | </div> | 464 | </div> |
423 | </div> | 465 | </div> |
424 | </div> | 466 | </div> |
467 | |||
468 | <div id="set6" class="col s12"> | ||
469 | <div class="row"> | ||
470 | <h5>{{ 'config.reset.title'|trans }}</h5> | ||
471 | <p>{{ 'config.reset.description'|trans }}</p> | ||
472 | <a href="{{ path('config_reset', { type: 'annotations'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red"> | ||
473 | {{ 'config.reset.annotations'|trans }} | ||
474 | </a> | ||
475 | <a href="{{ path('config_reset', { type: 'tags'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red"> | ||
476 | {{ 'config.reset.tags'|trans }} | ||
477 | </a> | ||
478 | <a href="{{ path('config_reset', { type: 'archived'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red"> | ||
479 | {{ 'config.reset.archived'|trans }} | ||
480 | </a> | ||
481 | <a href="{{ path('config_reset', { type: 'entries'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red"> | ||
482 | {{ 'config.reset.entries'|trans }} | ||
483 | </a> | ||
484 | </div> | ||
485 | |||
486 | {% if enabled_users > 1 %} | ||
487 | <br /><hr /><br /> | ||
488 | |||
489 | <div class="row"> | ||
490 | <h5>{{ 'config.form_user.delete.title'|trans }}</h5> | ||
491 | <p>{{ 'config.form_user.delete.description'|trans }}</p> | ||
492 | <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"> | ||
493 | {{ 'config.form_user.delete.button'|trans }} | ||
494 | </a> | ||
495 | </div> | ||
496 | {% endif %} | ||
497 | </div> | ||
425 | </div> | 498 | </div> |
426 | 499 | ||
427 | </div> | 500 | </div> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/otp_app.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/otp_app.html.twig new file mode 100644 index 00000000..6f405d7f --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/otp_app.html.twig | |||
@@ -0,0 +1,63 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{{ 'config.page_title'|trans }} > {{ 'config.otp.page_title'|trans }}{% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | <div class="row"> | ||
7 | <div class="col s12"> | ||
8 | <div class="card-panel settings"> | ||
9 | <div class="row"> | ||
10 | <h5>{{ 'config.otp.page_title'|trans }}</h5> | ||
11 | |||
12 | <ol> | ||
13 | <li> | ||
14 | <p>{{ 'config.otp.app.two_factor_code_description_1'|trans }}</p> | ||
15 | <p>{{ 'config.otp.app.two_factor_code_description_2'|trans }}</p> | ||
16 | |||
17 | <p> | ||
18 | <img id="2faQrcode" class="hide-on-med-and-down" /> | ||
19 | <script> | ||
20 | document.getElementById('2faQrcode').src = jrQrcode.getQrBase64('{{ qr_code }}'); | ||
21 | </script> | ||
22 | </p> | ||
23 | </li> | ||
24 | <li> | ||
25 | <p>{{ 'config.otp.app.two_factor_code_description_3'|trans }}</p> | ||
26 | |||
27 | <p><strong>{{ backupCodes|join("\n")|nl2br }}</strong></p> | ||
28 | </li> | ||
29 | <li> | ||
30 | <p>{{ 'config.otp.app.two_factor_code_description_4'|trans }}</p> | ||
31 | |||
32 | {% for flashMessage in app.session.flashbag.get("two_factor") %} | ||
33 | <div class="card-panel red darken-1 black-text"> | ||
34 | {{ flashMessage|trans }} | ||
35 | </div> | ||
36 | {% endfor %} | ||
37 | |||
38 | <form class="form" action="{{ path("config_otp_app_check") }}" method="post"> | ||
39 | <div class="card-content"> | ||
40 | <div class="row"> | ||
41 | <div class="input-field col s12"> | ||
42 | <label for="_auth_code">{{ "auth_code"|trans({}, 'SchebTwoFactorBundle') }}</label> | ||
43 | <input id="_auth_code" type="text" autocomplete="off" name="_auth_code" /> | ||
44 | </div> | ||
45 | </div> | ||
46 | </div> | ||
47 | <div class="card-action"> | ||
48 | <a href="{{ path('config_otp_app_cancel') }}" class="waves-effect waves-light grey btn"> | ||
49 | {{ 'config.otp.app.cancel'|trans }} | ||
50 | </a> | ||
51 | <button class="btn waves-effect waves-light" type="submit" name="send"> | ||
52 | {{ 'config.otp.app.enable'|trans }} | ||
53 | <i class="material-icons right">send</i> | ||
54 | </button> | ||
55 | </div> | ||
56 | </form> | ||
57 | </li> | ||
58 | </ol> | ||
59 | </div> | ||
60 | </div> | ||
61 | </div> | ||
62 | </div> | ||
63 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/Card/_content.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/Card/_content.html.twig index 1f3cd1a7..1102a0bd 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/Card/_content.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/Card/_content.html.twig | |||
@@ -8,8 +8,11 @@ | |||
8 | 8 | ||
9 | <div class="{{ subClass|default('original grey-text') }}"> | 9 | <div class="{{ subClass|default('original grey-text') }}"> |
10 | <a href="{{ entry.url|e }}" target="_blank" title="{{ entry.domainName|removeWww }}" class="tool grey-text">{{ entry.domainName|removeWww }}</a> | 10 | <a href="{{ entry.url|e }}" target="_blank" title="{{ entry.domainName|removeWww }}" class="tool grey-text">{{ entry.domainName|removeWww }}</a> |
11 | {% if withTags is defined %} | 11 | {% if withMetadata is defined %} |
12 | {% include "@WallabagCore/themes/material/Entry/_tags.html.twig" with {'tags': entry.tags | slice(0, 3), 'entryId': entry.id, 'listClass': ' hide-on-med-and-down'} only %} | 12 | {% include "@WallabagCore/themes/material/Entry/_tags.html.twig" with {'tags': entry.tags | slice(0, 3), 'entryId': entry.id, 'listClass': ' hide-on-med-and-down'} only %} |
13 | <div class="reading-time grey-text"> | ||
14 | <div class="card-reading-time">{% include "@WallabagCore/themes/material/Entry/_reading_time.html.twig" with {'entry': entry} only %}</div> | ||
15 | </div> | ||
13 | {% endif %} | 16 | {% endif %} |
14 | </div> | 17 | </div> |
15 | </div> | 18 | </div> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_actions.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_actions.html.twig index 827f09d9..be764e10 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_actions.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_actions.html.twig | |||
@@ -1,9 +1,11 @@ | |||
1 | <div class="card-action"> | 1 | <div class="card-action"> |
2 | <span class="reading-time grey-text"> | 2 | <div class="reading-time grey-text"> |
3 | {% include "@WallabagCore/themes/material/Entry/_reading_time.html.twig" with {'entry': entry} only %} | 3 | <div class="card-reading-time">{% include "@WallabagCore/themes/material/Entry/_reading_time.html.twig" with {'entry': entry} only %}</div> |
4 | <i class="material-icons hide-on-med-and-down" title="{{ 'entry.view.created_at'|trans }}">today</i> | 4 | <div class="card-created-at"> |
5 | <span class="hide-on-med-and-down"> {{ entry.createdAt|date('Y-m-d') }}</span> | 5 | <i class="material-icons" title="{{ 'entry.view.created_at'|trans }}">today</i> |
6 | </span> | 6 | <span> {{ entry.createdAt|date('Y-m-d') }}</span> |
7 | </div> | ||
8 | </div> | ||
7 | 9 | ||
8 | <ul class="tools right"> | 10 | <ul class="tools right"> |
9 | <li> | 11 | <li> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_list.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_list.html.twig index 1c00f2fa..6a095035 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_list.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_list.html.twig | |||
@@ -5,7 +5,7 @@ | |||
5 | <span class="preview{{ previewClassModifier }}" style="background-image: url({{ entry.previewPicture | default(asset('wallassets/themes/_global/img/logo-square.svg')) }})"></span> | 5 | <span class="preview{{ previewClassModifier }}" style="background-image: url({{ entry.previewPicture | default(asset('wallassets/themes/_global/img/logo-square.svg')) }})"></span> |
6 | </a> | 6 | </a> |
7 | </div> | 7 | </div> |
8 | {% include "@WallabagCore/themes/material/Entry/Card/_content.html.twig" with {'entry': entry, 'withTags': true, 'subClass': 'metadata'} only %} | 8 | {% include "@WallabagCore/themes/material/Entry/Card/_content.html.twig" with {'entry': entry, 'withMetadata': true, 'subClass': 'metadata'} only %} |
9 | <ul class="tools-list hide-on-small-only"> | 9 | <ul class="tools-list hide-on-small-only"> |
10 | <li> | 10 | <li> |
11 | <a title="{{ 'entry.list.toogle_as_read'|trans }}" class="tool grey-text" href="{{ path('archive_entry', { 'id': entry.id }) }}"><i class="material-icons">{% if entry.isArchived == 0 %}done{% else %}unarchive{% endif %}</i></a> | 11 | <a title="{{ 'entry.list.toogle_as_read'|trans }}" class="tool grey-text" href="{{ path('archive_entry', { 'id': entry.id }) }}"><i class="material-icons">{% if entry.isArchived == 0 %}done{% else %}unarchive{% endif %}</i></a> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_reading_time.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_reading_time.html.twig index 6ba18768..b7167e95 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_reading_time.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_reading_time.html.twig | |||
@@ -1,4 +1,4 @@ | |||
1 | {% set readingTime = entry.readingTime / app.user.config.readingSpeed %} | 1 | {% set readingTime = entry.readingTime / app.user.config.readingSpeed * 200 %} |
2 | <i class="material-icons">timer</i> | 2 | <i class="material-icons">timer</i> |
3 | {% if readingTime > 0 %} | 3 | {% if readingTime > 0 %} |
4 | <span>{{ 'entry.list.reading_time_minutes_short'|trans({'%readingTime%': readingTime|round}) }}</span> | 4 | <span>{{ 'entry.list.reading_time_minutes_short'|trans({'%readingTime%': readingTime|round}) }}</span> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig index a137f3c3..3906e1e0 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig | |||
@@ -2,8 +2,8 @@ | |||
2 | 2 | ||
3 | {% block head %} | 3 | {% block head %} |
4 | {{ parent() }} | 4 | {{ parent() }} |
5 | {% if tag is defined and app.user.config.rssToken %} | 5 | {% if tag is defined and app.user.config.feedToken %} |
6 | <link rel="alternate" type="application/rss+xml" href="{{ path('tag_rss', {'username': app.user.username, 'token': app.user.config.rssToken, 'slug': tag.slug}) }}" /> | 6 | <link rel="alternate" type="application/atom+xml" href="{{ path('tag_feed', {'username': app.user.username, 'token': app.user.config.feedToken, 'slug': tag.slug}) }}" /> |
7 | {% endif %} | 7 | {% endif %} |
8 | {% endblock %} | 8 | {% endblock %} |
9 | 9 | ||
@@ -21,12 +21,15 @@ | |||
21 | {% block content %} | 21 | {% block content %} |
22 | {% set listMode = app.user.config.listMode %} | 22 | {% set listMode = app.user.config.listMode %} |
23 | {% set currentRoute = app.request.attributes.get('_route') %} | 23 | {% set currentRoute = app.request.attributes.get('_route') %} |
24 | {% if currentRoute == 'homepage' %} | ||
25 | {% set currentRoute = 'unread' %} | ||
26 | {% endif %} | ||
24 | <div class="results"> | 27 | <div class="results"> |
25 | <div class="nb-results"> | 28 | <div class="nb-results"> |
26 | {{ 'entry.list.number_on_the_page'|transchoice(entries.count) }} | 29 | {{ 'entry.list.number_on_the_page'|transchoice(entries.count) }} |
27 | <a href="{{ path('switch_view_mode') }}"><i class="material-icons">{% if listMode == 0 %}view_list{% else %}view_module{% endif %}</i></a> | 30 | <a href="{{ path('switch_view_mode') }}"><i class="material-icons">{% if listMode == 0 %}view_list{% else %}view_module{% endif %}</i></a> |
28 | {% if app.user.config.rssToken %} | 31 | {% if app.user.config.feedToken %} |
29 | {% include "@WallabagCore/themes/common/Entry/_rss_link.html.twig" %} | 32 | {% include "@WallabagCore/themes/common/Entry/_feed_link.html.twig" %} |
30 | {% endif %} | 33 | {% endif %} |
31 | </div> | 34 | </div> |
32 | {% if entries.getNbPages > 1 %} | 35 | {% if entries.getNbPages > 1 %} |
@@ -60,16 +63,13 @@ | |||
60 | {% if tag is defined %} | 63 | {% if tag is defined %} |
61 | {% set currentTag = tag.slug %} | 64 | {% set currentTag = tag.slug %} |
62 | {% endif %} | 65 | {% endif %} |
63 | {% if currentRoute == 'homepage' %} | ||
64 | {% set currentRoute = 'unread' %} | ||
65 | {% endif %} | ||
66 | <h4 class="center">{{ 'entry.list.export_title'|trans }}</h4> | 66 | <h4 class="center">{{ 'entry.list.export_title'|trans }}</h4> |
67 | <ul> | 67 | <ul> |
68 | {% if craue_setting('export_epub') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'epub', 'tag' : currentTag }) }}">EPUB</a></li>{% endif %} | 68 | {% if craue_setting('export_epub') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'epub', 'tag' : currentTag }) }}">EPUB</a></li>{% endif %} |
69 | {% if craue_setting('export_mobi') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'mobi', 'tag' : currentTag }) }}">MOBI</a></li>{% endif %} | 69 | {% if craue_setting('export_mobi') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'mobi', 'tag' : currentTag }) }}">MOBI</a></li>{% endif %} |
70 | {% if craue_setting('export_pdf') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'pdf', 'tag' : currentTag }) }}">PDF</a></li>{% endif %} | 70 | {% if craue_setting('export_pdf') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'pdf', 'tag' : currentTag }) }}">PDF</a></li>{% endif %} |
71 | {% if craue_setting('export_csv') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'json', 'tag' : currentTag }) }}">JSON</a></li>{% endif %} | 71 | {% if craue_setting('export_json') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'json', 'tag' : currentTag }) }}">JSON</a></li>{% endif %} |
72 | {% if craue_setting('export_json') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'csv', 'tag' : currentTag }) }}">CSV</a></li>{% endif %} | 72 | {% if craue_setting('export_csv') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'csv', 'tag' : currentTag }) }}">CSV</a></li>{% endif %} |
73 | {% if craue_setting('export_txt') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'txt', 'tag' : currentTag }) }}">TXT</a></li>{% endif %} | 73 | {% if craue_setting('export_txt') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'txt', 'tag' : currentTag }) }}">TXT</a></li>{% endif %} |
74 | {% if craue_setting('export_xml') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'xml', 'tag' : currentTag }) }}">XML</a></li>{% endif %} | 74 | {% if craue_setting('export_xml') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'xml', 'tag' : currentTag }) }}">XML</a></li>{% endif %} |
75 | </ul> | 75 | </ul> |
@@ -83,6 +83,12 @@ | |||
83 | <h4 class="center">{{ 'entry.filters.title'|trans }}</h4> | 83 | <h4 class="center">{{ 'entry.filters.title'|trans }}</h4> |
84 | 84 | ||
85 | <div class="row"> | 85 | <div class="row"> |
86 | {% if currentRoute != 'untagged' and nbEntriesUntagged != 0 %} | ||
87 | <div class="col s12 center-align"> | ||
88 | <a href="{{ path('untagged') }}">{{ 'tag.list.see_untagged_entries'|trans }} ({{nbEntriesUntagged}})</a> | ||
89 | </div> | ||
90 | {% endif %} | ||
91 | |||
86 | <div class="col s12"> | 92 | <div class="col s12"> |
87 | <label>{{ 'entry.filters.status_label'|trans }}</label> | 93 | <label>{{ 'entry.filters.status_label'|trans }}</label> |
88 | </div> | 94 | </div> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig index c6c19de6..e23fa0e1 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig | |||
@@ -8,7 +8,7 @@ | |||
8 | <div class="progress"> | 8 | <div class="progress"> |
9 | <div class="determinate"></div> | 9 | <div class="determinate"></div> |
10 | </div> | 10 | </div> |
11 | <nav class="hide-on-large-only"> | 11 | <nav class="hide-on-large-only js-entry-nav-top"> |
12 | <div class="nav-panel-item cyan darken-1"> | 12 | <div class="nav-panel-item cyan darken-1"> |
13 | <ul> | 13 | <ul> |
14 | <li> | 14 | <li> |
@@ -127,7 +127,7 @@ | |||
127 | {% endif %} | 127 | {% endif %} |
128 | {% if craue_setting('share_twitter') %} | 128 | {% if craue_setting('share_twitter') %} |
129 | <li> | 129 | <li> |
130 | <a href="https://twitter.com/home?status={{entry.title|striptags|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" rel="noopener" class="tool icon-twitter" title="twitter"> | 130 | <a href="https://twitter.com/share?text={{entry.title|striptags|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" rel="noopener" class="tool icon-twitter" title="twitter"> |
131 | <span>twitter</span> | 131 | <span>twitter</span> |
132 | </a> | 132 | </a> |
133 | </li> | 133 | </li> |
@@ -209,7 +209,7 @@ | |||
209 | </li> | 209 | </li> |
210 | 210 | ||
211 | <li class="bold"> | 211 | <li class="bold"> |
212 | <a class="waves-effect collapsible-header" href="mailto:hello@wallabag.org?subject=Wrong%20display%20in%20wallabag&body={{ entry.url|url_encode }}" title="{{ 'entry.view.left_menu.problem.description'|trans }}"> | 212 | <a class="waves-effect collapsible-header" href="mailto:siteconfig@wallabag.org?subject=Wrong%20display%20in%20wallabag&body={{ entry.url|url_encode }}" title="{{ 'entry.view.left_menu.problem.description'|trans }}"> |
213 | <i class="material-icons small">error</i> | 213 | <i class="material-icons small">error</i> |
214 | <span>{{ 'entry.view.left_menu.problem.label'|trans }}</span> | 214 | <span>{{ 'entry.view.left_menu.problem.label'|trans }}</span> |
215 | </a> | 215 | </a> |
@@ -223,7 +223,7 @@ | |||
223 | {% block content %} | 223 | {% block content %} |
224 | <div id="article"> | 224 | <div id="article"> |
225 | <header class="mbm"> | 225 | <header class="mbm"> |
226 | <h1>{{ entry.title|striptags|default('entry.default_title'|trans)|raw }} <a href="{{ path('edit', { 'id': entry.id }) }}" title="{{ 'entry.view.edit_title'|trans }}">✎</a></h1> | 226 | <h1><span{% if entry.language is defined and entry.language is not null %} lang="{{ entry.getHTMLLanguage() }}"{% endif %}>{{ entry.title|striptags|default('entry.default_title'|trans)|raw }}</span> <a href="{{ path('edit', { 'id': entry.id }) }}" title="{{ 'entry.view.edit_title'|trans }}">✎</a></h1> |
227 | </header> | 227 | </header> |
228 | <aside> | 228 | <aside> |
229 | <div class="tools"> | 229 | <div class="tools"> |
@@ -250,13 +250,13 @@ | |||
250 | </li> | 250 | </li> |
251 | {% endif %} | 251 | {% endif %} |
252 | <li> | 252 | <li> |
253 | <i class="material-icons link">link</i> | 253 | <i class="material-icons">link</i> |
254 | <a href="{{ entry.url|e }}" target="_blank" rel="noopener" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|striptags }}" class="tool"> | 254 | <a href="{{ entry.url|e }}" target="_blank" rel="noopener" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|striptags }}" class="tool"> |
255 | {{ entry.domainName|removeWww }} | 255 | {{ entry.domainName|removeWww }} |
256 | </a> | 256 | </a> |
257 | </li> | 257 | </li> |
258 | <li> | 258 | <li> |
259 | <i class="material-icons link">comment</i> | 259 | <i class="material-icons">comment</i> |
260 | {{ 'entry.view.annotations_on_the_entry'|transchoice(entry.annotations | length) }} | 260 | {{ 'entry.view.annotations_on_the_entry'|transchoice(entry.annotations | length) }} |
261 | </li> | 261 | </li> |
262 | {% if entry.originUrl is not empty %} | 262 | {% if entry.originUrl is not empty %} |
@@ -276,12 +276,12 @@ | |||
276 | </div> | 276 | </div> |
277 | 277 | ||
278 | </aside> | 278 | </aside> |
279 | <article> | 279 | <article{% if entry.language is defined and entry.language is not null %} lang="{{ entry.getHTMLLanguage() }}"{% endif %}> |
280 | {{ entry.content | raw }} | 280 | {{ entry.content | raw }} |
281 | </article> | 281 | </article> |
282 | 282 | ||
283 | <div class="fixed-action-btn horizontal click-to-toggle hide-on-large-only"> | 283 | <div class="fixed-action-btn js-fixed-action-btn horizontal click-to-toggle hide-on-large-only"> |
284 | <a class="btn-floating btn-large"> | 284 | <a class="btn-floating btn-large" data-toggle="actions"> |
285 | <i class="material-icons">menu</i> | 285 | <i class="material-icons">menu</i> |
286 | </a> | 286 | </a> |
287 | <ul> | 287 | <ul> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/new_form.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/new_form.html.twig index e0d5e794..4cf81167 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/new_form.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/new_form.html.twig | |||
@@ -2,14 +2,14 @@ | |||
2 | {% if form_errors(form) %} | 2 | {% if form_errors(form) %} |
3 | <span class="black-text">{{ form_errors(form) }}</span> | 3 | <span class="black-text">{{ form_errors(form) }}</span> |
4 | {% endif %} | 4 | {% endif %} |
5 | <button type="submit" class="nav-form-button"><i class="material-icons add">add</i></button> | 5 | <button type="submit" class="nav-form-button" aria-label="add"><i class="material-icons add" aria-hidden="true"></i></button> |
6 | 6 | ||
7 | {% if form_errors(form.url) %} | 7 | {% if form_errors(form.url) %} |
8 | <span class="black-text">{{ form_errors(form.url) }}</span> | 8 | <span class="black-text">{{ form_errors(form.url) }}</span> |
9 | {% endif %} | 9 | {% endif %} |
10 | 10 | ||
11 | {{ form_widget(form.url, { 'attr': {'autocomplete': 'off', 'placeholder': 'entry.new.placeholder'} }) }} | 11 | {{ form_widget(form.url, { 'attr': {'autocomplete': 'off', 'placeholder': 'entry.new.placeholder'} }) }} |
12 | <i class="material-icons close">clear</i> | 12 | <i class="material-icons close" aria-label="clear" role="button"></i> |
13 | 13 | ||
14 | {{ form_rest(form) }} | 14 | {{ form_rest(form) }} |
15 | </form> | 15 | </form> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/search_form.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/search_form.html.twig index ba1b3aac..0ae8b0b3 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/search_form.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/search_form.html.twig | |||
@@ -2,7 +2,7 @@ | |||
2 | {% if form_errors(form) %} | 2 | {% if form_errors(form) %} |
3 | <span class="black-text">{{ form_errors(form) }}</span> | 3 | <span class="black-text">{{ form_errors(form) }}</span> |
4 | {% endif %} | 4 | {% endif %} |
5 | <button type="submit" class="nav-form-button"><i class="material-icons search">search</i></button> | 5 | <button type="submit" class="nav-form-button" aria-label="search"><i class="material-icons search" aria-hidden="true"></i></button> |
6 | 6 | ||
7 | {% if form_errors(form.term) %} | 7 | {% if form_errors(form.term) %} |
8 | <span class="black-text">{{ form_errors(form.term) }}</span> | 8 | <span class="black-text">{{ form_errors(form.term) }}</span> |
@@ -11,7 +11,7 @@ | |||
11 | <input type="hidden" name="currentRoute" value="{{ currentRoute }}" /> | 11 | <input type="hidden" name="currentRoute" value="{{ currentRoute }}" /> |
12 | 12 | ||
13 | {{ form_widget(form.term, { 'attr': {'autocomplete': 'off', 'placeholder': 'entry.search.placeholder'} }) }} | 13 | {{ form_widget(form.term, { 'attr': {'autocomplete': 'off', 'placeholder': 'entry.search.placeholder'} }) }} |
14 | <i class="material-icons close">clear</i> | 14 | <i class="material-icons close" aria-label="clear" role="button"></i> |
15 | 15 | ||
16 | {{ form_rest(form) }} | 16 | {{ form_rest(form) }} |
17 | </form> | 17 | </form> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Tag/tags.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Tag/tags.html.twig index c15b5146..0a3475ef 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Tag/tags.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Tag/tags.html.twig | |||
@@ -13,9 +13,20 @@ | |||
13 | <ul class="card-tag-labels"> | 13 | <ul class="card-tag-labels"> |
14 | {% for tag in tags %} | 14 | {% for tag in tags %} |
15 | <li title="{{tag.label}} ({{ tag.nbEntries }})" id="tag-{{ tag.id }}"> | 15 | <li title="{{tag.label}} ({{ tag.nbEntries }})" id="tag-{{ tag.id }}"> |
16 | <a href="{{ path('tag_entries', {'slug': tag.slug}) }}" class="card-tag-link">{{tag.label}} ({{ tag.nbEntries }})</a> | 16 | <a href="{{ path('tag_entries', {'slug': tag.slug}) }}" class="card-tag-link" data-handle="tag-link"> |
17 | {% if app.user.config.rssToken %} | 17 | {{ tag.label }} ({{ tag.nbEntries }}) |
18 | <a rel="alternate" type="application/rss+xml" href="{{ path('tag_rss', {'username': app.user.username, 'token': app.user.config.rssToken, 'slug': tag.slug}) }}" class="card-tag-rss"><i class="material-icons">rss_feed</i></a> | 18 | </a> |
19 | {% if renameForms is defined and renameForms[tag.id] is defined %} | ||
20 | <form class="card-tag-form hidden" data-handle="tag-rename-form" action="{{ path('tag_rename', {'slug': tag.slug})}}" method="POST"> | ||
21 | {{ form_widget(renameForms[tag.id].label, {'attr': {'value': tag.label}}) }} | ||
22 | {{ form_rest(renameForms[tag.id]) }} | ||
23 | </form> | ||
24 | <a class="card-tag-rename" data-handler="tag-rename" href="javascript:void(0);"> | ||
25 | <i class="material-icons">mode_edit</i> | ||
26 | </a> | ||
27 | {% endif %} | ||
28 | {% if app.user.config.feedToken %} | ||
29 | <a rel="alternate" type="application/atom+xml" href="{{ path('tag_feed', {'username': app.user.username, 'token': app.user.config.feedToken, 'slug': tag.slug}) }}" class="card-tag-rss"><i class="material-icons">rss_feed</i></a> | ||
19 | {% endif %} | 30 | {% endif %} |
20 | </li> | 31 | </li> |
21 | {% endfor %} | 32 | {% endfor %} |
@@ -23,6 +34,10 @@ | |||
23 | </div> | 34 | </div> |
24 | 35 | ||
25 | <div> | 36 | <div> |
26 | <a href="{{ path('untagged') }}">{{ 'tag.list.see_untagged_entries'|trans }}</a> | 37 | {% if nbEntriesUntagged == 0 %} |
38 | {{ 'tag.list.no_untagged_entries'|trans }} | ||
39 | {% else %} | ||
40 | <a href="{{ path('untagged') }}">{{ 'tag.list.see_untagged_entries'|trans }} ({{nbEntriesUntagged}})</a> | ||
41 | {% endif %} | ||
27 | </div> | 42 | </div> |
28 | {% endblock %} | 43 | {% endblock %} |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig index 052a8c01..c51d07fc 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig | |||
@@ -46,6 +46,8 @@ | |||
46 | {% set activeRoute = 'starred' %} | 46 | {% set activeRoute = 'starred' %} |
47 | {% elseif currentRoute == 'unread' or currentRoute == 'homepage' or currentRouteFromQueryParams == 'unread' %} | 47 | {% elseif currentRoute == 'unread' or currentRoute == 'homepage' or currentRouteFromQueryParams == 'unread' %} |
48 | {% set activeRoute = 'unread' %} | 48 | {% set activeRoute = 'unread' %} |
49 | {% elseif currentRoute == 'untagged' %} | ||
50 | {% set activeRoute = 'untagged' %} | ||
49 | {% endif %} | 51 | {% endif %} |
50 | 52 | ||
51 | <li class="bold {% if activeRoute == 'unread' %}active{% endif %}"> | 53 | <li class="bold {% if activeRoute == 'unread' %}active{% endif %}"> |
@@ -89,6 +91,9 @@ | |||
89 | <li class="bold {% if currentRoute == 'howto' %}active{% endif %}"> | 91 | <li class="bold {% if currentRoute == 'howto' %}active{% endif %}"> |
90 | <a class="waves-effect" href="{{ path('howto') }}">{{ 'menu.left.howto'|trans }}</a> | 92 | <a class="waves-effect" href="{{ path('howto') }}">{{ 'menu.left.howto'|trans }}</a> |
91 | </li> | 93 | </li> |
94 | <li class="bold {% if currentRoute == 'quickstart' %}active{% endif %}"> | ||
95 | <a class="waves-effect" href="{{ path('quickstart') }}">{{ 'menu.left.quickstart'|trans }}</a> | ||
96 | </li> | ||
92 | <li class="bold"> | 97 | <li class="bold"> |
93 | <a class="waves-effect icon icon-power" href="{{ path('fos_user_security_logout') }}">{{ 'menu.left.logout'|trans }}</a> | 98 | <a class="waves-effect icon icon-power" href="{{ path('fos_user_security_logout') }}">{{ 'menu.left.logout'|trans }}</a> |
94 | </li> | 99 | </li> |
@@ -113,6 +118,13 @@ | |||
113 | <i class="material-icons">search</i> | 118 | <i class="material-icons">search</i> |
114 | </a> | 119 | </a> |
115 | </li> | 120 | </li> |
121 | {% if activeRoute %} | ||
122 | <li id="button_random"> | ||
123 | <a class="waves-effect tooltipped js-random-action" data-position="bottom" data-delay="50" data-tooltip="{{ 'menu.top.random_entry'|trans }}" href="{{ path('random_entry', { 'type': activeRoute }) }}"> | ||
124 | <i class="material-icons">casino</i> | ||
125 | </a> | ||
126 | </li> | ||
127 | {% endif %} | ||
116 | <li id="button_filters"> | 128 | <li id="button_filters"> |
117 | <a class="nav-panel-menu button-collapse-right tooltipped js-filters-action" data-position="bottom" data-delay="50" data-tooltip="{{ 'menu.top.filter_entries'|trans }}" href="#" data-activates="filters"> | 129 | <a class="nav-panel-menu button-collapse-right tooltipped js-filters-action" data-position="bottom" data-delay="50" data-tooltip="{{ 'menu.top.filter_entries'|trans }}" href="#" data-activates="filters"> |
118 | <i class="material-icons">filter_list</i> | 130 | <i class="material-icons">filter_list</i> |
@@ -125,7 +137,7 @@ | |||
125 | </li> | 137 | </li> |
126 | </ul> | 138 | </ul> |
127 | </div> | 139 | </div> |
128 | {{ render(controller("WallabagCoreBundle:Entry:searchForm", {'currentRoute': app.request.attributes.get('_route')})) }} | 140 | {{ render(controller("WallabagCoreBundle:Entry:searchForm", {'currentRoute': currentRoute})) }} |
129 | {{ render(controller("WallabagCoreBundle:Entry:addEntryForm")) }} | 141 | {{ render(controller("WallabagCoreBundle:Entry:addEntryForm")) }} |
130 | </div> | 142 | </div> |
131 | </nav> | 143 | </nav> |