actix-admin/actix_admin/templates/list.html

102 lines
4.3 KiB
HTML
Raw Normal View History

2022-04-23 20:03:09 +02:00
{% extends "base.html" %}
{% block content %}
2022-07-26 22:34:33 +02:00
2022-07-29 17:53:59 +02:00
{% if not render_partial or render_partial == false %}
2022-07-26 22:34:33 +02:00
<article>
<div class="grid">
2022-07-31 17:11:58 +02:00
<div hx-include="#checked-rows" hx-target="#{{ entity_name }}table">
2022-07-29 17:53:59 +02:00
<details role="list">
<summary aria-haspopup="listbox" role="button">
2022-07-31 16:33:02 +02:00
Actions
2022-07-29 17:53:59 +02:00
</summary>
<ul role="listbox">
2022-07-31 16:33:02 +02:00
<li><a href="create">Create</a></li>
2022-08-01 15:06:54 +02:00
<li><a href="#" hx-confirm="Are you sure?" hx-delete="delete">Delete Selected</a></li>
2022-07-29 17:53:59 +02:00
</ul>
</details>
2022-07-31 16:33:02 +02:00
</div>
2022-07-29 17:53:59 +02:00
<div>
2022-07-31 17:11:58 +02:00
<input type="search" id="search" value="{{ search }}" name="search" placeholder="Search"
2022-07-29 17:53:59 +02:00
hx-get="/admin/{{ entity_name }}/list?render_partial=true&entities_per_page={{ entities_per_page }}&page={{ page }}"
hx-trigger="keyup changed delay:500ms, search" hx-target="#{{ entity_name }}table"
2022-07-31 17:11:58 +02:00
hx-indicator=".htmx-indicator">
2022-07-26 22:34:33 +02:00
</div>
</div>
2022-07-31 17:11:58 +02:00
{% endif %}
<div id="{{ entity_name }}table">
<figure>
<form id="checked-rows">
<table role="grid">
<thead>
<tr>
<th>
2022-08-01 15:06:54 +02:00
<input type="checkbox" onclick="checkAll(this)">
2022-07-31 17:11:58 +02:00
</th>
<th>{{ view_model.primary_key | title }}</th>
{% for model_field in view_model.fields -%}
<th>{{ model_field.field_name | split(pat="_") | join(sep=" ") | title }}</th>
2022-07-29 17:53:59 +02:00
{%- endfor %}
2022-07-31 17:11:58 +02:00
<th>
<!-- Edit Action -->
<!-- Delete Action -->
</th>
</tr>
</thead>
<tbody hx-confirm="Are you sure?" hx-target="closest tr" hx-swap="outerHTML">
{% for entity in entities -%}
<tr>
2022-08-01 15:06:54 +02:00
<td><input type="checkbox" name="ids" value="{{ entity.primary_key }}"></td>
2022-07-31 17:11:58 +02:00
<td>{{ entity.primary_key }}</td>
{% for model_field in view_model.fields -%}
<td>{{ entity.values | get(key=model_field.field_name) }}</td>
{%- endfor %}
<td>
<a href="edit/{{ entity.primary_key }}">&#9998;</a>
2022-08-01 14:39:14 +02:00
<a hx-delete="delete/{{ entity.primary_key }}">&#128465;</a>
2022-07-31 17:11:58 +02:00
</td>
</tr>
{%- endfor %}
</tbody>
<tfoot>
<tr>
<td colspan="{{ view_model.fields | length + 3 }}">
<a
href="?page={{ page - 1 }}&entities_per_page={{ entities_per_page }}&search={{ search }}">&laquo;</a>
{% for i in range(end=num_pages) %}
<a href="?page={{ i + 1 }}&entities_per_page={{ entities_per_page }}&search={{ search }}">{{
i + 1 }}</a>
{%- endfor %}
<a
href="?page={{ page + 1 }}&entities_per_page={{ entities_per_page }}&search={{ search }}">&raquo;</a>
</td>
</tr>
</tfoot>
</table>
2022-07-26 22:34:33 +02:00
</form>
2022-07-31 17:11:58 +02:00
</figure>
<div class="grid">
<div></div>
<div></div>
2022-08-01 15:19:31 +02:00
<div class="htmx-indicator">{% include "spinner.svg" %}</div>
2022-07-31 17:11:58 +02:00
<div>
<form>
<input type="hidden" value="{{ search }}" name="search">
<label for="entities_per_page">Entities per Page
<select name="entities_per_page" onchange="this.form.submit()">
{% for a in [10,20,50,100,] %}
<option {% if entities_per_page==a %}selected{% endif %} value="{{ a }}">{{ a }}</option>
{% endfor %}
</select>
</label>
</form>
</div>
2022-07-26 22:34:33 +02:00
</div>
</div>
2022-07-31 17:11:58 +02:00
{% if not render_partial or render_partial == false %}
2022-07-26 22:34:33 +02:00
</article>
2022-07-29 17:53:59 +02:00
{% endif %}
2022-07-31 17:11:58 +02:00
2022-04-23 20:03:09 +02:00
{% endblock content %}