odysseus/static/js/emailLibrary
Alexandre Teixeira 8eaf742b43 fix(email): replace html2pdf with Print / save PDF and harden EML export
SAN-157 removed the html2pdf client library. The PDF export code added
in the original PR commit referenced the deleted library and would fail
at runtime. Replace the html2pdf-based _downloadSelectedEmailPdf with a
browser Print / save PDF workflow using a sandboxed iframe and
window.print(), matching the established pattern in document.js and
compare/index.js.

Changes:
- Replace _loadEmailHtml2Pdf and _downloadSelectedEmailPdf with
  _printSelectedEmails using a sandboxed iframe + contentWindow.print()
- Update menu label from 'PDF' to 'Print / save PDF'
- Add 512 MiB total size cap to /messages-download-bulk to prevent
  unbounded memory growth when exporting many large messages
- Update test assertions to verify the browser print pattern and
  confirm html2pdf is not referenced
- Add regression tests for size cap, selection count validation,
  non-numeric UID rejection, and partial batch failure accounting
2026-10-20 10:14:55 +01:00
..
aiReply.js fix(email): import spinnerModule in the modules that use it 2026-09-30 09:55:39 +02:00
attachments.js fix(email): import spinnerModule in the modules that use it 2026-09-30 09:55:39 +02:00
bodyRender.js refactor(email): split the email library into seven modules 2026-09-30 09:26:34 +02:00
index.js fix(email): replace html2pdf with Print / save PDF and harden EML export 2026-10-20 10:14:55 +01:00
menus.js fix(email): replace html2pdf with Print / save PDF and harden EML export 2026-10-20 10:14:55 +01:00
reader.js fix(email): import spinnerModule in the modules that use it 2026-09-30 09:55:39 +02:00
replyRecipients.js fix: reply-all Cc builder crashes on a non-string To or Cc field (#1700) 2026-06-03 13:37:22 +09:00
settingsPage.js fix(email): import spinnerModule in the modules that use it 2026-09-30 09:55:39 +02:00
signatureFold.js Ignore non-string signature fold metadata (#1655) 2026-06-03 14:16:48 +09:00
state.js refactor(email): split the email library into seven modules 2026-09-30 09:26:34 +02:00
unsubscribe.js fix(email): import spinnerModule in the modules that use it 2026-09-30 09:55:39 +02:00
utils.js fix(email): route summaries through shared LLM adapter (#5841) 2026-08-08 23:06:41 +02:00