From bba54cf6a02ffde7963793b96de03c66e17ae7e4 Mon Sep 17 00:00:00 2001 From: Lucas Orth Date: Thu, 27 Aug 2026 09:06:01 +0200 Subject: [PATCH] Unterschriftenservice: bestehende Unterschriften aus dem Katalog waehlbar (zusaetzlich zum Upload), in beiden Modi --- .../dist/index.js | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/extensions/directus-extension-skrift-neuauftrag/dist/index.js b/extensions/directus-extension-skrift-neuauftrag/dist/index.js index 489b2ec..9946265 100644 --- a/extensions/directus-extension-skrift-neuauftrag/dist/index.js +++ b/extensions/directus-extension-skrift-neuauftrag/dist/index.js @@ -591,6 +591,15 @@ const NeuAuftrag = defineComponent({ catch (e) { sig.err = 'Dokument-Upload fehlgeschlagen.'; sig.msg = ''; } } // Signatur-SVG hochladen und als Zeile hinzufügen (manuell oder ergänzend). + // Bestehende Unterschrift (aus dem signatures-Katalog) zur Liste hinzufügen – + // wie beim manuellen Brief-Signatur-Picker. Nutzt die vorhandene Datei-ID. + function sigBestehendeWaehlen(id) { + const s = signaturListe.value.find((x) => String(x.id) === String(id)); + if (!s || !s.file) return; + sig.signaturen.push({ file_id: s.file, label: s.label || 'Unterschrift', aktiv: true, + marker_key: 'SIG' + (sig.signaturen.length + 1), position: 'genau', width_mm: 40, offset_x_mm: 0, offset_y_mm: 0 }); + sig.pdf = ''; + } async function sigSvgUpload(file) { if (!file) return; sig.err = ''; @@ -658,9 +667,20 @@ const NeuAuftrag = defineComponent({ subdued(sig.modus === 'auftrag' ? 'Aus dem Kundenkonto vorbelegt (Marker + Feinjustierung), hier überschreibbar. Weitere Unterschrift-SVGs sind ergänzbar.' : 'Unterschrift(en) als SVG hochladen und Marker/Position setzen.', 'margin-bottom:10px;'), - h('div', { style: 'margin-bottom:10px;' }, [ + h('div', { style: 'display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-bottom:10px;' }, [ + // Bestehende Unterschrift aus dem Katalog wählen (wie beim manuellen Brief). + signaturListe.value.filter((s) => s.file).length ? h('select', { + style: WFELD + 'font-size:13px;', value: '', + onChange: (e) => { if (e.target.value) { sigBestehendeWaehlen(e.target.value); e.target.value = ''; } }, + }, [ + h('option', { value: '' }, '➕ Bestehende Unterschrift wählen …'), + ...signaturListe.value.filter((s) => s.file).map((s) => { + const kunde = [s.customer?.first_name, s.customer?.last_name].filter(Boolean).join(' '); + return h('option', { value: s.id }, (s.label || 'Unterschrift') + (kunde ? ` · ${kunde}` : '')); + }), + ]) : null, h('label', { style: `display:inline-block;cursor:pointer;color:${ACCENT};font-size:13px;` }, [ - '+ Unterschrift (SVG) hinzufügen', + '+ Neue Unterschrift (SVG) hochladen', h('input', { type: 'file', accept: '.svg', style: 'display:none;', onChange: (e) => sigSvgUpload(e.target.files && e.target.files[0]) }), ]), ]),