diff --git a/extensions/directus-extension-skrift-neuauftrag/dist/index.js b/extensions/directus-extension-skrift-neuauftrag/dist/index.js index 0b8ab82..ab06ea3 100644 --- a/extensions/directus-extension-skrift-neuauftrag/dist/index.js +++ b/extensions/directus-extension-skrift-neuauftrag/dist/index.js @@ -420,7 +420,8 @@ const NeuAuftrag = defineComponent({ if (wert === 'du' || wert === 'sie') t = wert === 'du' ? musterTexte.value.text_du : musterTexte.value.text_sie; else t = (musterListe.value.find((m) => String(m.id) === String(wert)) || {}).text || ''; if (!t) return; - neu.text = neu.text.trim() ? `${neu.text}\n\n${t}` : t; + // Vorlage ersetzt den bisherigen Inhalt (nicht anhängen). + neu.text = t; neu.previewSession = null; }; @@ -607,7 +608,8 @@ const NeuAuftrag = defineComponent({ requestAnimationFrame(() => { try { ta.selectionStart = ta.selectionEnd = s + 1; } catch {} }); } }), h('div', { style: 'font-size:11px;color:var(--foreground-subdued,#888);margin-top:4px;line-height:1.5;' }, - 'Tipp: [[seitenumbruch]] erzwingt an dieser Stelle eine neue Seite (mehrseitiger Brief). [[signatur1]] setzt die Unterschrift.'), + 'Tipp: [[seitenumbruch]] erzwingt an dieser Stelle eine neue Seite (mehrseitiger Brief). [[signatur1]] setzt die Unterschrift. ' + + 'Platzhalter: [[Vorname]], [[Nachname]], [[Anrede]], [[Strasse]], [[PLZ]], [[Ort]] – im 5-Zeilen-Modus außerdem [[Zeile1]]…[[Zeile5]].'), // ── Unterschrift auf den Brief ───────────────────────────────────── h('div', { style: 'margin-top:16px;border-top:1px solid rgba(30,80,165,.15);padding-top:14px;' }, [ label('Unterschrift auf den Brief (optional) · Platzhalter [[signatur1]]'), diff --git a/extensions/directus-extension-skrift-orders/dist/index.js b/extensions/directus-extension-skrift-orders/dist/index.js index 72660e1..627c8ec 100644 --- a/extensions/directus-extension-skrift-orders/dist/index.js +++ b/extensions/directus-extension-skrift-orders/dist/index.js @@ -691,19 +691,25 @@ const handler = (router, { services, getSchema, logger }) => { filter: { key: { _eq: briefFormat } }, limit: 1, fields: ['kind'], }))?.[0]?.kind === 'postkarte'; - const platzhalterVon = (e, i) => ({ - Anrede: clean(e.salutation || ''), - Vorname: clean(e.first_name || ''), - Nachname: clean(e.last_name || ''), - Strasse: clean([e.street, e.house_no].filter(Boolean).join(' ')), - PLZ: clean(e.zip || ''), - Ort: clean(e.city || ''), - Land: clean(e.country || ''), - Briefnummer: String(i + 1), - ...(e.placeholders && typeof e.placeholders === 'object' - ? Object.fromEntries(Object.entries(e.placeholders).map(([k, v]) => [k, clean(String(v))])) - : {}), - }); + const platzhalterVon = (e, i) => { + // 5 Adresszeilen (5-Zeilen-Modus) auch als [[Zeile1]]..[[Zeile5]]. + const zeilen = String(e.free_text || '').split('\n'); + return { + Anrede: clean(e.salutation || ''), + Vorname: clean(e.first_name || ''), + Nachname: clean(e.last_name || ''), + Strasse: clean([e.street, e.house_no].filter(Boolean).join(' ')), + PLZ: clean(e.zip || ''), + Ort: clean(e.city || ''), + Land: clean(e.country || ''), + Briefnummer: String(i + 1), + Zeile1: clean(zeilen[0] || ''), Zeile2: clean(zeilen[1] || ''), Zeile3: clean(zeilen[2] || ''), + Zeile4: clean(zeilen[3] || ''), Zeile5: clean(zeilen[4] || ''), + ...(e.placeholders && typeof e.placeholders === 'object' + ? Object.fromEntries(Object.entries(e.placeholders).map(([k, v]) => [k, clean(String(v))])) + : {}), + }; + }; const adressBlock = (e) => { if (e.free_text) return clean(String(e.free_text));