p96 follow up
This commit is contained in:
@@ -77,23 +77,27 @@
|
||||
RAG Dokumente & Wissen
|
||||
</div>
|
||||
|
||||
<a class="nav-link text-light {% if route starts with 'admin_document' %}active fw-bold{% endif %}"
|
||||
href="{{ path('admin_documents') }}">
|
||||
<i class="bi bi-card-list"></i> Dokumente
|
||||
</a>
|
||||
{% if is_granted('ROLE_EDITOR') %}
|
||||
<a class="nav-link text-light {% if route starts with 'admin_document' %}active fw-bold{% endif %}"
|
||||
href="{{ path('admin_documents') }}">
|
||||
<i class="bi bi-card-list"></i> Dokumente
|
||||
</a>
|
||||
|
||||
{# ------------------------- #}
|
||||
{# Tags (Document Routing) #}
|
||||
{# ------------------------- #}
|
||||
<a class="nav-link text-light {% if route starts with 'admin_tags' %}active fw-bold{% endif %}"
|
||||
href="{{ path('admin_tags_index') }}">
|
||||
<i class="bi bi-tag-fill"></i> Tags
|
||||
</a>
|
||||
{# ------------------------- #}
|
||||
{# Tags (Document Routing) #}
|
||||
{# ------------------------- #}
|
||||
<a class="nav-link text-light {% if route starts with 'admin_tags' %}active fw-bold{% endif %}"
|
||||
href="{{ path('admin_tags_index') }}">
|
||||
<i class="bi bi-tag-fill"></i> Tags
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
<a class="nav-link text-light {% if route starts with 'admin_system_agent' %}active fw-bold{% endif %}"
|
||||
href="{{ path('admin_system_agent') }}">
|
||||
<i class="bi bi-robot"></i> Wissensbasis (Chunk-Index)
|
||||
</a>
|
||||
{% if is_granted('ROLE_SUPER_ADMIN') %}
|
||||
<a class="nav-link text-light {% if route starts with 'admin_system_agent' %}active fw-bold{% endif %}"
|
||||
href="{{ path('admin_system_agent') }}">
|
||||
<i class="bi bi-robot"></i> Wissensbasis (Chunk-Index)
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
<hr class="border-secondary">
|
||||
|
||||
@@ -101,15 +105,19 @@
|
||||
RAG System-Profile
|
||||
</div>
|
||||
|
||||
<a class="nav-link text-light {% if route starts with 'admin_system_prompt' %}active fw-bold{% endif %}"
|
||||
href="{{ path('admin_system_prompt') }}">
|
||||
<i class="bi bi-chat-right-dots-fill"></i> System Prompt
|
||||
</a>
|
||||
{% if is_granted('ROLE_SUPER_ADMIN') %}
|
||||
<a class="nav-link text-light {% if route starts with 'admin_system_prompt' %}active fw-bold{% endif %}"
|
||||
href="{{ path('admin_system_prompt') }}">
|
||||
<i class="bi bi-chat-right-dots-fill"></i> System Prompt
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
<a class="nav-link text-light {% if route starts with 'admin_ingest_profile' %}active fw-bold{% endif %}"
|
||||
href="{{ path('admin_ingest_profile_list') }}">
|
||||
<i class="bi bi-search"></i> Indexierungsprofile (Ingest)
|
||||
</a>
|
||||
{% if is_granted('ROLE_KNOWLEDGE_ADMIN') %}
|
||||
<a class="nav-link text-light {% if route starts with 'admin_ingest_profile' %}active fw-bold{% endif %}"
|
||||
href="{{ path('admin_ingest_profile_list') }}">
|
||||
<i class="bi bi-search"></i> Indexierungsprofile (Ingest)
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
<hr class="border-secondary">
|
||||
|
||||
@@ -117,14 +125,16 @@
|
||||
KI-Endpunkte
|
||||
</div>
|
||||
|
||||
<a class="nav-link text-light {% if route starts with 'admin_model_config' %}active fw-bold{% endif %}"
|
||||
href="{{ path('admin_model_config_list') }}">
|
||||
<i class="bi bi-rocket-takeoff-fill"></i> KI-/LLM-Setup
|
||||
</a>
|
||||
<a class="nav-link text-light {% if route starts with 'admin_model_config' %}active fw-bold{% endif %}"
|
||||
href="{{ path('admin_model_config_list') }}#agentLiveTest">
|
||||
<i class="bi bi-rocket-takeoff-fill"></i> KI-Agent Live-Test
|
||||
</a>
|
||||
{% if is_granted('ROLE_KNOWLEDGE_ADMIN') %}
|
||||
<a class="nav-link text-light {% if route starts with 'admin_model_config' %}active fw-bold{% endif %}"
|
||||
href="{{ path('admin_model_config_list') }}">
|
||||
<i class="bi bi-rocket-takeoff-fill"></i> KI-/LLM-Setup
|
||||
</a>
|
||||
<a class="nav-link text-light {% if route starts with 'admin_model_config' %}active fw-bold{% endif %}"
|
||||
href="{{ path('admin_model_config_list') }}#agentLiveTest">
|
||||
<i class="bi bi-rocket-takeoff-fill"></i> KI-Agent Live-Test
|
||||
</a>
|
||||
{% endif %}
|
||||
<hr class="border-secondary">
|
||||
<div class="text-info text-uppercase small mb-2">
|
||||
System-Guiide
|
||||
@@ -142,14 +152,16 @@
|
||||
href="{{ path('admin_jobs') }}">
|
||||
<i class="bi bi-terminal"></i> Indexierungs-Log (Ingest Jobs)
|
||||
</a>
|
||||
<a class="nav-link text-light {% if route starts with 'admin_job' %}active fw-bold{% endif %}"
|
||||
href="{{ path('admin_vector_log') }}">
|
||||
<i class="bi bi-terminal"></i> Vector-Log Python
|
||||
</a>
|
||||
<a class="nav-link text-light {% if route starts with 'admin_job' %}active fw-bold{% endif %}"
|
||||
href="{{ path('admin_system_logs_index') }}">
|
||||
<i class="bi bi-terminal"></i> System-Logs
|
||||
</a>
|
||||
{% if is_granted('ROLE_SUPER_ADMIN') %}
|
||||
<a class="nav-link text-light {% if route starts with 'admin_vector_log' %}active fw-bold{% endif %}"
|
||||
href="{{ path('admin_vector_log') }}">
|
||||
<i class="bi bi-terminal"></i> Vector-Log Python
|
||||
</a>
|
||||
<a class="nav-link text-light {% if route starts with 'admin_system_logs' %}active fw-bold{% endif %}"
|
||||
href="{{ path('admin_system_logs_index') }}">
|
||||
<i class="bi bi-terminal"></i> System-Logs
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
</nav>
|
||||
</aside>
|
||||
|
||||
@@ -226,19 +226,25 @@
|
||||
physischen Retrieval-Artefakte wieder gerade.
|
||||
</div>
|
||||
|
||||
<form method="post"
|
||||
action="{{ path('admin_global_reindex') }}"
|
||||
onsubmit="return confirm('Global Reindex starten? Dies kann mehrere Minuten dauern.');">
|
||||
{% if is_granted('ROLE_SUPER_ADMIN') %}
|
||||
<form method="post"
|
||||
action="{{ path('admin_global_reindex') }}"
|
||||
onsubmit="return confirm('Global Reindex starten? Dies kann mehrere Minuten dauern.');">
|
||||
|
||||
<input type="hidden"
|
||||
name="_token"
|
||||
value="{{ csrf_token('global_reindex') }}">
|
||||
<input type="hidden"
|
||||
name="_token"
|
||||
value="{{ csrf_token('global_reindex') }}">
|
||||
|
||||
<button type="submit"
|
||||
class="btn btn-sm btn-outline-info">
|
||||
Global Reindex starten
|
||||
</button>
|
||||
</form>
|
||||
<button type="submit"
|
||||
class="btn btn-sm btn-outline-info">
|
||||
Global Reindex starten
|
||||
</button>
|
||||
</form>
|
||||
{% else %}
|
||||
<div class="alert alert-dark border border-secondary text-light small mb-0">
|
||||
Global Reindex ist Super-Admins vorbehalten.
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if anyHealthIssue %}
|
||||
<div class="alert alert-dark border border-warning text-light small mt-3 mb-0">
|
||||
|
||||
@@ -14,10 +14,12 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a href="{{ path('admin_document_new') }}"
|
||||
class="btn btn-sm btn-outline-info">
|
||||
Neues Dokument
|
||||
</a>
|
||||
{% if is_granted('ROLE_EDITOR') %}
|
||||
<a href="{{ path('admin_document_new') }}"
|
||||
class="btn btn-sm btn-outline-info">
|
||||
Neues Dokument
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{% for message in app.flashes('success') %}
|
||||
@@ -189,10 +191,12 @@
|
||||
|
||||
<td class="text-end">
|
||||
<div class="d-flex justify-content-end flex-wrap gap-2">
|
||||
<a class="btn btn-sm btn-outline-info"
|
||||
href="{{ path('admin_document_tags_edit', {id: document.id}) }}">
|
||||
Tags
|
||||
</a>
|
||||
{% if is_granted('ROLE_EDITOR') %}
|
||||
<a class="btn btn-sm btn-outline-info"
|
||||
href="{{ path('admin_document_tags_edit', {id: document.id}) }}">
|
||||
Tags
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
<a class="btn btn-sm btn-outline-light"
|
||||
href="{{ path('admin_document_show', {id: document.id}) }}">
|
||||
|
||||
@@ -138,7 +138,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if is_granted('ROLE_SUPER_ADMIN') %}
|
||||
{% if is_granted('ROLE_EDITOR') %}
|
||||
<div class="d-flex justify-content-end">
|
||||
<button class="btn btn-outline-info">
|
||||
Version hochladen
|
||||
|
||||
@@ -13,10 +13,12 @@
|
||||
</div>
|
||||
|
||||
<div class="d-flex flex-wrap gap-2">
|
||||
<a href="{{ path('admin_document_tags_edit', {id: document.id}) }}"
|
||||
class="btn btn-sm btn-outline-info">
|
||||
Tags bearbeiten
|
||||
</a>
|
||||
{% if is_granted('ROLE_EDITOR') %}
|
||||
<a href="{{ path('admin_document_tags_edit', {id: document.id}) }}"
|
||||
class="btn btn-sm btn-outline-info">
|
||||
Tags bearbeiten
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
<a href="{{ path('admin_documents') }}"
|
||||
class="btn btn-sm btn-outline-secondary">
|
||||
@@ -96,26 +98,30 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if is_granted('ROLE_SUPER_ADMIN') %}
|
||||
{% if is_granted('ROLE_EDITOR') or is_granted('ROLE_SUPER_ADMIN') %}
|
||||
<hr class="border-secondary">
|
||||
|
||||
<div class="d-flex flex-wrap gap-2">
|
||||
<a href="{{ path('admin_document_version_new', {id: document.id}) }}"
|
||||
class="btn btn-sm btn-outline-info">
|
||||
Neue Version
|
||||
</a>
|
||||
{% if is_granted('ROLE_EDITOR') %}
|
||||
<a href="{{ path('admin_document_version_new', {id: document.id}) }}"
|
||||
class="btn btn-sm btn-outline-info">
|
||||
Neue Version
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
<form method="post"
|
||||
action="{{ path('admin_document_delete', {id: document.id}) }}"
|
||||
class="d-inline"
|
||||
onsubmit="return confirm('Dokument wirklich löschen? Der Inhalt wird per Delete-Job aus dem Index entfernt.');">
|
||||
<input type="hidden"
|
||||
name="_token"
|
||||
value="{{ csrf_token('delete_document_' ~ document.id) }}">
|
||||
<button class="btn btn-sm btn-outline-danger">
|
||||
Dokument löschen
|
||||
</button>
|
||||
</form>
|
||||
{% 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 löschen? Der Inhalt wird per Delete-Job aus dem Index entfernt.');">
|
||||
<input type="hidden"
|
||||
name="_token"
|
||||
value="{{ csrf_token('delete_document_' ~ document.id) }}">
|
||||
<button class="btn btn-sm btn-outline-danger">
|
||||
Dokument löschen
|
||||
</button>
|
||||
</form>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
@@ -128,10 +134,12 @@
|
||||
<div class="d-flex justify-content-between align-items-center mb-3">
|
||||
<h5 class="text-info mb-0">Tags</h5>
|
||||
|
||||
<a href="{{ path('admin_document_tags_edit', {id: document.id}) }}"
|
||||
class="btn btn-sm btn-outline-light">
|
||||
Bearbeiten
|
||||
</a>
|
||||
{% if is_granted('ROLE_EDITOR') %}
|
||||
<a href="{{ path('admin_document_tags_edit', {id: document.id}) }}"
|
||||
class="btn btn-sm btn-outline-light">
|
||||
Bearbeiten
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{% if document.tags is empty %}
|
||||
@@ -172,7 +180,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if is_granted('ROLE_SUPER_ADMIN') %}
|
||||
{% if is_granted('ROLE_EDITOR') %}
|
||||
<a href="{{ path('admin_document_version_new', {id: document.id}) }}"
|
||||
class="btn btn-sm btn-outline-info">
|
||||
Neue Version
|
||||
@@ -258,7 +266,7 @@
|
||||
<td class="text-end">
|
||||
<div class="d-flex justify-content-end flex-wrap gap-2">
|
||||
{% if version.isActive %}
|
||||
{% if version.ingestStatus in ['PENDING', 'FAILED'] and is_granted('ROLE_SUPER_ADMIN') %}
|
||||
{% if version.ingestStatus in ['PENDING', 'FAILED'] and is_granted('ROLE_EDITOR') %}
|
||||
<form method="post"
|
||||
action="{{ path('admin_document_version_ingest', {versionId: version.id}) }}"
|
||||
class="d-inline"
|
||||
@@ -276,7 +284,7 @@
|
||||
</span>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if is_granted('ROLE_SUPER_ADMIN') %}
|
||||
{% if is_granted('ROLE_EDITOR') %}
|
||||
<form method="post"
|
||||
action="{{ path('admin_document_version_activate', {versionId: version.id}) }}"
|
||||
class="d-inline"
|
||||
|
||||
@@ -28,10 +28,12 @@
|
||||
<div class="d-flex justify-content-between align-items-center mb-4">
|
||||
<h1 class="h3"><i class="bi bi-search"></i> Indexierungsprofile</h1>
|
||||
|
||||
<a class="btn btn-sm btn-outline-info"
|
||||
href="{{ path('admin_ingest_profile_create') }}">
|
||||
Neues Profil anlegen
|
||||
</a>
|
||||
{% if is_granted('ROLE_SUPER_ADMIN') %}
|
||||
<a class="btn btn-sm btn-outline-info"
|
||||
href="{{ path('admin_ingest_profile_create') }}">
|
||||
Neues Profil anlegen
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{# ========================================================= #}
|
||||
|
||||
@@ -106,9 +106,10 @@
|
||||
});
|
||||
</script>
|
||||
|
||||
<div class="card bg-black border-secondary text-light mb-4 shadow-sm">
|
||||
<div class="card-body">
|
||||
<h5 class="text-info mb-3">Neuen Tag hinzufügen</h5>
|
||||
{% if is_granted('ROLE_EDITOR') %}
|
||||
<div class="card bg-black border-secondary text-light mb-4 shadow-sm">
|
||||
<div class="card-body">
|
||||
<h5 class="text-info mb-3">Neuen Tag hinzufügen</h5>
|
||||
|
||||
<form method="post" action="{{ path('admin_tags_create') }}" class="row g-3">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token('admin_tag_create') }}"/>
|
||||
@@ -154,8 +155,9 @@
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="card bg-black border-secondary text-light shadow-sm">
|
||||
<div class="card-body">
|
||||
@@ -207,23 +209,27 @@
|
||||
</td>
|
||||
<td>{{ tag.description ?: '-' }}</td>
|
||||
<td class="text-end">
|
||||
<a href="{{ path('admin_tags_assign', { id: tag.id }) }}"
|
||||
class="btn btn-sm btn-outline-info me-2">
|
||||
Zuweisen
|
||||
</a>
|
||||
{% if is_granted('ROLE_EDITOR') %}
|
||||
<a href="{{ path('admin_tags_assign', { id: tag.id }) }}"
|
||||
class="btn btn-sm btn-outline-info me-2">
|
||||
Zuweisen
|
||||
</a>
|
||||
|
||||
<form method="post"
|
||||
action="{{ path('admin_tags_delete', {id: tag.id}) }}"
|
||||
style="display:inline-block;">
|
||||
<input type="hidden"
|
||||
name="_token"
|
||||
value="{{ csrf_token('admin_tag_delete_' ~ tag.id) }}"/>
|
||||
<form method="post"
|
||||
action="{{ path('admin_tags_delete', {id: tag.id}) }}"
|
||||
style="display:inline-block;">
|
||||
<input type="hidden"
|
||||
name="_token"
|
||||
value="{{ csrf_token('admin_tag_delete_' ~ tag.id) }}"/>
|
||||
|
||||
<button class="btn btn-sm btn-outline-danger"
|
||||
onclick="return confirm('Tag wirklich löschen? Zuweisungen werden entfernt.')">
|
||||
Löschen
|
||||
</button>
|
||||
</form>
|
||||
<button class="btn btn-sm btn-outline-danger"
|
||||
onclick="return confirm('Tag wirklich löschen? Zuweisungen werden entfernt.')">
|
||||
Löschen
|
||||
</button>
|
||||
</form>
|
||||
{% else %}
|
||||
<span class="text-muted small">Nur Ansicht</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% else %}
|
||||
|
||||
Reference in New Issue
Block a user