Add segmented GVL reference data maintenance
Dieser Commit ist enthalten in:
@@ -0,0 +1,69 @@
|
||||
"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;
|
||||
}
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren