Commits vergleichen

..

2 Commits

Autor SHA1 Nachricht Datum
64f9841240 Promote develop → main (2026-05-22 18:16 UTC) 2026-05-22 20:16:51 +02:00
Claude Code
1b8961ca12 fix(sources): Typ-Filter in der Fall-Quellenuebersicht immer anzeigen
Die Filter-Chips wurden nur eingeblendet, wenn ein Fall Telegram- oder
X-Quellen hatte. Bei reinen Web-Faellen (z.B. in der Org jp_demo) fehlte
die Filterleiste damit komplett. Sie wird jetzt immer angezeigt, sobald
Quellen vorhanden sind, und zeigt zugleich, welche Quellentypen der Fall
enthaelt.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 16:40:33 +00:00
2 geänderte Dateien mit 14 neuen und 15 gelöschten Zeilen

Datei anzeigen

@@ -807,7 +807,7 @@
<script src="/static/js/i18n.js?v=20260513a"></script>
<script src="/static/js/api.js?v=20260423a"></script>
<script src="/static/js/ws.js?v=20260316b"></script>
<script src="/static/js/components.js?v=20260522c"></script>
<script src="/static/js/components.js?v=20260522d"></script>
<script src="/static/js/layout.js?v=20260513f"></script>
<script src="/static/js/pipeline.js?v=20260513d"></script>
<script src="/static/js/app.js?v=20260522c"></script>

Datei anzeigen

@@ -1034,25 +1034,24 @@ const UI = {
html += `<div class="source-lang-chips">${langChips}</div>`;
html += `</div>`;
// Typ-Filter-Chips (nur zeigen, wenn neben Web auch Telegram/X vorkommt)
// Typ-Filter-Chips: immer zeigen, sobald Quellen vorhanden sind. Die Leiste
// zeigt zugleich auf einen Blick, welche Quellentypen der Fall enthaelt.
const typeCounts = { web: 0, telegram: 0, x: 0 };
data.sources.forEach(s => {
const t = s.source_type || 'web';
typeCounts[t] = (typeCounts[t] || 0) + 1;
});
if (typeCounts.telegram > 0 || typeCounts.x > 0) {
const typeMeta = [
{ key: '', label: 'Alle', count: data.sources.length },
{ key: 'web', label: 'Web', count: typeCounts.web },
{ key: 'telegram', label: 'Telegram', count: typeCounts.telegram },
{ key: 'x', label: 'X', count: typeCounts.x },
];
const chips = typeMeta
.filter(t => t.key === '' || t.count > 0)
.map(t => `<button type="button" class="source-type-filter-chip${t.key === '' ? ' active' : ''}" data-type="${t.key}" onclick="App.filterSourceOverview('${t.key}', this)">${t.label} <strong>${t.count}</strong></button>`)
.join('');
html += `<div class="source-type-filter-chips">${chips}</div>`;
}
const typeMeta = [
{ key: '', label: 'Alle', count: data.sources.length },
{ key: 'web', label: 'Web', count: typeCounts.web },
{ key: 'telegram', label: 'Telegram', count: typeCounts.telegram },
{ key: 'x', label: 'X', count: typeCounts.x },
];
const chips = typeMeta
.filter(t => t.key === '' || t.count > 0)
.map(t => `<button type="button" class="source-type-filter-chip${t.key === '' ? ' active' : ''}" data-type="${t.key}" onclick="App.filterSourceOverview('${t.key}', this)">${t.label} <strong>${t.count}</strong></button>`)
.join('');
html += `<div class="source-type-filter-chips">${chips}</div>`;
html += '<div class="source-overview-grid">';
data.sources.forEach(s => {