Quellenverwaltung: Filter, Sortierung, Artikelzähler, Umlaute

- Filter-Dropdowns für Typ, Kategorie und Status
- Sortierbare Spalten (Name, Domain, Typ, Kategorie, Artikel, Status)
- Artikel-Spalte zeigt article_count an
- Umlaute korrigiert (Löschen, Übernehmen, Läuft ab, Hinzugefügt von)
- 53 kaputte/doppelte Quellen bereinigt (Bashinho, Netzpolitik, Facebook)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Dieser Commit ist enthalten in:
claude-dev
2026-03-08 14:51:31 +01:00
Ursprung 801944a7ea
Commit dbd5568296
3 geänderte Dateien mit 118 neuen und 22 gelöschten Zeilen

Datei anzeigen

@@ -183,7 +183,7 @@
<th>Organisation</th>
<th>Typ</th>
<th>Max Nutzer</th>
<th>Laeuft ab</th>
<th>Läuft ab</th>
<th>Aktionen</th>
</tr>
</thead>
@@ -205,8 +205,31 @@
<!-- Grundquellen -->
<div class="section active" id="sub-global-sources">
<div class="action-bar">
<div style="display:flex;align-items:center;gap:12px;">
<div style="display:flex;align-items:center;gap:12px;flex-wrap:wrap;">
<input type="text" class="search-input" id="globalSourceSearch" placeholder="Grundquelle suchen...">
<select class="filter-select" id="globalFilterType" onchange="filterGlobalSources()">
<option value="">Alle Typen</option>
<option value="rss_feed">RSS-Feed</option>
<option value="web_source">Webquelle</option>
</select>
<select class="filter-select" id="globalFilterCategory" onchange="filterGlobalSources()">
<option value="">Alle Kategorien</option>
<option value="nachrichtenagentur">Nachrichtenagentur</option>
<option value="oeffentlich-rechtlich">Öffentlich-Rechtlich</option>
<option value="qualitaetszeitung">Qualitätszeitung</option>
<option value="behoerde">Behörde</option>
<option value="fachmedien">Fachmedien</option>
<option value="think-tank">Think-Tank</option>
<option value="international">International</option>
<option value="regional">Regional</option>
<option value="boulevard">Boulevard</option>
<option value="sonstige">Sonstige</option>
</select>
<select class="filter-select" id="globalFilterStatus" onchange="filterGlobalSources()">
<option value="">Alle Status</option>
<option value="active">Aktiv</option>
<option value="inactive">Inaktiv</option>
</select>
<span class="text-secondary" id="globalSourceCount"></span>
</div>
<button class="btn btn-secondary" id="discoverSourceBtn">Erkennen</button>
@@ -217,12 +240,13 @@
<table>
<thead>
<tr>
<th>Name</th>
<th class="sortable" data-sort="name" onclick="sortGlobalSources('name')">Name <span class="sort-icon"></span></th>
<th>URL</th>
<th>Domain</th>
<th>Typ</th>
<th>Kategorie</th>
<th>Status</th>
<th class="sortable" data-sort="domain" onclick="sortGlobalSources('domain')">Domain <span class="sort-icon"></span></th>
<th class="sortable" data-sort="source_type" onclick="sortGlobalSources('source_type')">Typ <span class="sort-icon"></span></th>
<th class="sortable" data-sort="category" onclick="sortGlobalSources('category')">Kategorie <span class="sort-icon"></span></th>
<th class="sortable" data-sort="article_count" onclick="sortGlobalSources('article_count')">Artikel <span class="sort-icon"></span></th>
<th class="sortable" data-sort="status" onclick="sortGlobalSources('status')">Status <span class="sort-icon"></span></th>
<th>Aktionen</th>
</tr>
</thead>
@@ -250,7 +274,7 @@
<th>Typ</th>
<th>Kategorie</th>
<th>Organisation</th>
<th>Hinzugefuegt von</th>
<th>Hinzugefügt von</th>
<th>Aktionen</th>
</tr>
</thead>