feat(#146): Fraktionen je Treffer in Landtag-Suche anzeigen

Adapter liefert fraktionen schon mit, das Frontend ignorierte sie bisher.
Treffer-Zeile bekommt jetzt unter dem Titel kleine Teal-Chips fuer jede
einreichende Fraktion (Beispiel: 'CDU SPD' bei kollektiven Antraegen).

Stylistisch konsistent zum Score-Chip-System (color-mix mit ecg-teal),
mono Font, uppercase 10px — bleibt auch bei vielen Fraktionen lesbar.

Closes #146
This commit is contained in:
Dotty Dotter 2026-04-28 01:47:54 +02:00
parent 09c29cac69
commit 5f6bcac282

View File

@ -78,12 +78,18 @@
min-width: 100px;
padding-top: 2px;
}
.ls-main {
flex: 1;
display: flex;
flex-direction: column;
gap: 4px;
min-width: 0;
}
.ls-title {
font-family: var(--font-display);
font-size: 14px;
font-weight: 700;
color: var(--ecg-dark);
flex: 1;
line-height: 1.35;
}
.ls-title a {
@ -91,6 +97,24 @@
text-decoration: none;
}
.ls-title a:hover { text-decoration: underline; }
.ls-fraktionen {
display: flex;
gap: 6px;
flex-wrap: wrap;
margin-top: 2px;
}
.ls-fraktion {
display: inline-block;
padding: 1px 7px;
background: color-mix(in srgb, var(--ecg-teal) 10%, transparent);
color: var(--ecg-teal);
font-family: var(--font-mono);
font-size: 10px;
font-weight: 700;
letter-spacing: 0.04em;
border-radius: 3px;
text-transform: uppercase;
}
.ls-actions { flex-shrink: 0; }
.ls-btn-analyse {
font-family: var(--font-mono);
@ -246,13 +270,22 @@ async function lsSearch(e) {
function renderRow(item, bl) {
var ds = item.drucksache || '';
var title = escHtml(item.title || item.titel || ds);
var url = item.url || '';
var url = item.url || item.link || '';
var done = lsCheckedIds.has(ds);
var fraktionen = Array.isArray(item.fraktionen) ? item.fraktionen : [];
var titleHtml = url
? '<a href="' + escHtml(url) + '" target="_blank" rel="noopener">' + title + '</a>'
: title;
var fraktionenHtml = fraktionen.length
? '<div class="ls-fraktionen">'
+ fraktionen.map(function (f) {
return '<span class="ls-fraktion">' + escHtml(f) + '</span>';
}).join('')
+ '</div>'
: '';
var actionHtml;
if (done) {
actionHtml = '<span class="ls-badge-done">Bewertet → <a href="/antrag/' + encodeURIComponent(ds) + '" style="color:inherit;">Ansehen</a></span>';
@ -264,7 +297,10 @@ function renderRow(item, bl) {
return '<div class="ls-row">'
+ '<div class="ls-drucksache">' + escHtml(ds) + '</div>'
+ '<div class="ls-title">' + titleHtml + '</div>'
+ '<div class="ls-main">'
+ '<div class="ls-title">' + titleHtml + '</div>'
+ fraktionenHtml
+ '</div>'
+ '<div class="ls-actions">' + actionHtml + '</div>'
+ '</div>';
}