fix(v2): Queue-Widget ist immer sichtbar (auch ohne aktive Jobs)
Vorher: filterte stale-Jobs raus, bei leerer aktiver Queue display:none → User sah nichts. Jetzt: immer sichtbar mit 'Queue leer · N Worker bereit' wenn nichts aktiv. Tooltip zeigt Stale-Jobs als 'letzter Lauf'-Liste, wenn keine aktiven Jobs da sind. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
273d45ea36
commit
997d59a9a5
@ -10,7 +10,7 @@
|
||||
#}
|
||||
|
||||
<div id="v2-queue-statusbar"
|
||||
style="display:none;position:fixed;bottom:1rem;left:1rem;
|
||||
style="position:fixed;bottom:1rem;left:1rem;
|
||||
background:var(--ecg-card-bg);border:1px solid var(--ecg-light);
|
||||
border-radius:6px;padding:0.4rem 0.8rem;
|
||||
font-family:var(--font-mono);font-size:11px;color:var(--ecg-dark);
|
||||
@ -37,7 +37,8 @@
|
||||
fetch('/api/queue/status')
|
||||
.then(function (r) { return r.json(); })
|
||||
.then(function (qs) {
|
||||
var jobs = (qs.jobs || []).filter(function (j) { return j.status !== 'stale'; });
|
||||
var allJobs = qs.jobs || [];
|
||||
var jobs = allJobs.filter(function (j) { return j.status !== 'stale'; });
|
||||
var processing = jobs.filter(function (j) { return j.status === 'processing'; }).length;
|
||||
var queued = jobs.filter(function (j) { return j.status === 'queued' || j.status === 'pending'; }).length;
|
||||
var completed = jobs.filter(function (j) { return j.status === 'completed'; }).length;
|
||||
@ -47,23 +48,22 @@
|
||||
var text = document.getElementById('v2-queue-status-text');
|
||||
if (!bar || !text) return;
|
||||
|
||||
if (processing + queued + completed + failed === 0) {
|
||||
bar.style.display = 'none';
|
||||
return;
|
||||
}
|
||||
bar.style.display = 'block';
|
||||
|
||||
var workers = qs.workers_running != null ? qs.workers_running : '?';
|
||||
var parts = [];
|
||||
if (processing > 0) parts.push('⏳ ' + processing + ' in Bearbeitung');
|
||||
if (queued > 0) parts.push('⏸ ' + queued + ' wartend');
|
||||
if (completed > 0) parts.push('✓ ' + completed + ' fertig');
|
||||
if (failed > 0) parts.push('✗ ' + failed + ' fehlgeschlagen');
|
||||
if (parts.length === 0) {
|
||||
parts.push('Queue leer · ' + workers + ' Worker bereit');
|
||||
}
|
||||
text.textContent = parts.join(' · ');
|
||||
|
||||
var tip = document.getElementById('v2-queue-tooltip');
|
||||
if (!tip) return;
|
||||
var workers = qs.workers_running != null ? qs.workers_running : '?';
|
||||
var rows = jobs.slice(0, 20).map(function (j) {
|
||||
// Tooltip zeigt bevorzugt aktive Jobs, Stale als „letzter Lauf"-Block.
|
||||
var displayJobs = jobs.length ? jobs : allJobs;
|
||||
var rows = displayJobs.slice(0, 20).map(function (j) {
|
||||
var icon = j.status === 'completed' ? '✓'
|
||||
: j.status === 'processing' ? '⏳'
|
||||
: j.status === 'failed' ? '✗'
|
||||
|
||||
Loading…
Reference in New Issue
Block a user