From 4922984b9284b567e69998ccf0637d66a23cfbd7 Mon Sep 17 00:00:00 2001 From: Gerd Date: Mon, 31 Aug 2026 21:08:42 +0200 Subject: [PATCH] Call_Log: Formularfelder in einer Zeile zusammengefasst (Datum/Zeit/Dauer, Ansprechpartner/Telefon) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Datum, Uhrzeit Beginn und Dauer nebeneinander in einem flex-Container; Name Ansprechpartner und Telefon ebenfalls in einer Zeile. Macht das Formular kompakter und übersichtlicher. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe --- Client/Components/call_log.ts | 43 +++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/Client/Components/call_log.ts b/Client/Components/call_log.ts index ee1f9e3..803c527 100644 --- a/Client/Components/call_log.ts +++ b/Client/Components/call_log.ts @@ -286,24 +286,33 @@ export const Call_Log: m.ClosureComponent = (vnode) => { readonly: kundeVoreingestellt, required: true } as iSelect)), - m("label", "Datum", m(Input, {name: "datum", value: currentLog.datum, type: "date"} as iInput)), - m("label", "Uhrzeit Beginn", m(Input, {name: "uhrzeitBeginn", value: currentLog.uhrzeitBeginn, type: "time"} as iInput)), - m("label", "Dauer (mm:ss)", - // Raw input statt Input-Widget, damit oncreate die - // DOM-Referenz für den Timer greifen kann. Text-Typ, - // da das Format mm:ss keine Zahl ist. - m("input.w3-input.w3-border", { - name: "dauer", - type: "text", - value: currentLog.dauer, - style: {'margin-bottom': '5px', width: '100%'}, - oncreate: (vnode: m.VnodeDOM) => { - dauerInput = vnode.dom as HTMLInputElement - } - })), + // Datum, Startzeit und Dauer in einer Zeile. + m("div", {style: {display: 'flex', gap: '8px', 'margin-bottom': '5px'}}, + m("label", {style: {flex: '1'}}, "Datum", + m(Input, {name: "datum", value: currentLog.datum, type: "date"} as iInput)), + m("label", {style: {flex: '1'}}, "Uhrzeit Beginn", + m(Input, {name: "uhrzeitBeginn", value: currentLog.uhrzeitBeginn, type: "time"} as iInput)), + m("label", {style: {flex: '1'}}, "Dauer (mm:ss)", + // Raw input statt Input-Widget, damit oncreate die + // DOM-Referenz für den Timer greifen kann. Text-Typ, + // da das Format mm:ss keine Zahl ist. + m("input.w3-input.w3-border", { + name: "dauer", + type: "text", + value: currentLog.dauer, + oncreate: (vnode: m.VnodeDOM) => { + dauerInput = vnode.dom as HTMLInputElement + } + })) + ), m("label", "Betreff", m(Input, {name: "betreff", value: currentLog.betreff, type: "text"} as iInput)), - m("label", "Name Ansprechpartner", m(Input, {name: "nameAnsprechpartner", value: currentLog.nameAnsprechpartner, type: "text"} as iInput)), - m("label", "Telefon", m(Input, {name: "telefon", value: currentLog.telefon, type: "tel"} as iInput)), + // Ansprechpartner und Telefon in einer Zeile. + m("div", {style: {display: 'flex', gap: '8px', 'margin-bottom': '5px'}}, + m("label", {style: {flex: '1'}}, "Name Ansprechpartner", + m(Input, {name: "nameAnsprechpartner", value: currentLog.nameAnsprechpartner, type: "text"} as iInput)), + m("label", {style: {flex: '1'}}, "Telefon", + m(Input, {name: "telefon", value: currentLog.telefon, type: "tel"} as iInput)) + ), m("label", "Notiz", m(Textarea, {name: "notiz", value: currentLog.notiz, rows: 4} as iTextarea)), m("label", "Wiedervorlage Datum", m(Input, {name: "wiedervorlageDatum", value: currentLog.wiedervorlageDatum, type: "date"} as iInput)), m("label", m(Input, {name: "erledigt", type: "checkbox", value: currentLog.erledigt} as iInput), "Erledigt")