Transfer von GitLab
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
// constants.js
|
||||
|
||||
// Projektname und zentrale Konfigurationen
|
||||
const PROJECT_NAME = "CookieKop";
|
||||
|
||||
// Standardwert: Soll der Banner angezeigt werden?
|
||||
const SHOW_BANNER_DEFAULT = true;
|
||||
|
||||
// Standardwert: Soll die Statistik anonymisiert geteilt werden?
|
||||
const SHARE_STATS_DEFAULT = false;
|
||||
|
||||
// (Platzhalter) URL für anonymen Statistik-Upload
|
||||
const STATS_UPLOAD_URL = "https://your-stats-endpoint.example.com/upload"; // aktuell deaktiviert
|
||||
|
||||
// Verfügbare Cookie-Verstoßtypen
|
||||
const VIOLATION_TYPES = [
|
||||
"Kein 'Ablehnen'-Button sichtbar",
|
||||
"Voreingestellte Zustimmung (Checkboxen vorausgefüllt)",
|
||||
"Intransparente Sprache",
|
||||
"Keine echte Auswahlmöglichkeit",
|
||||
"Tracking startet vor Einwilligung",
|
||||
"Andere (bitte in Kommentar beschreiben)"
|
||||
];
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
// util/pdf.js
|
||||
|
||||
async function generatePDF(url, violations, note, screenshotDataUrl) {
|
||||
const { jsPDF } = window.jspdf;
|
||||
const doc = new jsPDF();
|
||||
|
||||
let y = 10;
|
||||
|
||||
doc.setFontSize(16);
|
||||
doc.text("Cookie-Banner Verstoßmeldung", 10, y);
|
||||
y += 10;
|
||||
|
||||
doc.setFontSize(12);
|
||||
doc.text(`Datum: ${new Date().toLocaleString()}`, 10, y);
|
||||
y += 10;
|
||||
|
||||
doc.text(`URL:`, 10, y);
|
||||
doc.text(url, 30, y);
|
||||
y += 10;
|
||||
|
||||
doc.text("Verstöße:", 10, y);
|
||||
violations.forEach(v => {
|
||||
y += 7;
|
||||
doc.text(`- ${v}`, 15, y);
|
||||
});
|
||||
|
||||
y += 10;
|
||||
doc.text("Zusätzliche Hinweise:", 10, y);
|
||||
y += 7;
|
||||
const splitNote = doc.splitTextToSize(note || "Keine Angabe", 180);
|
||||
doc.text(splitNote, 10, y);
|
||||
y += splitNote.length * 7;
|
||||
|
||||
if (screenshotDataUrl) {
|
||||
y += 10;
|
||||
doc.text("Screenshot:", 10, y);
|
||||
y += 5;
|
||||
try {
|
||||
doc.addImage(screenshotDataUrl, 'PNG', 10, y, 180, 100);
|
||||
} catch (error) {
|
||||
console.error("Fehler beim Einfügen des Screenshots ins PDF:", error);
|
||||
}
|
||||
}
|
||||
|
||||
doc.save('cookiekop_meldung.pdf');
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
// util/screenshot.js
|
||||
|
||||
// Macht einen Screenshot vom aktiven Tab und speichert ihn lokal
|
||||
async function takeScreenshotAndStore() {
|
||||
try {
|
||||
const [tab] = await chrome.tabs.query({ active: true, currentWindow: true });
|
||||
const imageUri = await chrome.tabs.captureVisibleTab(tab.windowId, { format: "png" });
|
||||
await saveToStorage('screenshot', imageUri);
|
||||
return imageUri;
|
||||
} catch (error) {
|
||||
console.error("Fehler beim Screenshot erstellen:", error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
// Lädt den Screenshot aus dem Storage
|
||||
async function loadScreenshot() {
|
||||
return await loadFromStorage('screenshot');
|
||||
}
|
||||
|
||||
// Löscht gespeicherten Screenshot
|
||||
async function clearScreenshot() {
|
||||
await removeFromStorage('screenshot');
|
||||
}
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
// util/storage.js
|
||||
|
||||
// Speichert beliebige Daten in chrome.storage.local
|
||||
async function saveToStorage(key, value) {
|
||||
const data = {};
|
||||
data[key] = value;
|
||||
return chrome.storage.local.set(data);
|
||||
}
|
||||
|
||||
// Holt Daten aus chrome.storage.local
|
||||
async function loadFromStorage(key) {
|
||||
const result = await chrome.storage.local.get(key);
|
||||
return result[key];
|
||||
}
|
||||
|
||||
// Löscht einen bestimmten Schlüssel aus dem Storage
|
||||
async function removeFromStorage(key) {
|
||||
return chrome.storage.local.remove(key);
|
||||
}
|
||||
|
||||
// Löscht ALLE gespeicherten Daten (zurücksetzen)
|
||||
async function clearStorage() {
|
||||
return chrome.storage.local.clear();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user