cleanup and harden document and ingest service

This commit is contained in:
team 1
2026-02-17 15:42:09 +01:00
parent 2981716c3d
commit 0b96ce6188
5 changed files with 236 additions and 240 deletions

View File

@@ -8,139 +8,150 @@
← Zurück
</a>
<h1 class="h4 mb-3">{{ document.title }}</h1>
{% if document %}
<h1 class="h4 mb-3">{{ document.title }}</h1>
<div class="card bg-black text-info border-secondary mb-4">
<div class="card-body">
<div class="card bg-black text-info border-secondary mb-4">
<div class="card-body">
<div class="mb-2">
<strong>Status:</strong>
{% if document.status == 'ACTIVE' %}
<span class="badge bg-success">Aktiv</span>
{% else %}
<span class="badge bg-secondary">Archiviert</span>
{% endif %}
</div>
<div class="mb-2">
<strong>Erstellt von:</strong>
{{ document.createdBy.email }}
</div>
<div class="mb-2">
<strong>Erstellt am:</strong>
{{ document.createdAt|date('d.m.Y H:i') }}
</div>
<div class="mb-2">
<strong>Aktive Version:</strong>
{% if document.currentVersion %}
v{{ document.currentVersion.versionNumber }}
{% else %}
-
{% endif %}
</div>
<div class="mb-2">
<strong>Status:</strong>
{% if document.status == 'ACTIVE' %}
<span class="badge bg-success">Aktiv</span>
{% else %}
<span class="badge bg-secondary">Archiviert</span>
{% endif %}
</div>
<div class="mb-2">
<strong>Erstellt von:</strong>
{{ document.createdBy.email }}
</div>
<div class="mb-2">
<strong>Erstellt am:</strong>
{{ document.createdAt|date('d.m.Y H:i') }}
</div>
<div class="mb-2">
<strong>Aktive Version:</strong>
{% if document.currentVersion %}
v{{ document.currentVersion.versionNumber }}
{% else %}
-
{% endif %}
</div>
</div>
</div>
<h2 class="h5 mb-3">Versionen</h2>
<a href="{{ path('admin_document_version_new', {id: document.id}) }}"
class="btn btn-sm btn-light mb-3">
+ Neue Version
</a>
{% if document.versions is empty %}
<div class="alert alert-secondary">
Keine Versionen vorhanden.
</div>
{% else %}
<div class="card bg-black text-info border-secondary">
<div class="card-body p-0">
<table class="table table-dark table-hover mb-0">
<thead>
<tr>
<th>Version</th>
<th>Aktiv</th>
<th>Ingest</th>
<th>Checksum</th>
<th>Erstellt von</th>
<th>Datum</th>
<th>Aktion</th>
</tr>
</thead>
<tbody>
{% for version in document.versions %}
<h2 class="h5 mb-3">Versionen</h2>
<a href="{{ path('admin_document_version_new', {id: document.id}) }}"
class="btn btn-sm btn-light mb-3">
+ Neue Version
</a>
{% if document.versions is empty %}
<div class="alert alert-secondary">
Keine Versionen vorhanden.
</div>
{% else %}
<div class="card bg-black text-info border-secondary">
<div class="card-body p-0">
<table class="table table-dark table-hover mb-0">
<thead>
<tr>
<td>v{{ version.versionNumber }}</td>
<th>Version</th>
<th>Aktiv</th>
<th>Ingest</th>
<th>Checksum</th>
<th>Erstellt von</th>
<th>Datum</th>
<th>Aktion</th>
</tr>
</thead>
<tbody>
{% for version in document.versions %}
<tr>
<td>v{{ version.versionNumber }}</td>
<td>
{% if version.isActive %}
<span class="badge bg-success">Ja</span>
{% else %}
<span class="badge bg-secondary">Nein</span>
{% endif %}
</td>
<td>
{% if version.isActive %}
<span class="badge bg-success">Ja</span>
{% else %}
<span class="badge bg-secondary">Nein</span>
{% endif %}
</td>
<td>
{% if version.ingestStatus == 'INDEXED' %}
<span class="badge bg-success">INDEXED</span>
{% elseif version.ingestStatus == 'RUNNING' %}
<span class="badge bg-warning text-dark">RUNNING</span>
{% elseif version.ingestStatus == 'FAILED' %}
<span class="badge bg-danger">FAILED</span>
{% else %}
<span class="badge bg-secondary">PENDING</span>
{% endif %}
</td>
<td>
{% if version.ingestStatus == 'INDEXED' %}
<span class="badge bg-success">INDEXED</span>
{% elseif version.ingestStatus == 'RUNNING' %}
<span class="badge bg-warning text-dark">RUNNING</span>
{% elseif version.ingestStatus == 'FAILED' %}
<span class="badge bg-danger">FAILED</span>
{% else %}
<span class="badge bg-secondary">PENDING</span>
{% endif %}
</td>
<td>
{{ version.checksum[:10] }}...
</td>
<td>
{{ version.checksum[:10] }}...
</td>
<td>
{{ version.createdBy.email }}
</td>
<td>
{{ version.createdBy.email }}
</td>
<td>
{{ version.createdAt|date('d.m.Y H:i') }}
</td>
<td>
{% if version.isActive %}
<td>
{{ version.createdAt|date('d.m.Y H:i') }}
</td>
<td>
{% if version.isActive %}
{# Optional: manuelles Re-Ingest nur bei PENDING/FAILED #}
{% if version.ingestStatus in ['PENDING', 'FAILED'] %}
{# Optional: manuelles Re-Ingest nur bei PENDING/FAILED #}
{% if version.ingestStatus in ['PENDING', 'FAILED'] %}
<form method="post"
action="{{ path('admin_document_version_ingest', {versionId: version.id}) }}"
style="display:inline;">
<input type="hidden" name="_token" value="{{ csrf_token('ingest_version') }}">
<button class="btn btn-sm btn-outline-info">
Ingest starten
</button>
</form>
<form method="post"
action="{{ path('admin_document_version_ingest', {versionId: version.id}) }}"
style="display:inline;">
<input type="hidden" name="_token"
value="{{ csrf_token('ingest_version') }}">
<button class="btn btn-sm btn-outline-info">
Ingest starten
</button>
</form>
{% else %}
<span class="text-success">Ingested</span>
{% endif %}
{% else %}
<span class="text-success">Ingested</span>
<form method="post"
action="{{ path('admin_document_version_activate', {versionId: version.id}) }}"
style="display:inline;">
<input type="hidden" name="_token"
value="{{ csrf_token('activate_version') }}">
<button class="btn btn-sm btn-outline-light">
Aktivieren
</button>
</form>
{% endif %}
</td>
{% else %}
<form method="post"
action="{{ path('admin_document_version_activate', {versionId: version.id}) }}"
style="display:inline;">
<input type="hidden" name="_token" value="{{ csrf_token('activate_version') }}">
<button class="btn btn-sm btn-outline-light">
Aktivieren
</button>
</form>
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
{% endif %}
{% else %}
<h1 class="h4 mb-3">Ein Fehler trat auf</h1>
<h2 class="h5 mb-3">Fehler:</h2>
{% for message in app.flashes('danger') %}
<div class="alert alert-danger">
{{ message }}
</div>
{% endfor %}
{% endif %}
{% endblock %}