fix: Neubewertungs-Button im Explorer hinzugefügt
This commit is contained in:
parent
a3e4dab633
commit
9615ddd51f
@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import { onMount } from 'svelte';
|
||||
import { fetchKetten, fetchKette, fetchVorlage, type KetteKurz, type KetteDetail, type VorlageDetail, type Paginated } from '$lib/api';
|
||||
import { fetchKetten, fetchKette, fetchVorlage, reevalVorlage, fetchJobStatus, type KetteKurz, type KetteDetail, type VorlageDetail, type Paginated } from '$lib/api';
|
||||
import { formatDate, typLabel } from '$lib/status';
|
||||
import { filters, mergeFilterParams, filterVersion } from '$lib/filters.svelte';
|
||||
import Ampel from '$lib/components/Ampel.svelte';
|
||||
@ -31,6 +31,40 @@
|
||||
let mobileTab = $state<'liste' | 'kette' | 'detail'>('liste');
|
||||
let showVolltext = $state(false);
|
||||
let showVersionen = $state(false);
|
||||
let showReeval = $state(false);
|
||||
let reevalAnmerkung = $state('');
|
||||
let reevalStatus = $state<'idle' | 'running' | 'done' | 'error'>('idle');
|
||||
let reevalError = $state('');
|
||||
|
||||
async function triggerReeval() {
|
||||
if (!selectedVorlage) return;
|
||||
reevalStatus = 'running';
|
||||
reevalError = '';
|
||||
try {
|
||||
const { job_id } = await reevalVorlage(selectedVorlage.id, reevalAnmerkung);
|
||||
for (let i = 0; i < 60; i++) {
|
||||
await new Promise(r => setTimeout(r, 3000));
|
||||
const status = await fetchJobStatus(job_id);
|
||||
if (status.status === 'done') {
|
||||
reevalStatus = 'done';
|
||||
selectedVorlage = await fetchVorlage(selectedVorlage!.id);
|
||||
showReeval = false;
|
||||
reevalAnmerkung = '';
|
||||
return;
|
||||
}
|
||||
if (status.status === 'error') {
|
||||
reevalStatus = 'error';
|
||||
reevalError = status.error || 'Unbekannter Fehler';
|
||||
return;
|
||||
}
|
||||
}
|
||||
reevalStatus = 'error';
|
||||
reevalError = 'Timeout nach 3 Minuten';
|
||||
} catch (e) {
|
||||
reevalStatus = 'error';
|
||||
reevalError = e instanceof Error ? e.message : 'Fehler';
|
||||
}
|
||||
}
|
||||
|
||||
const STRANG_TABS = [
|
||||
{ value: '', label: 'Alle' },
|
||||
@ -489,6 +523,44 @@
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<!-- Neu bewerten -->
|
||||
<div class="rounded-xl border border-gray-200 p-4">
|
||||
{#if !showReeval}
|
||||
<button onclick={() => showReeval = true}
|
||||
class="text-sm text-green-600 hover:text-green-800 font-medium flex items-center gap-1.5">
|
||||
<span>🔄</span> Neu bewerten lassen
|
||||
</button>
|
||||
{:else}
|
||||
<h3 class="text-sm font-semibold text-gray-900 mb-2">KI-Neubewertung anstoßen</h3>
|
||||
<textarea bind:value={reevalAnmerkung} placeholder="Anmerkungen für die KI (optional)"
|
||||
class="w-full border border-gray-300 rounded-lg px-3 py-2 text-sm mb-3 h-20 resize-y focus:ring-2 focus:ring-green-500"
|
||||
disabled={reevalStatus === 'running'}></textarea>
|
||||
<div class="flex gap-2 items-center">
|
||||
<button onclick={triggerReeval} disabled={reevalStatus === 'running'}
|
||||
class="bg-green-600 text-white px-4 py-2 rounded-lg text-sm font-medium hover:bg-green-700 disabled:opacity-50 transition-colors">
|
||||
{#if reevalStatus === 'running'}
|
||||
<span class="inline-flex items-center gap-2">
|
||||
<span class="animate-spin h-4 w-4 border-2 border-white border-t-transparent rounded-full"></span>
|
||||
KI bewertet…
|
||||
</span>
|
||||
{:else}
|
||||
Bewertung starten
|
||||
{/if}
|
||||
</button>
|
||||
{#if reevalStatus !== 'running'}
|
||||
<button onclick={() => { showReeval = false; reevalStatus = 'idle'; }}
|
||||
class="text-sm text-gray-500 hover:text-gray-700">Abbrechen</button>
|
||||
{/if}
|
||||
</div>
|
||||
{#if reevalStatus === 'done'}
|
||||
<p class="mt-2 text-sm text-green-700 font-medium">✅ Bewertung aktualisiert!</p>
|
||||
{/if}
|
||||
{#if reevalStatus === 'error'}
|
||||
<p class="mt-2 text-sm text-red-600">❌ {reevalError}</p>
|
||||
{/if}
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<!-- Volltext -->
|
||||
{#if selectedVorlage.volltext_clean}
|
||||
<div class="rounded-xl border border-gray-200 p-5">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user