// Einstellungen lesen/schreiben (browser.storage.local). // Hinweis: Credentials werden v1 im Klartext gespeichert (siehe README / Risiken). const DEFAULTS = { serverUrl: "", // z.B. https://docuware.example.com (ohne /DocuWare/Platform) organization: "", username: "", password: "", defaultCabinetId: "", dialogByCabinet: {}, // gemerkter Ablagedialog je Schrank: { [cabinetId]: dialogId } storeEml: true, storePdf: true, storeAttachments: true, tagOnSuccess: true, }; const Settings = { async get() { const stored = await browser.storage.local.get("settings"); return { ...DEFAULTS, ...(stored.settings || {}) }; }, async set(partial) { const current = await this.get(); const next = { ...current, ...partial }; await browser.storage.local.set({ settings: next }); return next; }, /** Basis-URL der Platform-API ohne abschließenden Slash. */ platformUrl(settings) { const base = (settings.serverUrl || "").replace(/\/+$/, ""); if (!base) throw new Error("Keine DocuWare-Server-URL konfiguriert."); return `${base}/DocuWare/Platform`; }, }; if (typeof module !== "undefined") module.exports = { Settings, DEFAULTS };