feat: Kategorien mit Schlagwoertern sind in der Liste erkennbar

Der Schlagwort-Knopf sah bei jeder Kategorie gleich aus - man musste jede
einzeln oeffnen, um zu sehen, wo ueberhaupt etwas hinterlegt ist. Belegte
Kategorien tragen den Knopf jetzt in Akzentfarbe und mit der Anzahl daneben,
der Tooltip nennt sie ausgeschrieben.

Die Zahl kommt als keyword_count an der Kategorie mit, ermittelt in einer
Aggregat-Abfrage fuer die ganze Liste. Ein Abruf je Kategorie waere dafuer
unverhaeltnismaessig gewesen. Gefuellt wird das Feld nur beim Auflisten;
beim Anlegen und Aendern einer Gruppe bleibt es bei 0, wo es ohnehin nichts
aussagt.

Das Popup laedt beim Schliessen die Liste neu, damit die Zahl nach dem
Bearbeiten stimmt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-08-20 14:19:42 +02:00
co-authored by Claude Opus 5
parent df5bfec331
commit 64cbbc8cf6
7 changed files with 100 additions and 5 deletions
+18 -2
View File
@@ -260,8 +260,17 @@ export default function Categories() {
<div className="cat-row" key={c.id}>
<IconChip name={c.icon} color={c.color} size={26} />
<span className="grow">{c.name}</span>
<button className="btn sm ghost" title={t("categories.keywordsBtn")} onClick={() => setKeywordCat(c)}>
{/* Belegte Kategorien heben sich ab: Akzentfarbe plus Anzahl.
Sonst sähe man der Liste nicht an, wo schon etwas hinterlegt ist. */}
<button
className={c.keyword_count ? "btn sm ghost kw-btn belegt" : "btn sm ghost kw-btn"}
title={c.keyword_count
? t("categories.keywordsCount", { count: c.keyword_count })
: t("categories.keywordsBtn")}
onClick={() => setKeywordCat(c)}
>
<Icon name="tags" size={14} />
{c.keyword_count ? <span className="kw-btn-zahl">{c.keyword_count}</span> : null}
</button>
<button className="btn sm ghost" title={t("common.edit")} onClick={() => openCategory(g.id, c)}>
<Icon name="edit" size={14} />
@@ -328,7 +337,14 @@ export default function Categories() {
</Modal>
)}
{keywordCat && <KeywordModal category={keywordCat} onClose={() => setKeywordCat(null)} />}
{/* Beim Schliessen neu laden: im Popup kann sich die Anzahl der
Schlagwörter geändert haben, und die steht am Knopf. */}
{keywordCat && (
<KeywordModal
category={keywordCat}
onClose={() => { setKeywordCat(null); laden(); }}
/>
)}
</div>
);
}