Still trying to work on fixing the pager issues.
This commit is contained in:
parent
bdec7202df
commit
d55539192e
4 changed files with 28 additions and 22 deletions
|
|
@ -20,9 +20,9 @@
|
|||
|
||||
{% macro rows(items, fields, getp=None) -%}
|
||||
{%- for obj in items -%}
|
||||
<tr id="row-{{ obj.id }}">
|
||||
<tr id="row-{{ obj.id }}" style="cursor: pointer;">
|
||||
{%- for f in fields -%}
|
||||
<td data-field="{{ f }}">{{ getp(obj, f) }}</td>
|
||||
<td data-field="{{ f }}" class="text-nowrap">{{ getp(obj, f) if getp(obj, f) is not none else '-' }}</td>
|
||||
{%- endfor -%}
|
||||
</tr>
|
||||
{%- else -%}
|
||||
|
|
@ -55,34 +55,34 @@
|
|||
{% endif %}
|
||||
</nav>
|
||||
#}
|
||||
<nav id="pager">
|
||||
<nav class="mt-3">
|
||||
<ul class="pagination justify-content-center bg-white">
|
||||
<li class="page-item {%- if page <= 1 %} disabled{% endif %}">
|
||||
<a class="page-link"
|
||||
hx-get="/ui/{{ model }}/frag/rows?page={{ page - 1 }}&per_page={{ per_page }}{% if sort %}&sort={{ sort }}{% endif %}{% if fields_csv %}&fields_csv={{ fields_csv|urlencode }}{% endif %}{% for k,v in filters.items() %}&{{k}}={{ v|urlencode }}{% endfor %}"
|
||||
hx-target="#rows" hx-swap="innerHTML" {%- if page <= 1 %} hx-disable{% endif %}>Prev</a>
|
||||
hx-get="/ui/{{ model }}/frag/rows?page={{ page - 1 }}&per_page={{ per_page }}{% if sort %}&sort={{ sort }}{% endif %}{% if fields_csv %}&fields_csv={{ fields_csv|urlencode }}{% endif %}{% for k,v in filters.items() %}&{{k}}={{ v|urlencode }}{% endfor %}"
|
||||
hx-target="#rows" hx-swap="innerHTML" {%- if page <=1 %} hx-disable{% endif %}
|
||||
hx-on:click="document.querySelector('#pager-state input[name=page]').value='{{ max(1, page-1) }}'">Prev</a>
|
||||
</li>
|
||||
<li class="page-item {%- if page <= 1 %} disabled{% endif %}">
|
||||
<a class="page-link"
|
||||
hx-get="/ui/{{ model }}/frag/rows?page=1&per_page={{ per_page }}{% if sort %}&sort={{ sort }}{% endif %}{% if fields_csv %}&fields_csv={{ fields_csv|urlencode }}{% endif %}{% for k,v in filters.items() %}&{{k}}={{ v|urlencode }}{% endfor %}"
|
||||
hx-target="#rows" hx-swap="innerHTML" {%- if page <= 1 %} hx-disable{% endif %}>1</a>
|
||||
hx-get="/ui/{{ model }}/frag/rows?page=1&per_page={{ per_page }}{% if sort %}&sort={{ sort }}{% endif %}{% if fields_csv %}&fields_csv={{ fields_csv|urlencode }}{% endif %}{% for k,v in filters.items() %}&{{k}}={{ v|urlencode }}{% endfor %}"
|
||||
hx-target="#rows" hx-swap="innerHTML" {%- if page <=1 %} hx-disable{% endif %}>1</a>
|
||||
</li>
|
||||
{% if pages > 1 %}
|
||||
<li class="page-item"><a class="page-link">...</a></li>
|
||||
<li class="page-item"><a class="page-link">...</a></li>
|
||||
<li class="page-item {%- if page >= pages %} disabled{% endif %}">
|
||||
<a class="page-link"
|
||||
hx-get="/ui/{{ model }}/frag/rows?page={{ pages }}&per_page={{ per_page }}{% if sort %}&sort={{ sort }}{% endif %}{% if fields_csv %}&fields_csv={{ fields_csv|urlencode }}{% endif %}{% for k,v in filters.items() %}&{{k}}={{ v|urlencode }}{% endfor %}"
|
||||
hx-target="#rows" hx-swap="innerHTML" {%- if page >= pages %} hx-disable{% endif %}>{{ pages }}</a>
|
||||
hx-get="/ui/{{ model }}/frag/rows?page={{ pages }}&per_page={{ per_page }}{% if sort %}&sort={{ sort }}{% endif %}{% if fields_csv %}&fields_csv={{ fields_csv|urlencode }}{% endif %}{% for k,v in filters.items() %}&{{k}}={{ v|urlencode }}{% endfor %}"
|
||||
hx-target="#rows" hx-swap="innerHTML" {%- if page>= pages %} hx-disable{% endif %}>{{ pages }}</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
<li class="page-item {%- if page >= pages %} disabled{% endif %}">
|
||||
<a class="page-link"
|
||||
hx-get="/ui/{{ model }}/frag/rows?page={{ page + 1 }}&per_page={{ per_page }}{% if sort %}&sort={{ sort }}{% endif %}{% if fields_csv %}&fields_csv={{ fields_csv|urlencode }}{% endif %}{% for k,v in filters.items() %}&{{k}}={{ v|urlencode }}{% endfor %}"
|
||||
hx-target="#rows" hx-swap="innerHTML" {%- if page >= pages %} hx-disable{% endif %}>Next</a>
|
||||
hx-get="/ui/{{ model }}/frag/rows?page={{ page + 1 }}&per_page={{ per_page }}{% if sort %}&sort={{ sort }}{% endif %}{% if fields_csv %}&fields_csv={{ fields_csv|urlencode }}{% endif %}{% for k,v in filters.items() %}&{{k}}={{ v|urlencode }}{% endfor %}"
|
||||
hx-target="#rows" hx-swap="innerHTML" {%- if page>= pages %} hx-disable{% endif %}>Next</a>
|
||||
</li>
|
||||
</ul>
|
||||
<span>Page {{ page }} / {{ pages }}</span>
|
||||
</nav>
|
||||
{%- endmacro %}
|
||||
|
||||
|
|
|
|||
|
|
@ -116,6 +116,7 @@ def make_fragments_blueprint(db_session_factory, registry: Dict[str, Any], *, na
|
|||
def pager(model):
|
||||
Model = registry.get(model) or abort(404)
|
||||
page = request.args.get("page", type=int) or 1
|
||||
print(page)
|
||||
per_page = request.args.get("per_page", type=int) or 20
|
||||
filters = _parse_filters(request.args)
|
||||
sort = request.args.get("sort")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue