{# This file was part of Flask-Bootstrap and was modified under the terms of
its BSD License. Copyright (c) 2013, Marc Brinkmann. All rights reserved. #}
{% macro render_pager(pagination,
fragment='', prev=('<span aria-hidden="true">←</span> Previous')|safe, next=('Next <span aria-hidden="true">→</span>')|safe, align='') -%} <nav aria-label="Page navigation"> <ul class="pagination {% if align == 'center' %}justify-content-center{% elif align == 'right' %}justify-content-end{% endif %}"> <li class="page-item {% if not pagination.has_prev %}disabled{% endif %}"> <a class="page-link" href="{{ url_for(request.endpoint, page=pagination.prev_num, **kwargs) + fragment if pagination.has_prev else '#' }}"> {{ prev }} </a> </li> <li class="page-item {% if not pagination.has_next %}disabled{% endif %}"> <a class="page-link" href="{{ url_for(request.endpoint, page=pagination.next_num, **kwargs) + fragment if pagination.has_next else '#' }}"> {{ next }} </a> </li> </ul> </nav>
{%- endmacro %}
{% macro _arg_url_for(endpoint, base) %}
{# calls url_for() with a given endpoint and **base as the parameters,
additionally passing on all keyword_arguments (may overwrite existing ones)
#}
{%- with kargs = base.copy() -%} {%- do kargs.update(kwargs) -%} {{ url_for(endpoint, **kargs) }} {%- endwith %}
{%- endmacro %}
{% macro render_pagination(pagination,
endpoint=None, prev=('«')|safe, next=('»')|safe, size=None, ellipses='…', args={}, fragment='', align='' )-%} {% if fragment != '' and not fragment.startswith('#') %}{% set fragment = '#' + fragment %}{% endif %} {% with url_args = {} %} {%- do url_args.update(request.view_args if not endpoint else {}), url_args.update(request.args if not endpoint else {}), url_args.update(args) -%} {% with endpoint = endpoint or request.endpoint %} <nav aria-label="Page navigation"> <ul class="pagination{% if size %} [PM](https://www.gendan5.com/wallet/PerfectMoney.html)pagination-{{ size }}{% endif %} {% if align == 'center' %}justify-content-center{% elif align == 'right' %}justify-content-end{% endif %}"{{ kwargs|xmlattr }}> {# prev and next are only show if a symbol has been passed. #} {% if prev != None -%} <li class="page-item {% if not pagination.has_prev %}disabled{% endif %}"> <a class="page-link" href="{{ _arg_url_for(endpoint, url_args, page=pagination.prev_num) if pagination.has_prev else '#' }}{{ fragment }}">{{ prev }}</a> </li> {%- endif -%} {%- for page in pagination.iter_pages() %} {% if page %} {% if page != pagination.page %} <li class="page-item"> <a class="page-link" href="{{ _arg_url_for(endpoint, url_args, page=page) }}{{ fragment }}">{{ page }}</a> </li> {% else %} <li class="page-item active"> <a class="page-link" href="#">{{ page }} <span class="sr-only">(current)</span></a> </li> {% endif %} {% elif ellipses != None %} <li class="page-item disabled"><a class="page-link" href="#">{{ ellipses }}</a></li> {% endif %} {%- endfor %} {% if next != None -%} <li class="page-item {% if not pagination.has_next %}disabled{% endif %}"> <a class="page-link" href="{{ _arg_url_for(endpoint, url_args, page=pagination.next_num) if pagination.has_next else '#' }}{{ fragment }}">{{ next }}</a> </li> {%- endif -%} </ul> </nav> {% endwith %} {% endwith %}
{% endmacro %}