# DocuWare Ablage – Thunderbird-Extension Legt eine markierte E-Mail aus Thunderbird in DocuWare ab. Nach Klick auf den Button erscheint ein **Ablage-Dialog**: Aktenschrank wählen, Indexfelder ausfüllen (aus der Mail vorbefüllt), ablegen. Hochgeladen werden – je nach Auswahl – die Mail als `.eml`, die Mail als PDF und die Anhänge als separate Dokumente. ## Funktionsweise - **Direkte Anbindung** an die DocuWare **Platform REST-API** (kein eigener Server). Auth v1 per **Cookie-Logon** (`/Account/Logon`). - **Dynamische Felder**: Die Eingabemaske wird aus dem *Store-Dialog* des gewählten Schranks erzeugt (Felder, Pflichtfelder, Auswahllisten). - **Vorbefüllung** der `EML_*`-Felder aus der Mail (Absender, Empfänger, Betreff, Datum, Richtung, Größe, Body …). ## Projektstruktur ``` manifest.json MailExtension-Manifest (Manifest v2) background/background.js Button + Kontextmenü, öffnet den Dialog dialog/ Ablage-Dialog (HTML/CSS/JS) options/ Einstellungen (Server, Login, Defaults) lib/ store.js Einstellungen (browser.storage.local) auth.js Cookie-Logon (Auth-Abstraktion) docuware.js Platform-REST-Client (Schränke, Dialoge, Felder, Upload) mail.js Mail-Extraktion (eml, Metadaten, Anhänge) pdf.js abhängigkeitsfreier Text-PDF-Generator icons/ ``` ## Installation (Entwicklung) 1. Thunderbird → Menü → **Add-ons und Themes** → Zahnrad → **Add-on aus Datei installieren …** *oder* zum Testen: 2. Adresszeile: `about:debugging` → **Dieses Thunderbird** → **Temporäres Add-on laden …** → `manifest.json` in diesem Ordner wählen. > Hinweis: Bei einem Self-Signed-Zertifikat des DocuWare-Servers muss dieses einmalig > in Thunderbird akzeptiert werden, sonst schlagen die `fetch`-Aufrufe fehl. ## Einrichtung Add-on-Einstellungen öffnen und ausfüllen: - **Server-URL** – Basis ohne `/DocuWare/Platform`, z.B. `https://docuware.firma.de` - **Organisation**, **Benutzername**, **Passwort** - **Verbindung testen** → lädt die Aktenschränke (Bestätigung, dass Login & URL passen) - optional **Standard-Aktenschrank** und Default-Optionen (eml/pdf/Anhänge) > ⚠️ Das Passwort wird unverschlüsselt in `storage.local` gespeichert (v1). Für den > Produktiveinsatz sollte auf den DocuWare Identity Service / OAuth umgestellt werden > (`lib/auth.js` ist dafür gekapselt). ## Benutzung 1. E-Mail öffnen → Button **„In DocuWare ablegen"** (oder Rechtsklick in der Nachrichtenliste → *In DocuWare ablegen*). 2. Aktenschrank wählen → Felder prüfen/ergänzen (Pflichtfelder mit `*`). 3. Auswählen, was abgelegt wird (eml / PDF / Anhänge). 4. **Ablegen**. Bei Erfolg wird die Mail optional mit dem Tag *DocuWare* markiert. ## Verifikation (End-to-End) Gegen den **Test-Schrank `LL_TEST_BELEGE`** ablegen, dann per DocuWare-MCP gegenprüfen: - `docuware_search` (file_cabinet_name `LL_TEST_BELEGE`, query = Betreff) → Treffer? - `docuware_get_document` → Indexfelder (`EML_SENDER`, `EML_SUBJECT`, …) korrekt? - `docuware_download_document` → `.eml`/PDF herunterladen & prüfen - Anhänge erscheinen als eigene Dokumente - Aufräumen: `docuware_delete_document` (nur im Test-Schrank!) ## Verteilung & automatische Updates (eigenes Gitea, nicht öffentlich) Das Add-on wird **nicht** öffentlich auf addons.thunderbird.net gelistet, sondern über AMO als **„Selbstständig" (self-distribution)** signiert und über dein eigenes Gitea verteilt + aktualisiert. > Im XPI und in `updates.json` stehen **keine** Zugangsdaten. Das DocuWare-Passwort > liegt ausschließlich lokal in `storage.local` und wird nie mitverteilt. **Einmalige Einrichtung:** 1. In `manifest.json` → `applications.gecko.update_url` die Domain `GITEA.EXAMPLE.DE` durch deine (HTTPS-)Gitea-Adresse ersetzen. **HTTPS ist Pflicht** (TB lehnt HTTP ab). 2. `updates.json` ebenfalls auf deine Gitea-URLs anpassen und in dein Repo committen (erreichbar unter der `update_url`, z.B. via *raw*-Link auf `main`). **Bei jedem neuen Release:** 1. `version` in `manifest.json` erhöhen (z.B. `0.8.0` → `0.8.1`). 2. XPI bauen (`manifest.json` muss im Archiv-Wurzelverzeichnis liegen). 3. XPI bei AMO hochladen → **„Selbstständig"** wählen → **signiertes** XPI herunterladen. 4. Signiertes XPI als Release-Anhang in Gitea hochladen (passend zum `update_link`). 5. In `updates.json` einen neuen Eintrag mit `version` + `update_link` ergänzen, committen/pushen. Thunderbird prüft die `update_url` periodisch und aktualisiert automatisch auf die neueste dort gelistete Version. ## Bekannte Grenzen / nächste Schritte - **PDF** ist v1 ein einfaches Text-PDF (Kopf + Klartext-Body) ohne HTML-Layout/Bilder. - **Auth** nur Cookie-Logon; OAuth/Identity Service noch nicht implementiert. - **Upload-Multipart-Format** ggf. je nach DocuWare-Version anpassen (`docuware.js → uploadDocument`). - Mehrfachauswahl von Mails: aktuell wird die erste markierte Mail abgelegt.