Merge remote branch 'remotes/elrond/dev/init'
[mediagoblin.git] / mediagoblin / templates / mediagoblin / utils / pagination.html
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
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 %}
25
26 {% if preserve_get_params %}
27 {% set get_params = request.GET %}
28 {% else %}
29 {% set get_params = {} %}
30 {% endif %}
31
32 <div class="pagination">
33 <p>
34 {% if pagination.has_prev %}
35 <a href="{{ pagination.get_page_url_explicit(
36 base_url, get_params,
37 pagination.page - 1) }}"><img class="pagination_arrow" src="/mgoblin_static/images/pagination_left.png" alt="Previous page" />Newer</a>
38 {% endif %}
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:
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 %}
56 {% else %}
57 <span class="ellipsis"></span>
58 {% endif %}
59 {%- endfor %}
60 </p>
61 </div>
62 {% endif %}
63 {% endmacro %}