Listen: einheitliche Zeilen-Markierung und kompakte Aktions-Buttons

Alle App-Listen (kundenliste, call_log_liste, kontaktliste, kontaktadresseliste,
TagList) auf das isSelected-Callback der Treetable umgestellt — die Markierung
erfolgt jetzt auf der gesamten <tr>-Zeile via w3-theme-l4 statt per-Zell-Inline-Style.
In der kundenliste sind die 3 Aktions-Buttons (edit, Projekte, Kontakte) kompakt
in einer Zelle zusammengefasst, analog zur projektliste. Auth-Listen unberührt.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
gg committed 2026-09-01 10:45:48 +02:00
1 parent 3e1791d316
commit ad24981a0b
5 files changed
+51 -54

No files matched your search

+12 -13
View File
@@ -77,18 +77,16 @@ export const call_log_liste: m.ClosureComponent = (vnode) => {
const columnmapper: (node: iTreenode) => any[] = (node: iTreenode) => {
let log: iCallLog = node.nodevalue
const isSelected = selectedNode === node
const cellStyle = isSelected ? {backgroundColor: '#e6f7ff'} : {}
return [
m("div", {style: cellStyle}, m("strong", log.kundenName + ": " + log.projektName)),
m("span", {style: cellStyle}, log.datum),
m("span", {style: cellStyle}, log.uhrzeitBeginn),
m("span", {style: cellStyle}, log.dauer + " min"),
m("span", {style: cellStyle}, log.betreff),
m("span", {style: cellStyle}, log.wiedervorlageDatum),
m("span", {style: cellStyle}, log.erledigt ? "Erledigt" : "Offen"),
m("button.w3-button.w3-small", {style: cellStyle, onclick: (e: Event) => editCallLog(log, e)}, m("i.material-icons", "edit"))
m("div", m("strong", log.kundenName + ": " + log.projektName)),
m("span", log.datum),
m("span", log.uhrzeitBeginn),
m("span", log.dauer + " min"),
m("span", log.betreff),
m("span", log.wiedervorlageDatum),
m("span", log.erledigt ? "Erledigt" : "Offen"),
m("button.w3-button.w3-small", {style: {padding: '0 2px'}, onclick: (e: Event) => editCallLog(log, e)}, m("i.material-icons", "edit"))
]
}
@@ -124,12 +122,13 @@ export const call_log_liste: m.ClosureComponent = (vnode) => {
'overflow-y': 'inherit'}},
m("h1", "Gesprächsnotizen"),
m("div", {style: {flex: '1', 'overflow-y': 'inherit'}},
m(Treetable,
m(Treetable,
{
treenodes: treenodes,
columnmapper: columnmapper,
filter: filterFunction,
onRowMarked: handleRowMarked
onRowMarked: handleRowMarked,
isSelected: (node: iTreenode) => node === selectedNode
} as iTreetable,
m(TopbarButton, {onclick: addCallLogRoute, tooltip: "Neue Gesprächsnotiz anlegen"} as iTopbarButton,
m("i.material-icons", "add_call")