"use strict"; const purgeGvlReferenceDataButton = document.getElementById( "purge-gvl-reference-data-button" ); const gvlReferenceMaintenanceStatus = document.getElementById( "gvl-reference-maintenance-status" ); document.addEventListener("DOMContentLoaded", () => { purgeGvlReferenceDataButton?.addEventListener("click", async () => { await purgeGvlReferenceData(); }); }); async function purgeGvlReferenceData() { if (!confirm(buildGvlReferenceDataPurgeConfirmationText())) { renderGvlReferenceMaintenanceStatus("Abgebrochen."); return; } purgeGvlReferenceDataButton.disabled = true; renderGvlReferenceMaintenanceStatus("GVL-Referenzdaten werden bereinigt..."); try { const result = await browser.runtime.sendMessage({ type: "purge_gvl_reference_data" }); if (!result?.success) { throw new Error(result?.error ?? "purge_gvl_reference_data_failed"); } renderGvlReferenceMaintenanceStatus( buildGvlReferenceDataPurgeSuccessMessage(result) ); } catch (error) { renderGvlReferenceMaintenanceStatus( "GVL-Referenzdaten konnten nicht bereinigt werden." ); console.warn("VG-Observe GVL reference data purge failed", error); } finally { purgeGvlReferenceDataButton.disabled = false; } } function buildGvlReferenceDataPurgeConfirmationText() { return [ "GVL-Referenzdaten bereinigen?", "", "Betroffen: GVL-Referenzdaten der Browser-DB.", "Nicht betroffen: Consent-Daten, Request-Beobachtungen, Analyse-Daten.", "", "Diese Aktion entfernt lokale GVL-Referenzdaten aus der Browser-Datenbank." ].join("\n"); } function buildGvlReferenceDataPurgeSuccessMessage(result) { const clearedCount = Object.values(result.clearedStores ?? {}).reduce( (total, count) => total + Number(count ?? 0), 0 ); return `GVL-Referenzdaten bereinigt: ${clearedCount} Records entfernt.`; } function renderGvlReferenceMaintenanceStatus(message) { gvlReferenceMaintenanceStatus.textContent = message; }