CPI Ordering System (the old version)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
 
 
 
 
 

89 lines
3.8 KiB

{% macro flash_messages() -%}
{% for queue in ('success', 'info', 'warning', 'error') %}
{% for message in request.session.pop_flash(queue) %}
{% set css_class = 'danger' if queue == 'error' else queue %}
<div class="alert alert-{{ css_class }} {% if message.dismissable %}alert-dismissible{% endif %}" role="alert">
{% if message.dismissable %}
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
{% endif %}
<h4 class="alert-heading">{{message.message|safe}}</h4>
{% if message.description %}
<p>{{message.description|safe}}</p>
{% endif %}
</div>
{% endfor %}
{% endfor %}
{%- endmacro %}
{% macro filter_box(title, query_key, items) -%}
<div class="well sidebar-nav">
<ul class="nav nav-list">
<li class="nav-header">{{ title }}</li>
<li {% if not context.filters.get(query_key) %}class="active"{% endif %}>
<a href="{{ context.url( (query_key, None), (context.query_key_current_page, 1) ) }}">All</a>
</li>
{% for filter, display in items %}
<li {% if context.filters.get(query_key) == filter %}class="active"{% endif %}>
<a href="{{ context.url( (query_key, filter), (context.query_key_current_page, 1) ) }}">{{ display }}</a>
</li>
{% endfor %}
</ul>
</div>
{%- endmacro %}
{% macro show_or_hide_columns(name) -%}
{% set display = request.session.get('display', dict()) %}
{% set section = display.get(name, None) %}
{% if section %}
<style type="text/css">
{% for column, show in section.items() %}
{% if not show %}
.column-{{ column }} { display: none; }
{% endif %}
{% endfor %}
</style>
{% endif %}
{%- endmacro %}
{% macro sortable_table_header(title, sort_by, column_class=None) -%}
{% set column_class = column_class or 'column-' + sort_by %}
<th class="sortable blue header {{ column_class }} {% if sort_by == context.sorting.field %} active {{ 'headerSortUp' if context.sorting.direction == 'asc' else 'headerSortDown' }} {% endif %} ">
{% set new_direction = 'desc' if context.sorting.direction == 'asc' else 'asc' %}
{% set new_sort = sort_by + '.' + new_direction %}
<a href="{{ context.url( (context.query_key_sorting, new_sort), (context.query_key_current_page, 1) ) }}">{{ title }}</a>
</th>
{%- endmacro %}
{% macro pagination_helper(page, text=None, css_class='') -%}
{% set is_active = 'active' if page == context.pages.current %}
{% set is_disabled = 'disabled' if not page %}
{% set url = context.url( (context.query_key_current_page, page) ) if page %}
<li class="{{ css_class }} {{ is_active }} {{ is_disabled }}">
<a href="{{ url }}" >{{ text if text else page }}</a>
</li>
{%- endmacro %}}
{% macro pagination() -%}
{% if context.pages and context.pages.last > 1 %}
<div class="pagination pagination-centered">
<ul>
{{ pagination_helper(context.pages.previous, '\u2190 Previous', 'prev') }}
{% if context.pages.first not in context.pages.window %}
{{ pagination_helper(None, '...') }}
{% endif %}
{% for page in context.pages.window %}
{{ pagination_helper(page) }}
{% endfor %}
{% if context.pages.last not in context.pages.window %}
{{ pagination_helper(None, '...') }}
{% endif %}
{{ pagination_helper(context.pages.next, 'Next \u2192', 'next') }}
</ul>
</div>
{% endif %}
{%- endmacro %}