Commit | Line | Data |
---|---|---|
12a100e4 WKG |
1 | {# |
2 | # GNU MediaGoblin -- federated, autonomous media hosting | |
3 | # Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. | |
ae85ed0f BK |
4 | # |
5 | # This program is free software: you can redistribute it and/or modify | |
6 | # it under the terms of the GNU Affero General Public License as published by | |
7 | # the Free Software Foundation, either version 3 of the License, or | |
8 | # (at your option) any later version. | |
9 | # | |
10 | # This program is distributed in the hope that it will be useful, | |
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | # GNU Affero General Public License for more details. | |
14 | # | |
15 | # You should have received a copy of the GNU Affero General Public License | |
16 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
17 | #} | |
18 | ||
5949be9a CAW |
19 | {% macro render_pagination(request, pagination, |
20 | base_url=None, preserve_get_params=True) %} | |
21 | {# only display if {{pagination}} is defined #} | |
22 | {% if pagination and pagination.pages > 1 %} | |
23 | {% if not base_url %} | |
05788ef4 | 24 | {% set base_url = request.full_path %} |
5949be9a | 25 | {% endif %} |
ae85ed0f | 26 | |
5949be9a CAW |
27 | {% if preserve_get_params %} |
28 | {% set get_params = request.GET %} | |
29 | {% else %} | |
30 | {% set get_params = {} %} | |
31 | {% endif %} | |
ca3ca51c | 32 | |
5949be9a CAW |
33 | <div class="pagination"> |
34 | <p> | |
35 | {% if pagination.has_prev %} | |
8775f68d CAW |
36 | {% set prev_url = pagination.get_page_url_explicit( |
37 | base_url, get_params, | |
38 | pagination.page - 1) %} | |
32d1a69d | 39 | <a href="{{ prev_url }}"><img class="pagination_arrow" src="{{ request.staticdirect('/images/pagination_left.png') }}" alt="Previous page" /></a> |
5a17728b | 40 | <a href="{{ prev_url }}">{% trans %}Newer{% endtrans %}</a> |
5949be9a | 41 | {% endif %} |
0a45fa59 | 42 | {% if pagination.has_next %} |
8775f68d CAW |
43 | {% set next_url = pagination.get_page_url_explicit( |
44 | base_url, get_params, | |
45 | pagination.page + 1) %} | |
5a17728b | 46 | <a href="{{ next_url }}">{% trans %}Older{% endtrans %}</a> |
32d1a69d | 47 | <a href="{{ next_url }}"><img class="pagination_arrow" src="{{ request.staticdirect('/images/pagination_right.png') }}" alt="Next page" /></a> |
0a45fa59 JS |
48 | {% endif %} |
49 | <br /> | |
a3663b40 | 50 | {% trans %}Go to page:{% endtrans %} |
5949be9a CAW |
51 | {%- for page in pagination.iter_pages() %} |
52 | {% if page %} | |
53 | {% if page != pagination.page %} | |
54 | <a href="{{ pagination.get_page_url_explicit( | |
55 | base_url, get_params, | |
56 | page) }}">{{ page }}</a> | |
57 | {% else %} | |
58 | {{ page }} | |
59 | {% endif %} | |
ca3ca51c | 60 | {% else %} |
5949be9a | 61 | <span class="ellipsis">…</span> |
ca3ca51c | 62 | {% endif %} |
5949be9a | 63 | {%- endfor %} |
5949be9a CAW |
64 | </p> |
65 | </div> | |
66 | {% endif %} | |
67 | {% endmacro %} |