
When running mediagoblin in a sub path on a web server, most things inside mediagoblin need the "inside path", but when generating URLs for the webbrowser, full paths are needed. urlgen and routes already do that. Some (mostly pagination and login) need the URL of the current page. They used request.path_info. But this is the "inside" path, not the full. So now there is request.full_path and its used in various places.
68 lines
2.6 KiB
HTML
68 lines
2.6 KiB
HTML
{#
|
|
# GNU MediaGoblin -- federated, autonomous media hosting
|
|
# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
|
|
#
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU Affero General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU Affero General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Affero General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
#}
|
|
|
|
{% macro render_pagination(request, pagination,
|
|
base_url=None, preserve_get_params=True) %}
|
|
{# only display if {{pagination}} is defined #}
|
|
{% if pagination and pagination.pages > 1 %}
|
|
{% if not base_url %}
|
|
{% set base_url = request.full_path %}
|
|
{% endif %}
|
|
|
|
{% if preserve_get_params %}
|
|
{% set get_params = request.GET %}
|
|
{% else %}
|
|
{% set get_params = {} %}
|
|
{% endif %}
|
|
|
|
<div class="pagination">
|
|
<p>
|
|
{% if pagination.has_prev %}
|
|
{% set prev_url = pagination.get_page_url_explicit(
|
|
base_url, get_params,
|
|
pagination.page - 1) %}
|
|
<a href="{{ prev_url }}"><img class="pagination_arrow" src="{{ request.staticdirect('/images/pagination_left.png') }}" alt="Previous page" /></a>
|
|
<a href="{{ prev_url }}">{% trans %}Newer{% endtrans %}</a>
|
|
{% endif %}
|
|
{% if pagination.has_next %}
|
|
{% set next_url = pagination.get_page_url_explicit(
|
|
base_url, get_params,
|
|
pagination.page + 1) %}
|
|
<a href="{{ next_url }}">{% trans %}Older{% endtrans %}</a>
|
|
<a href="{{ next_url }}"><img class="pagination_arrow" src="{{ request.staticdirect('/images/pagination_right.png') }}" alt="Next page" /></a>
|
|
{% endif %}
|
|
<br />
|
|
Go to page:
|
|
{%- for page in pagination.iter_pages() %}
|
|
{% if page %}
|
|
{% if page != pagination.page %}
|
|
<a href="{{ pagination.get_page_url_explicit(
|
|
base_url, get_params,
|
|
page) }}">{{ page }}</a>
|
|
{% else %}
|
|
{{ page }}
|
|
{% endif %}
|
|
{% else %}
|
|
<span class="ellipsis">…</span>
|
|
{% endif %}
|
|
{%- endfor %}
|
|
</p>
|
|
</div>
|
|
{% endif %}
|
|
{% endmacro %}
|