]>
Commit | Line | Data |
---|---|---|
53e12188 AD |
1 | {% extends "WallabagCoreBundle::base.html.twig" %} |
2 | ||
3 | {% block css %} | |
4 | {{ parent() }} | |
64f81bc3 TC |
5 | {% if not app.debug %} |
6 | <link rel="stylesheet" href="{{ asset('bundles/wallabagcore/material.css') }}"> | |
7 | {% endif %} | |
53e12188 AD |
8 | {% endblock %} |
9 | ||
10 | {% block scripts %} | |
11 | {{ parent() }} | |
64f81bc3 | 12 | <script src="{{ asset('bundles/wallabagcore/material' ~ (app.debug ? '.dev' : '') ~ '.js') }}"></script> |
53e12188 AD |
13 | {% endblock %} |
14 | ||
15 | {% block header %} | |
16 | {% endblock %} | |
17 | ||
a6523cfe AD |
18 | {% block messages %} |
19 | {% for flashMessage in app.session.flashbag.get('notice') %} | |
20 | <script> | |
8e417206 | 21 | Materialize.toast('{{ flashMessage|trans }}', 4000); |
a6523cfe AD |
22 | </script> |
23 | {% endfor %} | |
24 | {% endblock %} | |
25 | ||
26 | {% block menu %} | |
27 | <nav class="cyan darken-1"> | |
28 | <ul id="slide-out" class="side-nav fixed"> | |
29 | {% block logo %} | |
30 | <li class="logo border-bottom"> | |
0d42217e | 31 | <a title="{{ 'menu.left.back_to_unread'|trans }}" href="{{ path('unread') }}"> |
5ecdfcd0 | 32 | <img src="{{ asset('bundles/wallabagcore/themes/_global/img/logo-square.png') }}" alt="wallabag logo" /> |
a6523cfe AD |
33 | </a> |
34 | </li> | |
35 | {% endblock %} | |
36 | ||
37 | {% set currentRoute = app.request.attributes.get('_route') %} | |
7d9a67de | 38 | {% set currentRouteFromQueryParams = app.request.query.get('currentRoute') %} |
a6523cfe | 39 | |
7d9a67de KD |
40 | {% set activeRoute = null %} |
41 | {% if currentRoute == 'all' or currentRouteFromQueryParams == 'all' %} | |
42 | {% set activeRoute = 'all' %} | |
43 | {% elseif currentRoute == 'archive' or currentRouteFromQueryParams == 'archive' %} | |
44 | {% set activeRoute = 'archive' %} | |
45 | {% elseif currentRoute == 'starred' or currentRouteFromQueryParams == 'starred' %} | |
46 | {% set activeRoute = 'starred' %} | |
47 | {% elseif currentRoute == 'unread' or currentRoute == 'homepage' or currentRouteFromQueryParams == 'unread' %} | |
48 | {% set activeRoute = 'unread' %} | |
49 | {% endif %} | |
50 | ||
51 | <li class="bold {% if activeRoute == 'unread' %}active{% endif %}"> | |
59ddb9ae | 52 | <a class="waves-effect" href="{{ path('unread') }}">{{ 'menu.left.unread'|trans }} <span class="numberItems grey-text">{{ count_entries('unread') }}</span></a> |
0d42217e | 53 | </li> |
7d9a67de | 54 | <li class="bold {% if activeRoute == 'starred' %}active{% endif %}"> |
59ddb9ae | 55 | <a class="waves-effect" href="{{ path('starred') }}">{{ 'menu.left.starred'|trans }} <span class="numberItems grey-text">{{ count_entries('starred') }}</span></a> |
0d42217e | 56 | </li> |
7d9a67de | 57 | <li class="bold {% if activeRoute == 'archive' %}active{% endif %}"> |
59ddb9ae | 58 | <a class="waves-effect" href="{{ path('archive') }}">{{ 'menu.left.archive'|trans }} <span class="numberItems grey-text">{{ count_entries('archive') }}</span></a> |
0d42217e | 59 | </li> |
7d9a67de | 60 | <li class="bold {% if activeRoute == 'all' %}active{% endif %}"> |
59ddb9ae | 61 | <a class="waves-effect" href="{{ path('all') }}">{{ 'menu.left.all_articles'|trans }} <span class="numberItems grey-text">{{ count_entries('all') }}</span></a> |
0d42217e JB |
62 | </li> |
63 | <li class="bold border-bottom {% if currentRoute == 'tags' %}active{% endif %}"> | |
429d86f3 | 64 | <a class="waves-effect" href="{{ path('tag') }}">{{ 'menu.left.tags'|trans }} <span class="numberItems grey-text">{{ count_tags() }}</span></a> |
0d42217e JB |
65 | </li> |
66 | <li class="bold {% if currentRoute == 'config' %}active{% endif %}"> | |
67 | <a class="waves-effect" href="{{ path('config') }}">{{ 'menu.left.config'|trans }}</a> | |
68 | </li> | |
b8427f22 JB |
69 | {% if craue_setting('restricted_access') %} |
70 | <li class="bold {% if currentRoute starts with 'site_credentials_' %}active{% endif %}"> | |
71 | <a class="waves-effect" href="{{ path('site_credentials_index') }}">{{ 'menu.left.site_credentials'|trans }}</a> | |
72 | </li> | |
73 | {% endif %} | |
63e40f2d | 74 | {% if is_granted('ROLE_SUPER_ADMIN') %} |
152fcccd JB |
75 | <li class="bold {% if currentRoute starts with 'user_' %}active{% endif %}"> |
76 | <a class="waves-effect" href="{{ path('user_index') }}">{{ 'menu.left.users_management'|trans }}</a> | |
77 | </li> | |
78 | ||
0d42217e JB |
79 | <li class="bold border-bottom {% if currentRoute == 'craue_config_settings_modify' %}active{% endif %}"> |
80 | <a class="waves-effect" href="{{ path('craue_config_settings_modify') }}">{{ 'menu.left.internal_settings'|trans }}</a> | |
81 | </li> | |
63e40f2d | 82 | {% endif %} |
0d42217e JB |
83 | <li class="bold {% if currentRoute == 'import' %}active{% endif %}"> |
84 | <a class="waves-effect" href="{{ path('import') }}">{{ 'menu.left.import'|trans }}</a> | |
85 | </li> | |
86 | <li class="bold {% if currentRoute == 'developer' %}active{% endif %}"> | |
87 | <a class="waves-effect" href="{{ path('developer') }}">{{ 'menu.left.developer'|trans }}</a> | |
88 | </li> | |
89 | <li class="bold {% if currentRoute == 'howto' %}active{% endif %}"> | |
90 | <a class="waves-effect" href="{{ path('howto') }}">{{ 'menu.left.howto'|trans }}</a> | |
91 | </li> | |
92 | <li class="bold"> | |
c5e4293e | 93 | <a class="waves-effect icon icon-power" href="{{ path('fos_user_security_logout') }}">{{ 'menu.left.logout'|trans }}</a> |
0d42217e | 94 | </li> |
a6523cfe AD |
95 | </ul> |
96 | <div class="nav-wrapper nav-panels"> | |
5ecdfcd0 | 97 | <a href="#" data-activates="slide-out" class="nav-panel-menu button-collapse"><i class="material-icons">menu</i></a> |
a6523cfe | 98 | <div class="left action"> |
a64f1d9f NL |
99 | {% block title %} |
100 | {% endblock %} | |
a6523cfe | 101 | </div> |
22d0c929 S |
102 | <ul class="input-field nav-panel-buttom"> |
103 | <li class="bold"> | |
104 | <a class="waves-effect tooltipped" data-position="bottom" data-delay="50" data-tooltip="{{ 'menu.top.add_new_entry'|trans }}" href="{{ path('new') }}" id="nav-btn-add"> | |
105 | <i class="material-icons">add</i> | |
106 | </a> | |
107 | </li> | |
108 | <li> | |
109 | <a class="waves-effect tooltipped" data-position="bottom" data-delay="50" data-tooltip="{{ 'menu.top.search'|trans }}" href="javascript: void(null);" id="nav-btn-search"> | |
110 | <i class="material-icons">search</i> | |
111 | </a> | |
112 | </li> | |
e0f9010e TC |
113 | <li id="button_notifications"> |
114 | {% set unreadNotifs = get_notifications() | unread_notif | length %} | |
115 | <a class="nav-panel-menu button-collapse-right tooltipped js-notifications-action" data-position="bottom" data-delay="50" data-tooltip="{{ 'menu.top.notifications' | trans }}" href="#" data-activates="notifications"> | |
116 | <i class="material-icons">notifications{% if unreadNotifs == 0 %}_none{% endif %}</i> | |
117 | {% if unreadNotifs > 0 %}<span id="notifications-count" class="red-text text-accent-2">{{ unreadNotifs }}</span>{% endif %} | |
118 | </a> | |
119 | </li> | |
bf6c0346 TC |
120 | <li id="button_profile"> |
121 | <a class="nav-panel-menu button-collapse-right tooltipped" data-position="bottom" data-delay="50" data-tooltip="{{ 'menu.top.profile' | trans }}" href="{{ path('user-profile', {'user': app.user.account.username}) }}"> | |
122 | <i class="material-icons">person</i> | |
123 | </a> | |
124 | </li> | |
22d0c929 | 125 | <li id="button_filters"> |
ccb9e79a | 126 | <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"> |
22d0c929 S |
127 | <i class="material-icons">filter_list</i> |
128 | </a> | |
129 | </li> | |
130 | <li id="button_export"> | |
ccb9e79a | 131 | <a class="nav-panel-menu button-collapse-right tooltipped js-export-action" data-position="bottom" data-delay="50" data-tooltip="{{ 'menu.top.export'|trans }}" href="#" data-activates="export"> |
22d0c929 S |
132 | <i class="material-icons">file_download</i> |
133 | </a> | |
134 | </li> | |
135 | </ul> | |
ee122a75 | 136 | <div class="input-field nav-panel-search" style="display: none"> |
49b042df | 137 | {{ render(controller("WallabagCoreBundle:Entry:searchForm", {'currentRoute': app.request.attributes.get('_route')})) }} |
64f81bc3 | 138 | <label for="search"><i class="material-icons search">search</i></label> |
ee122a75 NL |
139 | <i class="material-icons close">clear</i> |
140 | </div> | |
053b9568 | 141 | <div class="input-field nav-panel-add" style="display: none"> |
0d42217e | 142 | {{ render(controller("WallabagCoreBundle:Entry:addEntryForm")) }} |
64f81bc3 | 143 | <label for="add"><i class="material-icons add">add</i></label> |
5ecdfcd0 | 144 | <i class="material-icons close">clear</i> |
053b9568 | 145 | </div> |
a6523cfe AD |
146 | </div> |
147 | </nav> | |
148 | {% endblock %} | |
4e9f656e | 149 | |
e0f9010e TC |
150 | {% block content %} |
151 | ||
152 | <div id="notifications" class="side-nav"> | |
153 | {% if app.user.notifications is not empty %} | |
154 | <div class="notifications-area"> | |
155 | <ul class="collection"> | |
156 | {% for notification in get_notifications() | slice(0, 10) %} | |
157 | <li class="notification collection-item avatar{% if not notification.read %} light-blue lighten-5{% else %} grey-text{% endif %}"> | |
158 | <i class="material-icons circle">{% spaceless %} | |
159 | {% if notification.type == constant('TYPE_ADMIN', notification) %} | |
160 | build | |
161 | {% elseif notification.type == constant('TYPE_USER', notification) %} | |
162 | person | |
163 | {% elseif notification.type == constant('TYPE_RELEASE', notification) %} | |
164 | new_releases | |
165 | {% endif %} | |
166 | {% endspaceless %}</i> | |
167 | <span class="title">{{ notification.title | trans(notification.parameters) }}</span> | |
168 | <p>{{ notification.description | trans(notification.parameters) }}</p> | |
169 | <time datetime="{{ notification.timestamp | date }}">{{ notification.timestamp | time_diff }}</time> | |
170 | <div> | |
171 | {% for action in notification.actions %} | |
172 | <a class="notification-action-button btn waves-effect waves-light {% spaceless %} | |
173 | {% if action.type == constant('TYPE_OK', action) %} | |
174 | {% elseif action.type == constant('TYPE_YES', action) %} | |
175 | cyan | |
176 | {% elseif action.type == constant('TYPE_NO', action) %} | |
177 | red | |
178 | {% elseif action.type == constant('TYPE_INFO', action) %} | |
179 | blue-grey | |
180 | {% endif %} | |
181 | {% if notification.read %}lighten-3{% endif %} | |
182 | {% endspaceless %}" href="{{ path('notification-archive-redirect', {'redirection': action.link, 'notification': notification.id}) }}">{{ action.label | trans(notification.parameters) }}</a> | |
183 | {% endfor %} | |
184 | </div> | |
185 | </li> | |
186 | {% endfor %} | |
187 | </ul> | |
188 | </div> | |
189 | <a href="{{ path('notification-archive-all') }}" class="btn-light waves-effect waves-light right"><i class="material-icons">done_all</i> {{ 'notifications.list.mark_all_as_read' | trans }}</a> | |
190 | <a class="waves-effect waves-light btn view-more" href="{{ path('notifications-all') }}">{{ 'notifications.sidebar.view_more' | trans }}</a> | |
191 | {% else %} | |
192 | <div class="no-notifications grey-text">{{ 'notifications.list.none' | trans }}</div> | |
193 | {% endif %} | |
194 | </div> | |
195 | {% endblock %} | |
196 | ||
4e9f656e | 197 | {% block footer %} |
e77cde45 NL |
198 | <footer class="page-footer cyan darken-2"> |
199 | <div class="footer-copyright"> | |
200 | <div class="container"> | |
1264029c | 201 | <div class="row"> |
d56d416d TC |
202 | <div class="col m12 l8 hide-on-small-only"> |
203 | <p title="{{ display_stats() | raw | striptags }}"> | |
1264029c JB |
204 | {{ display_stats() }} |
205 | </p> | |
206 | </div> | |
d56d416d | 207 | <div class="col s12 l4"> |
1264029c JB |
208 | <p> |
209 | {{ 'footer.wallabag.powered_by'|trans }} <a target="_blank" href="https://wallabag.org" class="grey-text text-lighten-4">wallabag</a> – | |
210 | <a class="grey-text text-lighten-4" href="{{ path('about') }}">{{ 'footer.wallabag.about'|trans|lower }}</a> | |
211 | </p> | |
212 | </div> | |
213 | </div> | |
e77cde45 NL |
214 | </div> |
215 | </div> | |
216 | </footer> | |
4e9f656e | 217 | {% endblock %} |