2018-03-28 00:35:37 +00:00
|
|
|
{% macro pagination_segment(url_window, base_url, currentPage) %}
|
|
|
|
{% for page, url in url_window %}
|
|
|
|
<li class="pagination__option{{ currentPage == page ? ' pagination__option--active' : '' }}">
|
|
|
|
<a href="{{ base_url ~ url|slice(2) }}" class="pagination__link{{ currentPage == page ? ' pagination__link--active' : '' }}">
|
|
|
|
{{ page }}
|
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
{% endfor %}
|
|
|
|
{% endmacro %}
|
|
|
|
|
2018-05-20 20:16:30 +00:00
|
|
|
{% macro pagination(itemCount, itemRange, currentOffset, baseUrl, classPrefix, alwaysRender, useRanges, offsetParam, pageRange) %}
|
2018-03-31 22:28:32 +00:00
|
|
|
{% set alwaysRender = alwaysRender|default(false) %}
|
2018-03-28 00:35:37 +00:00
|
|
|
|
2018-05-16 21:06:14 +00:00
|
|
|
{% if alwaysRender or itemCount > itemRange %}
|
|
|
|
{% set classPrefix = classPrefix|default('') %}
|
|
|
|
{% set separator = '%3F' in baseUrl|default('')|url_encode ? '&' : '?' %}
|
|
|
|
{% set baseUrl = baseUrl ~ separator %}
|
|
|
|
{% set pageCount = (itemCount / itemRange)|round(0, 'ceil') %}
|
|
|
|
{% set currentPage = currentOffset // itemRange %}
|
|
|
|
{% set useRanges = useRanges|default(true) %}
|
|
|
|
{% set offsetParam = offsetParam|default(useRanges ? 'o' : 'p') %}
|
|
|
|
{% set pageRange = pageRange|default(3) %}
|
2018-03-28 00:35:37 +00:00
|
|
|
|
2018-05-16 21:06:14 +00:00
|
|
|
<ul class="{{ classPrefix }}pagination">
|
|
|
|
{% if currentPage < 1 %}
|
|
|
|
<li class="{{ classPrefix }}pagination__option {{ classPrefix }}pagination__option--first {{ classPrefix }}pagination__option--disabled">
|
|
|
|
<span class="{{ classPrefix }}pagination__link {{ classPrefix }}pagination__link--first">
|
2018-03-31 22:28:32 +00:00
|
|
|
«
|
|
|
|
</span>
|
|
|
|
</li>
|
2018-05-16 21:06:14 +00:00
|
|
|
<li class="{{ classPrefix }}pagination__option {{ classPrefix }}pagination__option--prev {{ classPrefix }}pagination__option--disabled">
|
|
|
|
<span class="{{ classPrefix }}pagination__link {{ classPrefix }}pagination__link--prev">
|
|
|
|
‹
|
|
|
|
</span>
|
|
|
|
</li>
|
2018-03-31 22:28:32 +00:00
|
|
|
{% else %}
|
2018-05-16 21:06:14 +00:00
|
|
|
{% set firstUrl = baseUrl|slice(0, (baseUrl|length) - (separator|length)) %}
|
|
|
|
|
|
|
|
<li class="{{ classPrefix }}pagination__option {{ classPrefix }}pagination__option--first">
|
|
|
|
<a href="{{ firstUrl }}" class="{{ classPrefix }}pagination__link {{ classPrefix }}pagination__link--first" rel="first">
|
2018-03-31 22:28:32 +00:00
|
|
|
«
|
|
|
|
</a>
|
|
|
|
</li>
|
2018-05-16 21:06:14 +00:00
|
|
|
<li class="{{ classPrefix }}pagination__option {{ classPrefix }}pagination__option--prev">
|
|
|
|
<a href="{{ currentPage < 2 ? firstUrl : baseUrl ~ offsetParam ~ '=' ~ (useRanges ? ((currentPage - 1) * itemRange) : currentPage) }}" class="{{ classPrefix }}pagination__link {{ classPrefix }}pagination__link--prev" rel="prev">
|
|
|
|
‹
|
|
|
|
</a>
|
|
|
|
</li>
|
2018-03-31 22:28:32 +00:00
|
|
|
{% endif %}
|
2018-03-28 00:35:37 +00:00
|
|
|
|
2018-05-16 21:06:14 +00:00
|
|
|
<li class="{{ classPrefix }}pagination__separator"></li>
|
2018-03-28 00:35:37 +00:00
|
|
|
|
2018-05-16 21:06:14 +00:00
|
|
|
{% set paginationStart = currentPage - pageRange %}
|
|
|
|
{% set paginationStop = currentPage + pageRange %}
|
2018-03-28 00:35:37 +00:00
|
|
|
|
2018-05-16 21:06:14 +00:00
|
|
|
{% for i in paginationStart..paginationStop %}
|
|
|
|
{% if i >= 0 and i < pageCount %}
|
|
|
|
<li class="{{ classPrefix }}pagination__option{{ currentPage == i ? ' ' ~ classPrefix ~ 'pagination__option--active' : '' }}">
|
|
|
|
<a href="{{ baseUrl ~ offsetParam ~ '=' ~ (useRanges ? i * itemRange : i + 1) }}" class="{{ classPrefix }}pagination__link{{ currentPage == i ? ' ' ~ classPrefix ~ 'pagination__link--active' : '' }}">
|
|
|
|
{{ i + 1 }}
|
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
{% endif %}
|
|
|
|
{% endfor %}
|
2018-03-31 22:28:32 +00:00
|
|
|
|
2018-05-16 21:06:14 +00:00
|
|
|
<li class="{{ classPrefix }}pagination__separator"></li>
|
2018-03-28 00:35:37 +00:00
|
|
|
|
2018-05-16 21:06:14 +00:00
|
|
|
{% if currentPage >= pageCount - 1 %}
|
|
|
|
<li class="{{ classPrefix }}pagination__option {{ classPrefix }}pagination__option--next {{ classPrefix }}pagination__option--disabled">
|
|
|
|
<span class="{{ classPrefix }}pagination__link {{ classPrefix }}pagination__link--next">
|
|
|
|
›
|
|
|
|
</span>
|
|
|
|
</li>
|
|
|
|
<li class="{{ classPrefix }}pagination__option {{ classPrefix }}pagination__option--last {{ classPrefix }}pagination__option--disabled">
|
|
|
|
<span class="{{ classPrefix }}pagination__link {{ classPrefix }}pagination__link--last">
|
2018-03-31 22:28:32 +00:00
|
|
|
»
|
2018-05-16 21:06:14 +00:00
|
|
|
</span>
|
2018-03-31 22:28:32 +00:00
|
|
|
</li>
|
|
|
|
{% else %}
|
2018-05-16 21:06:14 +00:00
|
|
|
<li class="{{ classPrefix }}pagination__option {{ classPrefix }}pagination__option--next">
|
|
|
|
<a href="{{ baseUrl ~ offsetParam ~ '=' ~ (useRanges ? ((currentPage + 1) * itemRange) : currentPage + 2) }}" class="{{ classPrefix }}pagination__link {{ classPrefix }}pagination__link--next" rel="next">
|
|
|
|
›
|
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="{{ classPrefix }}pagination__option {{ classPrefix }}pagination__option--last">
|
|
|
|
<a href="{{ baseUrl ~ offsetParam ~ '=' ~ (useRanges ? ((pageCount - 1) * itemRange) : pageCount) }}" class="{{ classPrefix }}pagination__link {{ classPrefix }}pagination__link--last" rel="last">
|
2018-03-31 22:28:32 +00:00
|
|
|
»
|
2018-05-16 21:06:14 +00:00
|
|
|
</a>
|
2018-03-31 22:28:32 +00:00
|
|
|
</li>
|
|
|
|
{% endif %}
|
|
|
|
</ul>
|
|
|
|
{% endif %}
|
2018-03-27 03:15:03 +00:00
|
|
|
{% endmacro %}
|
2018-07-08 19:24:59 +00:00
|
|
|
|
|
|
|
{% macro permissions_table(permissions) %}
|
|
|
|
<div class="permissions">
|
|
|
|
{% for perms in permissions %}
|
|
|
|
<div class="permissions__line permissions__line--header">
|
|
|
|
<div class="permissions__title">
|
|
|
|
{{ perms.title }}
|
|
|
|
</div>
|
|
|
|
<div class="permissions__choice">
|
|
|
|
Yes
|
|
|
|
</div>
|
|
|
|
<div class="permissions__choice">
|
|
|
|
No
|
|
|
|
</div>
|
|
|
|
<div class="permissions__choice">
|
|
|
|
Never
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
{% for perm in perms.perms %}
|
|
|
|
<div class="permissions__line">
|
|
|
|
<div class="permissions__title">
|
|
|
|
{{ perm.title }}
|
|
|
|
</div>
|
|
|
|
<label class="permissions__choice permissions__choice--radio permissions__choice--yes">
|
|
|
|
<input {% if perm.value == 'yes' %}checked{% endif %}
|
|
|
|
class="permissions__input"
|
|
|
|
type="radio"
|
|
|
|
name="perms[{{ perms.section }}][{{ perm.section }}]"
|
|
|
|
value="yes">
|
|
|
|
</label>
|
|
|
|
<label class="permissions__choice permissions__choice--radio permissions__choice--no">
|
|
|
|
<input {% if perm.value == 'no' %}checked{% endif %}
|
|
|
|
class="permissions__input"
|
|
|
|
type="radio"
|
|
|
|
name="perms[{{ perms.section }}][{{ perm.section }}]"
|
|
|
|
value="no">
|
|
|
|
</label>
|
|
|
|
<label class="permissions__choice permissions__choice--radio permissions__choice--never">
|
|
|
|
<input {% if perm.value == 'never' %}checked{% endif %}
|
|
|
|
class="permissions__input"
|
|
|
|
type="radio"
|
|
|
|
name="perms[{{ perms.section }}][{{ perm.section }}]"
|
|
|
|
value="never">
|
|
|
|
</label>
|
|
|
|
</div>
|
|
|
|
{% endfor %}
|
|
|
|
{% endfor %}
|
|
|
|
</div>
|
|
|
|
{% endmacro %}
|