feat(sources): Quellenuebersicht der Lage nach Typ filterbar
Die Quellenuebersicht innerhalb einer Lage zeigt jetzt Filter-Chips (Alle / Web / Telegram / X) und blendet die Quellen-Boxen nach Quellentyp ein und aus. Die Chips erscheinen nur, wenn neben Web auch Telegram- oder X-Quellen vorkommen. - sources-summary-Endpoint liefert pro Quelle einen source_type, abgeleitet aus dem source-Praefix (X: / Telegram: / sonst Web) - Filter-Chips und data-type in renderSourceOverviewFromSummary - App.filterSourceOverview blendet die Boxen nach Typ - Chip-Styles in style.css Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Dieser Commit ist enthalten in:
@@ -909,6 +909,26 @@ const App = {
|
||||
}
|
||||
},
|
||||
|
||||
/** Quellenuebersicht der Lage nach Quellentyp filtern (Web/Telegram/X). */
|
||||
filterSourceOverview(type, chipEl) {
|
||||
const content = document.getElementById('source-overview-content');
|
||||
if (!content) return;
|
||||
content.querySelectorAll('.source-type-filter-chip').forEach(c => c.classList.remove('active'));
|
||||
if (chipEl) chipEl.classList.add('active');
|
||||
// ein offenes Detail-Panel schliessen
|
||||
const det = content.querySelector('.source-overview-detail');
|
||||
if (det) det.remove();
|
||||
content.querySelectorAll('.source-overview-item.active').forEach(it => {
|
||||
it.classList.remove('active');
|
||||
it.setAttribute('aria-expanded', 'false');
|
||||
});
|
||||
// Quellen-Boxen nach Typ ein-/ausblenden
|
||||
content.querySelectorAll('.source-overview-item').forEach(it => {
|
||||
const t = it.dataset.type || 'web';
|
||||
it.style.display = (!type || t === type) ? '' : 'none';
|
||||
});
|
||||
},
|
||||
|
||||
/** Klick auf eine Quellen-Box: Liste der Artikel inline aufklappen (mutual-exclusive). */
|
||||
toggleSourceOverviewDetail(el) {
|
||||
if (!el) return;
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren