Feature: WYSIWYG-Editor, Gitea-Sync, Signaturen-Verwaltung

- WYSIWYG-Editor mit contenteditable statt Textarea (MDI-Icons, System-Fonts, Farbwähler)
- Gitea-Sync: Templates per Abteilung aus Git-Repo laden/hochladen mit Commit-Author
- Abteilungsordner + _gemeinsam Ordner, einzelnes Pull/Push pro Vorlage
- Sync-Status pro Vorlage (grün/rot/grau Ampel), persistent über Neustarts
- Signaturen-Tab: Identitäten bearbeiten, aus Datei laden, Sync über signatures/ Ordner
- Persönliche Signaturen für geteilte E-Mail-Adressen (pro Mitarbeiter)
- Tab-Navigation: Vorlagen, Signaturen, Synchronisierung
- Auto-Pull beim Thunderbird-Start (Templates + Signaturen)
This commit is contained in:
Kendrick Bollens
2026-04-20 16:30:40 +02:00
parent e57f863d9a
commit cf051458bb
13 changed files with 2171 additions and 306 deletions

View File

@@ -1,5 +1,12 @@
browser.runtime.onMessage.addListener(async msg => {
if (msg.action !== 'insertTemplate') return;
browser.runtime.onMessage.addListener((msg, sender, sendResponse) => {
if (msg.action !== 'insertTemplate') return false;
handleInsertTemplate(msg).then(() => sendResponse())
.catch(err => sendResponse({ error: err.message }));
return true; // keep channel open for async response
});
async function handleInsertTemplate(msg) {
try {
const [tab] = await browser.tabs.query({
active: true,
@@ -48,12 +55,6 @@ browser.runtime.onMessage.addListener(async msg => {
await browser.compose.insertText(tab.id, htmlContent + '<br>', { insertAsText: false });
}
await browser.notifications.create({
type: 'basic',
iconUrl: browser.runtime.getURL('icons/icon.png'),
title: 'Vorlage eingefügt',
message: 'Erfolgreich',
});
} catch (e) {
console.error('background.js error:', e);
@@ -75,13 +76,6 @@ browser.runtime.onMessage.addListener(async msg => {
newBody = htmlTpl + '<br>' + old;
}
await browser.compose.setComposeDetails(tab.id, { body: newBody });
await browser.notifications.create({
type: 'basic',
iconUrl: browser.runtime.getURL('icons/icon.png'),
title: 'Vorlage eingefügt',
message: 'Erfolgreich (Fallback)',
});
}
} catch (e2) {
console.error('background.js fallback error:', e2);
@@ -93,4 +87,4 @@ browser.runtime.onMessage.addListener(async msg => {
});
}
}
});
}