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.
This commit is contained in:
2026-07-24 12:32:37 +02:00
parent dac952fbf9
commit 5e2197ec24
9 changed files with 963 additions and 2 deletions
+12 -1
View File
@@ -3,7 +3,7 @@
(function () {
const { initStore } = EventMap.store;
const { initMap, centerOnCoords, requestUserLocation } = EventMap.map;
const { initList, initDetail, initForm, initFilterPanel } = EventMap.ui;
const { initList, initDetail, initForm, initFilterPanel, initPromptGenerator } = EventMap.ui;
function showFatalError(message) {
const status = document.getElementById('app-status');
@@ -48,6 +48,15 @@
});
}
function setupPromptGeneratorButton() {
const button = document.getElementById('open-prompt-generator-btn');
if (!button) return;
button.addEventListener('click', () => {
EventMap.ui.openPromptGenerator();
});
}
async function bootstrap() {
await initStore();
initMap('map');
@@ -55,8 +64,10 @@
initList('place-list');
initDetail('detail-modal');
initForm('place-form-modal');
initPromptGenerator('prompt-generator-modal');
setupGeolocationButton();
setupAddPlaceButton();
setupPromptGeneratorButton();
}
bootstrap().catch((err) => {