fakecheck

This commit is contained in:
2025-11-25 00:59:20 +01:00
parent f0153dda4a
commit 78cbccfaea

View File

@@ -136,6 +136,8 @@ document.addEventListener("DOMContentLoaded", () => {
return "showDirectoryPicker" in window; return "showDirectoryPicker" in window;
} }
// Kann theoretisch bleiben, wird aktuell aber NICHT benutzt,
// damit showDirectoryPicker direkt im Click-Handler liegt.
async pickDirectory() { async pickDirectory() {
if (!this.hasFsApiSupport()) { if (!this.hasFsApiSupport()) {
throw new Error("File System Access API wird von diesem Browser nicht unterstützt."); throw new Error("File System Access API wird von diesem Browser nicht unterstützt.");
@@ -495,25 +497,46 @@ document.addEventListener("DOMContentLoaded", () => {
// --- Event-Handler ------------------------------------------------------ // --- Event-Handler ------------------------------------------------------
// WICHTIG: showDirectoryPicker direkt im Click-Handler (ohne async/await),
// damit "User activation is required" nicht mehr triggert.
let isPickingDir = false;
if (btnPickDir) { if (btnPickDir) {
btnPickDir.addEventListener("click", async () => { btnPickDir.addEventListener("click", () => {
try { if (isPickingDir) return; // Doppelklick-Schutz
const handle = await tester.pickDirectory(); isPickingDir = true;
if (selectedPathText) {
selectedPathText.textContent = if (!("showDirectoryPicker" in window)) {
'USB-Ordner ausgewählt (Name: "' + (handle.name || "Unbekannt") + '").'; logLine("File System Access API wird von diesem Browser nicht unterstützt.", "error");
} if (fsapiWarning) fsapiWarning.style.display = "block";
if (btnClearSel) btnClearSel.disabled = false; isPickingDir = false;
setStatus("USB-Verzeichnis ausgewählt. Wähle jetzt einen Testmodus."); return;
logLine("Verzeichnis ausgewählt: " + (handle.name || "[ohne Namen]"));
updateStartButtonState();
} catch (err) {
if (err.name === "AbortError") {
logLine("Verzeichnisauswahl abgebrochen.", "warn");
} else {
logLine("Fehler bei Verzeichnisauswahl: " + err.message, "error");
}
} }
window.showDirectoryPicker()
.then((handle) => {
tester.rootHandle = handle;
if (selectedPathText) {
selectedPathText.textContent =
'USB-Ordner ausgewählt (Name: "' + (handle.name || "Unbekannt") + '").';
}
if (btnClearSel) btnClearSel.disabled = false;
setStatus("USB-Verzeichnis ausgewählt. Wähle jetzt einen Testmodus.");
logLine("Verzeichnis ausgewählt: " + (handle.name || "[ohne Namen]"));
updateStartButtonState();
})
.catch((err) => {
if (err && err.name === "AbortError") {
logLine("Verzeichnisauswahl abgebrochen.", "warn");
} else if (err) {
logLine("Fehler bei Verzeichnisauswahl: " + err.message, "error");
} else {
logLine("Unbekannter Fehler bei Verzeichnisauswahl.", "error");
}
})
.finally(() => {
isPickingDir = false;
});
}); });
} }
@@ -578,14 +601,18 @@ document.addEventListener("DOMContentLoaded", () => {
// Ergebnis speichern: Backend entscheidet, ob der User eingeloggt ist // Ergebnis speichern: Backend entscheidet, ob der User eingeloggt ist
await saveReportToBackend(report); await saveReportToBackend(report);
} catch (err) { } catch (err) {
if (err.name === "AbortError") { if (err && err.name === "AbortError") {
setStatus("Test wurde abgebrochen."); setStatus("Test wurde abgebrochen.");
setOverallStatus("warn", "Test abgebrochen."); setOverallStatus("warn", "Test abgebrochen.");
logLine("Test wurde vom Benutzer abgebrochen.", "warn"); logLine("Test wurde vom Benutzer abgebrochen.", "warn");
} else { } else if (err) {
setStatus("Fehler: " + err.message); setStatus("Fehler: " + err.message);
setOverallStatus("bad", "Fehler im Browser-Test."); setOverallStatus("bad", "Fehler im Browser-Test.");
logLine("Fehler im Test: " + err.message, "error"); logLine("Fehler im Test: " + err.message, "error");
} else {
setStatus("Unbekannter Fehler im Test.");
setOverallStatus("bad", "Fehler im Browser-Test.");
logLine("Unbekannter Fehler im Test.", "error");
} }
} finally { } finally {
isRunning = false; isRunning = false;
@@ -689,7 +716,7 @@ document.addEventListener("DOMContentLoaded", () => {
); );
} catch (err) { } catch (err) {
if (saveError) saveError.style.display = "block"; if (saveError) saveError.style.display = "block";
logLine("Fehler beim Speichern im Backend: " + err.message, "error"); logLine("Fehler beim Speichern im Backend: " + (err ? err.message : "unbekannt"), "error");
} }
} }