Files
Froxlor/templates/Froxlor/table/table.html.twig
Michael Kaufmann 5b961be0f8 enhanced listing actions
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
2022-02-28 09:21:04 +01:00

69 lines
2.3 KiB
Twig

{% macro table(listing) %}
{% import "Froxlor/table/callbacks.html.twig" as callbacks %}
{% import "Froxlor/table/pagination.html.twig" as pagination %}
<form action="{{ action|default("") }}" method="post" enctype="application/x-www-form-urlencoded" class="form">
{% if listing.title is not empty %}
<h3 class="page-header">
{% if listing.icon is not empty %}
<i class="{{ listing.icon }} me-1"></i>
{% endif %}
{{ listing.title }}
</h3>
{% endif %}
{% if listing.table.tr|length == 0 %}
<div class="alert alert-info" role="alert">
<h4 class="alert-heading">{{ lng('admin.note') }}</h4>
<p>{{ listing.empty_msg|default(lng('panel.listing_empty'))|raw }}</p>
</div>
{% else %}
<div class="card table-responsive">
<table class="table table-borderless table-striped table-sm mb-0 px-3">
<thead>
<tr>
{% for key,th in listing.table.th %}
{{ pagination.titlesorting(listing.pagination, key, th) }}
{% endfor %}
</tr>
</thead>
<tbody>
{% for tr in listing.table.tr %}
<tr {% if tr.class is defined %} class="{{ tr.class }}" {% endif %}>
{% for td in tr.td %}
<td class="px-3{% if td.class is defined %} {{ td.class }}{% endif %}">
{% if td.data is iterable %}
{% if td.data.type == 'progressbar' %}
{{ callbacks.progressbar(td.data.data) }}
{% elseif td.data.type == 'boolean' %}
{{ callbacks.boolean(td.data.data) }}
{% elseif td.data.type == 'booleanWithInfo' %}
{{ callbacks.booleanWithInfo(td.data.data) }}
{% elseif td.data.type == 'link' %}
{{ callbacks.link(td.data.data) }}
{% elseif td.data.type == 'domainWithSan' %}
{{ callbacks.domainWithSan(td.data.data) }}
{% elseif td.data.type == 'actions' %}
{{ callbacks.actions(td.data.data) }}
{% else %}
Callback '{{ td|json_encode }}' is not implemented!
{% endif %}
{% else %}
{{ td.data|raw }}
{% endif %}
</td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
{% if listing.pagination is not empty %}
{{ pagination.paging(listing.pagination) }}
{% endif %}
</div>
{% endif %}
</form>
{% endmacro %}