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:
co-authored by
Claude Opus 5
parent
df5bfec331
commit
64cbbc8cf6
@@ -772,6 +772,24 @@ tr.row-dup {
|
||||
background: var(--danger);
|
||||
color: #fff;
|
||||
}
|
||||
/* Schlagwort-Knopf in der Kategorienliste. Belegte Kategorien tragen die
|
||||
Akzentfarbe und die Anzahl – so sieht man der Liste an, wo schon etwas
|
||||
hinterlegt ist, ohne jede Kategorie einzeln zu öffnen. */
|
||||
.kw-btn {
|
||||
gap: 5px;
|
||||
}
|
||||
.kw-btn.belegt {
|
||||
color: var(--accent);
|
||||
border-color: var(--accent-soft);
|
||||
background: var(--accent-soft);
|
||||
}
|
||||
.kw-btn-zahl {
|
||||
font-size: 0.72rem;
|
||||
font-weight: 640;
|
||||
font-variant-numeric: tabular-nums;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
/* Das Schlagwort, das gerade oben in der Zeile liegt. Bearbeitet wird dort,
|
||||
nicht im Chip – im Chip war für den Betrag kein Platz. */
|
||||
.kw-chip.aktiv {
|
||||
|
||||
@@ -181,6 +181,8 @@
|
||||
"deleteConfirm": "Diese Kategorie löschen?",
|
||||
"deleteGroupConfirm": "Diese Gruppe samt aller Kategorien löschen?",
|
||||
"keywordsBtn": "Schlagwörter",
|
||||
"keywordsCount_one": "{{count}} Schlagwort hinterlegt",
|
||||
"keywordsCount_other": "{{count}} Schlagwörter hinterlegt",
|
||||
"keywordsTitle": "Schlagwörter – {{name}}",
|
||||
"keywordsHint": "Buchungen, die eines dieser Wörter im Empfänger oder Verwendungszweck enthalten, werden bei künftigen Importen automatisch dieser Kategorie zugeordnet.",
|
||||
"keywordAdd": "Wort eingeben und Enter",
|
||||
|
||||
@@ -181,6 +181,8 @@
|
||||
"deleteConfirm": "Delete this category?",
|
||||
"deleteGroupConfirm": "Delete this group and all its categories?",
|
||||
"keywordsBtn": "Keywords",
|
||||
"keywordsCount_one": "{{count}} keyword set",
|
||||
"keywordsCount_other": "{{count}} keywords set",
|
||||
"keywordsTitle": "Keywords – {{name}}",
|
||||
"keywordsHint": "Transactions whose payee or description contains one of these words are automatically assigned to this category on future imports.",
|
||||
"keywordAdd": "Type a word and press Enter",
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user