Übergabe von E-Mails als PDF mit eingebetteten Anlagen

This commit is contained in:
2026-09-07 22:33:55 +02:00
parent fd87813cbe
commit d032e3b19c
16 changed files with 1363 additions and 28 deletions

View File

@@ -55,6 +55,16 @@ function dateienAnzeigen() {
ziel.replaceChildren();
if (auftrag.quelle === "nachricht") {
// Die Wahl zwischen PDF und Rohformat gibt es nur hier. Bei einem
// einzelnen Anhang waere sie sinnlos - dort wird die Datei so
// abgelegt, wie sie ist.
const wahl = $("pdfWahl");
if (wahl && wahl.hidden) {
wahl.hidden = false;
$("alsPdf").checked = (einstellungen.mailFormat || "pdf") === "pdf";
$("alsPdf").addEventListener("change", dateienAnzeigen);
}
// Aufbau über createElement statt innerHTML. Hier stünde zwar nur
// festes Markup, aber die Zusicherung "kein innerHTML" soll ohne
// Ausnahme gelten - sonst muss man bei jeder Änderung neu prüfen, ob
@@ -68,8 +78,13 @@ function dateienAnzeigen() {
box.disabled = true;
const bez = document.createElement("label");
bez.htmlFor = "ganz";
bez.textContent = browser.i18n.getMessage("storeWholeMessage")
|| "Die vollständige Nachricht als .eml";
const alsPdf = $("alsPdf") ? $("alsPdf").checked
: (einstellungen.mailFormat || "pdf") === "pdf";
bez.textContent = alsPdf
? (browser.i18n.getMessage("storeWholePdf")
|| "Die Nachricht als PDF, mit eingebettetem Original")
: (browser.i18n.getMessage("storeWholeMessage")
|| "Die vollständige Nachricht als .eml");
zeile.append(box, bez);
ziel.append(zeile);
@@ -184,7 +199,10 @@ async function ablegen() {
try {
const ergebnisse = await ruf("ablegen", {
auftrag,
auftrag: { ...auftrag,
// Nur mitgeben, wenn die Wahl überhaupt angeboten wurde.
alsPdf: $("pdfWahl") && !$("pdfWahl").hidden
? $("alsPdf").checked : undefined },
ziel: $("zielNeu").checked ? "neu" : "vorhanden",
zielId: gewaehlterTreffer?.id,
titel: $("titel").value.trim(),