render_formats: A6-Greifrand lange Seite, A5 + DIN-lang, show_check

- Feld margin_bottom_mm (unterer Greifrand) + show_check (Textmengencheck).
- a6l: Greifrand von rechts nach unten (margin_right_mm=null loescht Altwert,
  margin_bottom_mm=14); a6p: margin_right_mm=14 (lange Seite rechts).
- Neue render_formats a5p, a5l, dinlang_karte (kind brief) + format_templates
  a5_v1, a5l_v1, dl_v1 (nur bei leerer Collection).
- formats: a5p/a5l/dinlang_karte manuell+check, nicht oeffentlich bestellbar;
  show_check auf allen Text-Seiten-Formaten.
- produktion: manuelles Format-Dropdown + Template-Map um A5/DIN-lang erweitert.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
s4luorth
2026-09-30 10:54:34 +02:00
parent d3ce505389
commit a785e72059
2 changed files with 24 additions and 8 deletions

View File

@@ -23,7 +23,7 @@ import { defineComponent, ref, reactive, computed, onMounted, onUnmounted, h, Te
import { useApi } from '@directus/extensions-sdk';
// Auftragsformat → Standard-Template-Schlüssel (wie im Backend /enqueue).
const LETTER_TPL = { a4: 'a4_single', a6_hoch: 'a6_v1', a6_quer: 'a6l_v1' };
const LETTER_TPL = { a4: 'a4_single', a5p: 'a5_v1', a5l: 'a5l_v1', dinlang_karte: 'dl_v1', a6_hoch: 'a6_v1', a6_quer: 'a6l_v1' };
// v1 = Empfängeradresse (Standardvorschlag). Für individuelle Beschriftung
// wählt der Operator im Popup die Variante 2 (kuvert_a_v2 / kuvert_b_v2).
const ENVELOPE_TPL = { dinlang: 'kuvert_a_v1', c6: 'kuvert_b_v1' };
@@ -1838,7 +1838,7 @@ const Board = defineComponent({
h('select', { style: S_SELECT + 'width:100%;', value: manuell.font, onChange: (e) => { manuell.font = e.target.value; } }, ['tilda', 'alva', 'ellie'].map((f) => h('option', { value: f, selected: manuell.font === f }, f)))]),
h('div', {}, [h('label', { style: 'font-size:11px;color:var(--foreground-subdued);' }, 'Format'),
h('select', { style: S_SELECT + 'width:100%;', value: manuell.format, onChange: (e) => { manuell.format = e.target.value; } },
[['a4', 'A4'], ['a6_hoch', 'A6 hoch'], ['a6_quer', 'A6 quer']].map(([v, l]) => h('option', { value: v, selected: manuell.format === v }, l)))]),
[['a4', 'A4'], ['a5p', 'A5 hoch'], ['a5l', 'A5 quer'], ['dinlang_karte', 'DIN lang'], ['a6_hoch', 'A6 hoch'], ['a6_quer', 'A6 quer']].map(([v, l]) => h('option', { value: v, selected: manuell.format === v }, l)))]),
h('div', {}, [h('label', { style: 'font-size:11px;color:var(--foreground-subdued);' }, 'Template'),
h('select', { style: S_SELECT + 'width:100%;', value: manuell.template, onChange: (e) => { manuell.template = e.target.value; } }, briefTpls.map((t) => h('option', { value: t.id, selected: String(manuell.template) === String(t.id) }, t.name)))]),
h('div', {}, [h('label', { style: 'font-size:11px;color:var(--foreground-subdued);' }, 'Maschine'),