From 09b8fcabae43514a0ce23d8f60a5136009966199 Mon Sep 17 00:00:00 2001 From: Jeuner <62662523+Jeuners@users.noreply.github.com> Date: Tue, 25 Aug 2026 00:41:35 +0200 Subject: [PATCH] =?UTF-8?q?redesign:=20Deck-Karte=20entr=C3=BCmpelt=20-=20?= =?UTF-8?q?weniger=20Chips,=20klarere=20Struktur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ueber die Session angesammelte Badges (3x separates "ungeprüft"-Chip fuer Name/Rueckrufnummer/E-Mail, je eigene .meta-Zeile) sahen zugemuellt aus. - Ein einziger dezenter Hinweis (.hinweis-klein, kein Rahmen/Chip, kleiner kursiver Text) statt Border-Pill, direkt am Namen. - Rueckrufnummer + E-Mail jetzt auf einer gemeinsamen Zeile mit einem gemeinsamen "ungeprüft"-Hinweis statt zwei einzelnen Chips. - "vermutete Korrektur" (E-Mail-@-Reparatur) bleibt als eigener, staerkerer Warnhinweis (.warn-klein, andere Bedeutung: Daten evtl. falsch, nicht nur ungeprueft). - Titel jetzt eigene Zeile statt im Kopf mit Badges zu teilen - bessere Zeilenumbrueche bei langen Namen, Dringlichkeits-Badge + Melde-Button bilden eine eigene Kopfzeile oben rechts. Nebenbei Bug behoben: rueckrufZeile/emailZeile hiessen im Template noch beim alten Namen (kontaktZeile) - haette beim ersten echten Kartenrendering gecrasht, mit Playwright vor dem Commit abgefangen. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_015vtvcyNkapuDh583643hNs --- pipe/server.py | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/pipe/server.py b/pipe/server.py index 47d93cd..a22c4ad 100644 --- a/pipe/server.py +++ b/pipe/server.py @@ -531,7 +531,9 @@ border-radius:9px;padding:9px 11px;margin-bottom:9px;cursor:grab} .karte:active{cursor:grabbing} .karte.zieht{opacity:.4} .kopf{display:flex;align-items:center;gap:7px;flex-wrap:wrap} -.titel{font-weight:650;font-size:14px} +.titel{font-weight:650;font-size:14.5px;margin-top:4px;line-height:1.3} +.hinweis-klein{color:var(--muted);font-size:11px;font-weight:400;font-style:italic;white-space:nowrap} +.warn-klein{color:var(--unklar);font-size:11px;font-weight:600;white-space:nowrap} .dring{color:#fff;font-size:9px;font-weight:700;text-transform:uppercase;padding:2px 6px; border-radius:999px;letter-spacing:.04em;margin-left:auto} .meta{color:var(--muted);font-size:12px;margin:3px 0 5px;font-variant-numeric:tabular-nums} @@ -658,32 +660,38 @@ function karte(d){ const notfallOffen=d.dringlichkeit==='notfall'&&d.stapel!==STAPEL[STAPEL.length-1]; // Name kommt vom LLM aus dem Transkript (Vermutung, kein Abgleich) - im // Unterschied zum kontakt-badge (echter Rufnummer-Abgleich gegen das - // Adressbuch). Quelle sichtbar machen, damit ein spaeterer Abgleich beider - // (Text vs. Telefon) auf unterscheidbaren Daten aufsetzen kann. - const quelleTag=d.name?`🎙️ ungeprüft`:''; + // Adressbuch). Redesign: statt 3x einer eigenen "ungeprüft"-Chip (Name, + // Rueckrufnummer, E-Mail einzeln - sah zugemuellt aus) jetzt ein einziger, + // dezenter Hinweis (kein Rahmen/Chip, nur kleiner Text) direkt am Namen, + // plus Rueckrufnummer+E-Mail auf einer gemeinsamen Zeile mit nur einem + // gemeinsamen Hinweis am Ende statt Einzel-Badges pro Feld. + const quelleTag=d.name?`🎙️ ungeprüft`:''; // Genannte Rueckrufnummer nur zeigen, wenn sie sich von der CLIP-Nummer // unterscheidet - sonst reine Wiederholung. Genau der Fall (Anruf von // fremdem Anschluss, Rueckruf auf eigener Nummer gewuenscht) ging bisher // im UI unter, obwohl er extrahiert wird (auswertung.rueckrufnummer). const abweichend=d.rueckrufnummer&&waehlbar(d.rueckrufnummer)!==waehlbar(d.nummer); - const rueckrufZeile=abweichend?`
☎️ Rückruf an: ${nummerLink({...d,nummer:d.rueckrufnummer})} - 🎙️ ungeprüft
`:''; // email_korrigiert: Whisper transkribiert gesprochenes "at" beim Diktieren // manchmal als Punkt statt "@" (z.B. "gdg.dillenberg.net" statt // "gdg@dillenberg.net") - categorize.py repariert das als Vorschlag, aber - // mehrdeutig (koennte auch eine genannte Subdomain sein), deshalb hier - // sichtbar als Vermutung markiert statt stillschweigend uebernommen. - const emailZeile=d.email?`
📧 ${esc(d.email)} - ${d.email_korrigiert?`⚠️ vermutete Korrektur` - :`🎙️ ungeprüft`}
`:''; + // mehrdeutig (koennte auch eine genannte Subdomain sein), deshalb sichtbar + // als Vermutung markiert statt stillschweigend uebernommen - das ist ein + // eigener, staerkerer Warnhinweis (Daten evtl. FALSCH, nicht nur ungeprueft). + const kontaktteile=[]; + if(abweichend)kontaktteile.push(`☎️ ${nummerLink({...d,nummer:d.rueckrufnummer})}`); + if(d.email)kontaktteile.push(`📧 ${esc(d.email)}` + +(d.email_korrigiert?` ⚠️ vermutete Korrektur`:'')); + const kontaktZeile=kontaktteile.length?`
${kontaktteile.join(' · ')} + 🎙️ ungeprüft
`:''; return `
-
${esc(KAT[d.kategorie]||d.kategorie)} · ${esc(d.name||'unbekannt')} ${quelleTag} - ${esc(d.kategorie==='notfall'?'notfall':d.dringlichkeit)} -
+
+ ${esc(d.kategorie==='notfall'?'notfall':d.dringlichkeit)} + +
+
${esc(KAT[d.kategorie]||d.kategorie)} · ${esc(d.name||'unbekannt')} ${quelleTag}
${esc(d.empfangen.replace('T',' '))} · ${nummerLink(d)}${d.rueckruf?' · 📞 Rückruf':''}${d.kontakt?`✓ ${esc(d.kontakt)}`:''}
- ${rueckrufZeile} - ${emailZeile} + ${kontaktZeile}

${esc(d.anliegen)}

${(d.stichworte||[]).map(s=>`${esc(s)}`).join('')}
${d.audio?``:''}