Files
eventmap/js/utils/download.js
T
dapelza 5e2197ec24 Phase 6: KI-Prompt-Generator
Neues Modul js/ai/promptBuilder.js: reine Funktion buildPrompt(), deckt
alle 10 Pflichtpunkte aus anforderung.md explizit ab (Region+Radius,
Kategorien, Alter, wichtige Eigenschaften, Anzahl Ergebnisse, keine
erfundenen Informationen, unsichere Angaben kennzeichnen, ausschliesslich
gueltiges JSON, genaue Koordinaten, direkte Importierbarkeit) und bettet
das exakte JSON-Zielschema aus anforderung.md unveraendert ein.

UI (js/ui/promptGenerator.js): Modal mit allen Eingabefeldern aus der
Anforderung (Region, Radius, Kategorien, Altersgruppe, Indoor/Outdoor,
Kostenrahmen, max. Ergebnisse, besondere Anforderungen als Checkboxen +
Freitext, Ausgabesprache), Live-Vorschau des generierten Prompts,
Copy-to-Clipboard mit execCommand-Fallback (js/utils/clipboard.js) und
Speichern als Textdatei (js/utils/download.js). Neuer Toolbar-Button
oeffnet den Generator.

JSON-Import der KI-Antwort ist bewusst nicht Teil dieser Phase, sondern
folgt in Phase 7. docs/plan.md entsprechend fortgeschrieben.
2026-07-24 12:32:37 +02:00

31 lines
1.0 KiB
JavaScript

// Download-Utility für den KI-Prompt-Generator (Phase 6): erzeugt clientseitig
// einen Blob und triggert den Download über ein unsichtbares
// <a download>-Element. Funktioniert rein clientseitig, also auch unter
// file:// ohne lokalen Server.
(function () {
/**
* Speichert Text als Datei über den Browser-Download.
* @param {string} filename
* @param {string} content
*/
function downloadTextFile(filename, content) {
const blob = new Blob([content], { type: 'text/plain;charset=utf-8' });
const url = URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
link.download = filename;
link.style.display = 'none';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
// URL erst leicht verzögert freigeben, damit der Download-Vorgang
// in jedem Browser sicher gestartet werden konnte.
setTimeout(() => URL.revokeObjectURL(url), 1000);
}
EventMap.utils.downloadTextFile = downloadTextFile;
})();