Anpassung Tagsuche, Fix Fehler bei längeren Ladezeiten

This commit is contained in:
2026-09-07 17:38:06 +02:00
parent 00ca39609f
commit fd87813cbe
11 changed files with 271 additions and 51 deletions

View File

@@ -2,6 +2,29 @@
* gemeinsam.js - Hilfsmittel für alle Dialogseiten.
*/
/**
* Verbindung zur Ereignisseite, die offen bleibt, solange der Dialog
* geöffnet ist.
*
* Sie überträgt nichts - ihr einziger Zweck ist, die Ereignisseite am
* Leben zu halten. Ohne sie wird die Seite während längerer Vorgänge
* beendet, etwa beim Warten auf eine Aufgabe in Paperless, und der
* laufende Aufruf schlägt mit "Receiving end does not exist" fehl.
*/
let dauerverbindung = null;
export function verbindungHalten() {
if (dauerverbindung) return;
try {
dauerverbindung = browser.runtime.connect({ name: "dialog" });
dauerverbindung.onDisconnect.addListener(() => {
dauerverbindung = null;
});
} catch (err) {
console.warn("[paperless] Dauerverbindung nicht möglich:", err);
}
}
/**
* Ruft die Ereignisseite und wirft bei Fehlern eine Ausnahme.
*
@@ -43,6 +66,10 @@ export async function ruf(befehl, daten = {}) {
* im HTML hinterlegte deutsche Text stehen.
*/
export function uebersetzeSeite() {
// Beim Aufbau der Seite gleich die Verbindung öffnen - jede Seite ruft
// diese Funktion, also ist es die verlässlichste Stelle.
verbindungHalten();
for (const el of document.querySelectorAll("[data-i18n]")) {
const s = browser.i18n.getMessage(el.dataset.i18n);
if (s) el.textContent = s;