From 5f6bcac282686c6486c085faa89a9cefe16c4e55 Mon Sep 17 00:00:00 2001 From: Dotty Dotter Date: Tue, 28 Apr 2026 01:47:54 +0200 Subject: [PATCH] feat(#146): Fraktionen je Treffer in Landtag-Suche anzeigen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- app/templates/v2/screens/landtag_suche.html | 42 +++++++++++++++++++-- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/app/templates/v2/screens/landtag_suche.html b/app/templates/v2/screens/landtag_suche.html index 2c0c536..bb39666 100644 --- a/app/templates/v2/screens/landtag_suche.html +++ b/app/templates/v2/screens/landtag_suche.html @@ -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 ? '' + title + '' : title; + var fraktionenHtml = fraktionen.length + ? '
' + + fraktionen.map(function (f) { + return '' + escHtml(f) + ''; + }).join('') + + '
' + : ''; + var actionHtml; if (done) { actionHtml = 'Bewertet → Ansehen'; @@ -264,7 +297,10 @@ function renderRow(item, bl) { return '
' + '
' + escHtml(ds) + '
' - + '
' + titleHtml + '
' + + '
' + + '
' + titleHtml + '
' + + fraktionenHtml + + '
' + '
' + actionHtml + '
' + '
'; }