]>
Commit | Line | Data |
---|---|---|
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | |
2 | ||
3 | {% block title %} | |
4 | {% set currentRoute = app.request.attributes.get('_route') %} | |
5 | ||
6 | {% if currentRoute == 'starred' %} | |
7 | {% trans %}starred{% endtrans %} | |
8 | {% elseif currentRoute == 'archive' %} | |
9 | {% trans %}archive{% endtrans %} | |
10 | {% elseif currentRoute == 'all' %} | |
11 | {% trans %}Filtered{% endtrans %} | |
12 | {% else %} | |
13 | {% trans %}unread{% endtrans %} | |
14 | {% endif %} | |
15 | ||
16 | {% endblock %} | |
17 | ||
18 | {% block content %} | |
19 | {% block pager %} | |
20 | <div class="results clearfix"> | |
21 | <div class="nb-results left">{% transchoice entries.count %}{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.{% endtranschoice %}</div> | |
22 | <ul class="pagination right"> | |
23 | {% for p in range(1, entries.nbPages) if entries.nbPages > 1 %} | |
24 | <li class="{{ currentPage == p ? 'active':'waves-effect'}}"> | |
25 | <a href="{{ path(app.request.attributes.get('_route'), app.request.query.all|merge({'page': p})) }}">{{ p }}</a> | |
26 | </li> | |
27 | {% endfor %} | |
28 | </ul> | |
29 | </div> | |
30 | {% endblock %} | |
31 | <br /> | |
32 | <ul class="row data"> | |
33 | {% for entry in entries %} | |
34 | <li id="entry-{{ entry.id|e }}" class="col l4 m6 s12"> | |
35 | <div class="card"> | |
36 | ||
37 | <div class="card-body"> | |
38 | {% if not entry.previewPicture is null %} | |
39 | <div class="card-image waves-effect waves-block waves-light"> | |
40 | <div class="preview activator" style="background-image: url({{ entry.previewPicture }})"></div> | |
41 | </div> | |
42 | {% endif %} | |
43 | ||
44 | <div class="card-content"> | |
45 | {% if not entry.previewPicture is null %} | |
46 | <i class="card-title grey-text text-darken-4 activator mdi-navigation-more-vert right"></i> | |
47 | {% endif %} | |
48 | ||
49 | <span class="card-title"><a href="{{ path('view', { 'id': entry.id }) }}">{{ entry.title|striptags|slice(0, 42)|raw }}</a></span> | |
50 | ||
51 | <div class="estimatedTime grey-text"> | |
52 | <span class="tool reading-time"> | |
53 | {% set readingTime = entry.readingTime / app.user.config.readingSpeed %} | |
54 | {% if readingTime > 0 %} | |
55 | {% trans with {'%readingTime%': readingTime } %}estimated reading time: %readingTime% min{% endtrans %} | |
56 | {% else %} | |
57 | {% trans with {'%inferior%': '<small class="inferieur"><</small>'} %}estimated reading time: %inferior% 1 min{% endtrans %} | |
58 | {% endif %} | |
59 | </span> | |
60 | </div> | |
61 | ||
62 | {% if entry.previewPicture is null %} | |
63 | <p>{{ entry.content|striptags|slice(0, 300)|raw }}…</p> | |
64 | {% endif %} | |
65 | </div> | |
66 | </div> | |
67 | ||
68 | {% if not entry.previewPicture is null %} | |
69 | <div class="card-reveal"> | |
70 | <i class="card-title grey-text text-darken-4 mdi-card-close right"></i> | |
71 | <span class="card-title"><a href="{{ path('view', { 'id': entry.id }) }}">{{ entry.title|raw }}</a></span> | |
72 | ||
73 | <div class="estimatedTime grey-text"> | |
74 | <span class="tool reading-time"> | |
75 | {% trans %}estimated reading time{% endtrans %}: | |
76 | {% if entry.readingTime > 0 %}{{ entry.readingTime }}{% else %}<small class="inferieur"><</small> 1{% endif %} min | |
77 | </span> | |
78 | </div> | |
79 | ||
80 | <p>{{ entry.content|striptags|slice(0, 300)|raw }}…</p> | |
81 | </div> | |
82 | {% endif %} | |
83 | ||
84 | <div class="card-action"> | |
85 | <span class="bold"><a href="{{ entry.url|e }}" target="_blank" title="{% trans %}original{% endtrans %}: {{ entry.title|e }} - {{ entry.domainName|removeWww }}" class="tool original grey-text"><span>{{ entry.domainName|removeWww|truncate(18) }}</span></a></bold> | |
86 | ||
87 | <ul class="tools links right"> | |
88 | <li> | |
89 | <a title="{% trans %}Toggle mark as read{% endtrans %}" class="tool grey-text {% if entry.isArchived == 0 %}mdi-action-done{% else %}mdi-content-redo{% endif %}" href="{{ path('archive_entry', { 'id': entry.id }) }}"></a> | |
90 | <a title="{% trans %}Toggle favorite{% endtrans %}" class="tool grey-text {% if entry.isStarred == 0 %}mdi-action-favorite-outline{% else %}mdi-action-favorite{% endif %}" href="{{ path('star_entry', { 'id': entry.id }) }}"></a> | |
91 | <a title="{% trans %}Delete{% endtrans %}" class="tool grey-text delete mdi-action-delete " href="{{ path('delete_entry', { 'id': entry.id }) }}"></a> | |
92 | </li> | |
93 | </ul> | |
94 | </div> | |
95 | </div> | |
96 | </li> | |
97 | {% endfor %} | |
98 | </ul> | |
99 | ||
100 | <!-- Export --> | |
101 | <div id="export" class="side-nav fixed right-aligned"> | |
102 | {% set currentRoute = app.request.attributes.get('_route') %} | |
103 | {% if currentRoute == 'homepage' %} | |
104 | {% set currentRoute = 'unread' %} | |
105 | {% endif %} | |
106 | <h4 class="center">{% trans %}Export{% endtrans %}</h4> | |
107 | <ul> | |
108 | {% if craue_setting('export_epub') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'epub' }) }}">EPUB</a></li>{% endif %} | |
109 | {% if craue_setting('export_mobi') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'mobi' }) }}">MOBI</a></li>{% endif %} | |
110 | {% if craue_setting('export_pdf') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'pdf' }) }}">PDF</a></li>{% endif %} | |
111 | {% if craue_setting('export_csv') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'json' }) }}">JSON</a></li>{% endif %} | |
112 | {% if craue_setting('export_json') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'csv' }) }}">CSV</a></li>{% endif %} | |
113 | {% if craue_setting('export_txt') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'txt' }) }}">TXT</a></li>{% endif %} | |
114 | {% if craue_setting('export_xml') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'xml' }) }}">XML</a></li>{% endif %} | |
115 | </ul> | |
116 | </div> | |
117 | ||
118 | <!-- Filters --> | |
119 | <div id="filters" class="side-nav fixed right-aligned"> | |
120 | <form action="{{ path('all') }}"> | |
121 | ||
122 | <h4 class="center">{% trans %}Filters{% endtrans %}</h4> | |
123 | ||
124 | <div class="row"> | |
125 | <div class="col s12"> | |
126 | <label>{% trans %}Status{% endtrans %}</label> | |
127 | </div> | |
128 | ||
129 | <div class="input-field col s6 with-checkbox"> | |
130 | {{ form_widget(form.isArchived) }} | |
131 | <label for="entry_filter_isArchived">{% trans %}Archived{% endtrans %}</label> | |
132 | </div> | |
133 | ||
134 | <div class="input-field col s6 with-checkbox"> | |
135 | {{ form_widget(form.isStarred) }} | |
136 | <label for="entry_filter_isStarred">{% trans %}Starred{% endtrans %}</label> | |
137 | </div> | |
138 | ||
139 | <div class="col s12"> | |
140 | <label>{% trans %}Preview picture{% endtrans %}</label> | |
141 | </div> | |
142 | ||
143 | <div class="input-field col s12 with-checkbox"> | |
144 | {{ form_widget(form.previewPicture) }} | |
145 | <label for="entry_filter_previewPicture">{% trans %}Has a preview picture{% endtrans %}</label> | |
146 | </div> | |
147 | ||
148 | <div class="col s12"> | |
149 | <label>{% trans %}Language{% endtrans %}</label> | |
150 | </div> | |
151 | ||
152 | <div class="input-field col s12"> | |
153 | {{ form_widget(form.language) }} | |
154 | </div> | |
155 | ||
156 | <div class="col s12"> | |
157 | <label>{% trans %}Reading time in minutes{% endtrans %}</label> | |
158 | </div> | |
159 | <div class="input-field col s6"> | |
160 | {{ form_widget(form.readingTime.left_number, {'type': 'number'}) }} | |
161 | <label for="entry_filter_readingTime_left_number">{% trans %}from{% endtrans %}</label> | |
162 | </div> | |
163 | <div class="input-field col s6"> | |
164 | {{ form_widget(form.readingTime.right_number, {'type': 'number'}) }} | |
165 | <label for="entry_filter_readingTime_right_number">{% trans %}to{% endtrans %}</label> | |
166 | </div> | |
167 | ||
168 | <div class="input-field col s12"> | |
169 | {{ form_widget(form.domainName, {'type': 'text', 'attr' : {'placeholder': 'website.com' | trans} }) }} | |
170 | <label for="entry_filter_domainName">{% trans %}Domain name{% endtrans %}</label> | |
171 | </div> | |
172 | ||
173 | <div class="col s12"> | |
174 | <label>{% trans %}Creation date{% endtrans %}</label> | |
175 | </div> | |
176 | ||
177 | <div class="input-field col s6"> | |
178 | {{ form_widget(form.createdAt.left_date, {'type': 'date', 'attr': {'class': 'datepicker', 'data-value': form.createdAt.left_date.vars.value} }) }} | |
179 | <label for="entry_filter_createdAt_left_date" class="active">{% trans %}from{% endtrans %}</label> | |
180 | </div> | |
181 | <div class="input-field col s6"> | |
182 | {{ form_widget(form.createdAt.right_date, {'type': 'date', 'attr': {'class': 'datepicker', 'data-value': form.createdAt.right_date.vars.value} }) }} | |
183 | <label for="entry_filter_createdAt_right_date" class="active">{% trans %}to{% endtrans %}</label> | |
184 | </div> | |
185 | ||
186 | <div class="col s6"> | |
187 | <a href="#!" class="center waves-effect waves-green btn-flat" id="clear_form_filters">{% trans %}Clear{% endtrans %}</a> | |
188 | </div> | |
189 | ||
190 | <div class="col s6"> | |
191 | <button class="btn waves-effect waves-light" type="submit" id="submit-filter" value="filter">{% trans %}Filter{% endtrans %}</button> | |
192 | </div> | |
193 | ||
194 | </div> | |
195 | ||
196 | </form> | |
197 | </div> | |
198 | {% endblock %} |