166 lines
6.8 KiB
Twig
166 lines
6.8 KiB
Twig
{% extends 'admin/base.html.twig' %}
|
|
|
|
{% block title %}Dokumente{% endblock %}
|
|
|
|
{% block body %}
|
|
|
|
<div class="d-flex justify-content-between align-items-center mb-4">
|
|
<h1 class="h3 mb-0"><i class="bi bi-card-list"></i> Dokumente</h1>
|
|
|
|
<a href="{{ path('admin_document_new') }}"
|
|
class="btn btn-sm btn-outline-info">
|
|
Neues Dokument
|
|
</a>
|
|
</div>
|
|
|
|
{% if documents is empty %}
|
|
|
|
<div class="alert alert-secondary">
|
|
Keine Dokumente vorhanden.
|
|
</div>
|
|
|
|
{% else %}
|
|
|
|
<div class="card bg-black border-secondary">
|
|
<div class="card-body p-0">
|
|
|
|
<table class="table table-dark table-striped table-hover align-middle mb-0">
|
|
<thead class="table-secondary text-dark">
|
|
<tr>
|
|
<th>Titel</th>
|
|
<th>ID</th>
|
|
<th>Typ</th>
|
|
<th>Status</th>
|
|
<th>Indexierung</th>
|
|
<th>Versionen</th>
|
|
<th>Aktive Version</th>
|
|
<th>Erstellt</th>
|
|
<th class="text-end">Aktionen</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
|
|
{% for document in documents %}
|
|
<tr>
|
|
|
|
{# Titel #}
|
|
<td>
|
|
<a href="{{ path('admin_document_show', {id: document.id}) }}"
|
|
class="text-light text-decoration-none">
|
|
{{ document.title }}
|
|
</a>
|
|
</td>
|
|
|
|
{# ID #}
|
|
<td class="small text-info">
|
|
{{ document.id }}
|
|
</td>
|
|
|
|
{# Typ #}
|
|
<td>
|
|
{% if document.currentVersion %}
|
|
<span class="badge bg-secondary">
|
|
{{ document.currentVersion.fileTypeLabel }}
|
|
</span>
|
|
{% else %}
|
|
<span class="badge bg-dark border border-secondary">
|
|
-
|
|
</span>
|
|
{% endif %}
|
|
</td>
|
|
|
|
{# Dokument Status #}
|
|
<td>
|
|
{% if document.status == 'ACTIVE' %}
|
|
<span class="badge bg-success">Aktiv</span>
|
|
{% else %}
|
|
<span class="badge bg-secondary">Archiviert</span>
|
|
{% endif %}
|
|
</td>
|
|
|
|
{# Ingest Status #}
|
|
<td>
|
|
{% if document.currentVersion %}
|
|
{% if document.currentVersion.ingestStatus == 'INDEXED' %}
|
|
<span class="badge bg-success">INDEXED</span>
|
|
{% elseif document.currentVersion.ingestStatus == 'PENDING' %}
|
|
<span class="badge bg-warning text-dark">PENDING</span>
|
|
{% elseif document.currentVersion.ingestStatus == 'FAILED' %}
|
|
<span class="badge bg-danger">FAILED</span>
|
|
{% else %}
|
|
<span class="badge bg-dark border border-secondary">
|
|
{{ document.currentVersion.ingestStatus }}
|
|
</span>
|
|
{% endif %}
|
|
{% else %}
|
|
<span class="badge bg-dark border border-secondary">-</span>
|
|
{% endif %}
|
|
</td>
|
|
|
|
{# Version Count #}
|
|
<td>
|
|
{{ document.versions|length }}
|
|
</td>
|
|
|
|
{# Aktive Version #}
|
|
<td>
|
|
{% if document.currentVersion %}
|
|
v{{ document.currentVersion.versionNumber }}
|
|
{% else %}
|
|
-
|
|
{% endif %}
|
|
</td>
|
|
|
|
{# Created At #}
|
|
<td class="small">
|
|
{{ document.createdAt|date('d.m.Y H:i') }}
|
|
</td>
|
|
|
|
{# Aktionen #}
|
|
<td class="text-end">
|
|
|
|
<a class="btn btn-sm btn-outline-info me-2"
|
|
href="{{ path('admin_document_tags_edit', {id: document.id}) }}">
|
|
Tags
|
|
</a>
|
|
|
|
<a class="btn btn-sm btn-outline-light me-2"
|
|
href="{{ path('admin_document_show', {id: document.id}) }}">
|
|
Details
|
|
</a>
|
|
|
|
{% if is_granted('ROLE_SUPER_ADMIN') %}
|
|
<form method="post"
|
|
action="{{ path('admin_document_delete', {id: document.id}) }}"
|
|
class="d-inline"
|
|
onsubmit="return confirm('Dokument wirklich endgültig löschen? Diese Aktion entfernt Dokument, Versionen und Index-Daten.');">
|
|
|
|
<input type="hidden"
|
|
name="_token"
|
|
value="{{ csrf_token('delete_document_' ~ document.id) }}">
|
|
|
|
<button class="btn btn-sm btn-outline-danger">
|
|
Löschen
|
|
</button>
|
|
</form>
|
|
{% endif %}
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
{% endfor %}
|
|
|
|
</tbody>
|
|
</table>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
{% endif %}
|
|
|
|
<div class="mt-4 small text-secondary">
|
|
Hinweis: Das Löschen eines Dokuments entfernt alle Versionen und
|
|
erfordert eine Aktualisierung des NDJSON-Indexes.
|
|
</div>
|
|
|
|
{% endblock %} |