Add raw GVL evidence storage and restore evidence purge UI

Dieser Commit ist enthalten in:
2026-06-08 21:03:56 +02:00
Ursprung 79da604226
Commit b4ac8726b4
5 geänderte Dateien mit 186 neuen und 1 gelöschten Zeilen
+57
Datei anzeigen
@@ -16,6 +16,18 @@ const evidenceDashboardButton = document.getElementById(
const evidenceExportJsonButton = document.getElementById(
"evidence-export-json-button"
);
const evidencePurgeUnlockedButton = document.getElementById(
"evidence-purge-unlocked-button"
);
const evidencePurgeConfirmModal = document.getElementById(
"evidence-purge-confirm-modal"
);
const evidencePurgeCancelButton = document.getElementById(
"evidence-purge-cancel-button"
);
const evidencePurgeConfirmButton = document.getElementById(
"evidence-purge-confirm-button"
);
const evidenceExportJsonStatus = document.getElementById(
"evidence-export-json-status"
);
@@ -69,6 +81,9 @@ document.addEventListener("DOMContentLoaded", async () => {
});
evidenceExportJsonButton.addEventListener("click", exportEvidenceJsonFile);
evidencePurgeUnlockedButton.addEventListener("click", openPurgeConfirmModal);
evidencePurgeCancelButton.addEventListener("click", closePurgeConfirmModal);
evidencePurgeConfirmButton.addEventListener("click", purgeUnlockedEvidence);
});
async function renderSettings() {
@@ -143,6 +158,48 @@ function renderEvidenceRetentionMessage(message) {
evidenceRetentionStatus.textContent = message;
}
function openPurgeConfirmModal() {
evidencePurgeConfirmModal.hidden = false;
evidencePurgeCancelButton.focus();
}
function closePurgeConfirmModal() {
evidencePurgeConfirmModal.hidden = true;
evidencePurgeUnlockedButton.focus();
}
async function purgeUnlockedEvidence() {
closePurgeConfirmModal();
evidencePurgeUnlockedButton.disabled = true;
renderEvidenceRetentionMessage("Ungesperrte Evidence-Daten werden gelöscht...");
try {
const result = await browser.runtime.sendMessage({
type: "purge_unlocked_evidence_records"
});
if (!result?.success) {
throw new Error(result?.error ?? "purge_unlocked_evidence_records_failed");
}
await renderEvidenceRetentionStatus();
renderEvidenceRetentionMessage(buildPurgeUnlockedSuccessMessage(result));
} catch (error) {
renderEvidenceRetentionMessage("Löschen fehlgeschlagen");
console.warn("VendorGet-IV unlocked evidence purge failed", error);
} finally {
evidencePurgeUnlockedButton.disabled = false;
}
}
function buildPurgeUnlockedSuccessMessage(result) {
if (Number.isFinite(result.deletedCount)) {
return `Ungesperrte Evidence-Daten gelöscht: ${result.deletedCount} Records`;
}
return "Ungesperrte Evidence-Daten gelöscht";
}
async function exportEvidenceJsonFile() {
evidenceExportJsonButton.disabled = true;
renderEvidenceExportJsonMessage("Export läuft…");