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