From 40bf029fc985de583d5833d69398eb5e6b379dcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhard=20X=2E=20F=C3=BCrst?= Date: Tue, 12 May 2026 22:15:07 +0200 Subject: [PATCH] v1.7.0: Ersteller-BEO in Listenansicht fett und an erster Stelle Der BEO, der einen Eintrag erstellt hat (created_by), wird in der BEOs-Spalte fett hervorgehoben und immer als erster angezeigt. API liefert created_by_kuerzel via JOIN auf beos-Tabelle. Co-Authored-By: Claude Sonnet 4.6 --- app/api/logbuch/route.ts | 2 ++ components/LogbuchList.tsx | 18 +++++++++++++++++- package-lock.json | 4 ++-- package.json | 2 +- types/logbuch.ts | 1 + 5 files changed, 23 insertions(+), 4 deletions(-) diff --git a/app/api/logbuch/route.ts b/app/api/logbuch/route.ts index 4ff3e23..72d88e7 100644 --- a/app/api/logbuch/route.ts +++ b/app/api/logbuch/route.ts @@ -11,9 +11,11 @@ const LIST_SQL = ' l.Besucher, l.Bemerkungen, l.SonderName,' + ' l.WetterTemp, l.WetterFeuchte, l.WetterDruck,' + ' l.created_by, l.created_at,' + + ' creator.kuerzel AS created_by_kuerzel,' + " GROUP_CONCAT(DISTINCT bk.kuerzel ORDER BY bk.kuerzel SEPARATOR ', ') AS BEOs," + " GROUP_CONCAT(DISTINCT o.Name ORDER BY o.Name SEPARATOR ', ') AS Objekte" + ' FROM logbuch l' + + ' LEFT JOIN (SELECT id, `kürzel` AS kuerzel FROM beos) creator ON creator.id = l.created_by' + ' LEFT JOIN logbuch_beos lb ON lb.LogbuchID = l.ID' + ' LEFT JOIN (SELECT id, `kürzel` AS kuerzel FROM beos) bk ON bk.id = lb.BeoID' + ' LEFT JOIN logbuch_objekte lo ON lo.LogbuchID = l.ID' + diff --git a/components/LogbuchList.tsx b/components/LogbuchList.tsx index 91b0a60..0afdac0 100644 --- a/components/LogbuchList.tsx +++ b/components/LogbuchList.tsx @@ -182,7 +182,23 @@ export default function LogbuchList({ kuppel, refreshKey, onEdit, limit = 10, co {e.SonderName &&
{e.SonderName}
} {e.Besucher || ''} - {e.BEOs || '—'} + + {e.BEOs + ? (() => { + const beos = e.BEOs.split(', '); + if (e.created_by_kuerzel) { + const idx = beos.indexOf(e.created_by_kuerzel); + if (idx > 0) beos.unshift(beos.splice(idx, 1)[0]); + } + return beos.map((k, i, arr) => ( + + {k === e.created_by_kuerzel ? {k} : k} + {i < arr.length - 1 ? ', ' : ''} + + )); + })() + : '—'} + {e.Objekte || '—'} {!compact && {e.Bemerkungen || ''}} {!compact && ( diff --git a/package-lock.json b/package-lock.json index 4e69b43..453f1a3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "logbuch", - "version": "1.0.0", + "version": "1.7.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "logbuch", - "version": "1.0.0", + "version": "1.7.0", "dependencies": { "bcryptjs": "^3.0.3", "jose": "^6.2.2", diff --git a/package.json b/package.json index 9414232..53efdca 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "logbuch", - "version": "1.6.3", + "version": "1.7.0", "private": true, "scripts": { "dev": "next dev", diff --git a/types/logbuch.ts b/types/logbuch.ts index 2bdec78..b2bbe08 100644 --- a/types/logbuch.ts +++ b/types/logbuch.ts @@ -56,6 +56,7 @@ export interface LogbuchEintrag { WetterFeuchte: number | null; WetterDruck: number | null; created_by: number | null; + created_by_kuerzel: string | null; created_at: string; BEOs: string; Objekte: string;