Auto-commit: 2026-05-20 21:35

This commit is contained in:
OpenClaw
2026-05-20 21:35:47 +00:00
parent 382b0a76d2
commit d8db022c65
93 changed files with 1105 additions and 7542 deletions

View File

@@ -0,0 +1,79 @@
# Spezifikation: Issue #15 Kontaktformular Backend-Integration
**Repo:** greggy/landingpage-haus-schleusingen
**Issue:** [#15](https://git.home.kies-media.de/greggy/landingpage-haus-schleusingen/issues/15)
**Komplexität:** S (Small)
**Datum:** 2026-05-13
## Problem
Das Kontaktformular simuliert den Versand nur mit `setTimeout`. Anfragen gehen verloren.
## Lösung: mailto:-Link mit vorformatierter E-Mail
Da das Projekt eine **statische Landingpage** (HTML/CSS/JS) ohne Backend ist, wird der Formular-Submit so umgebaut, dass ein `mailto:`-Link generiert wird. Der E-Mail-Client des Nutzers öffnet sich mit einer vorausgefüllten E-Mail an `mki@kies-media.de`.
### Warum mailto: statt Formspree?
- Keine externe Abhängigkeit, kein Account nötig
- Funktioniert zuverlässig auf allen Geräten
- Kein Privacy-Problem (Daten gehen nicht über Drittanbieter)
- Keine Limits (Formspree: 50/Monat kostenlos)
### Warum kein eigenes Backend?
- Statische Seite (nginx serves HTML only)
- Extra Infrastruktur nötig (PHP/Node.js + SMTP)
- Overkill für eine Vermietungs-Landingpage
## Technische Umsetzung
### Formular-HTML (haus-schleusingen.html)
- Form bleibt wie vorhanden (fname, lname, email, phone, interest, message)
- Keine Änderung an name-Attributen nötig (alle bereits kompatibel)
### JavaScript (js/haus-schleusingen.js)
Form-Submit-Handler wird ersetzt:
```javascript
$("#contactForm").on("submit", function (e) {
e.preventDefault();
var fname = $("#fname").val().trim();
var lname = $("#lname").val().trim();
var email = $("#email").val().trim();
var phone = $("#phone").val().trim();
var interest = $("#interest").val();
var message = $("#message").val().trim();
var subject = "Kontaktanfrage: " + interest;
var body = "Von: " + fname + " " + lname + "\n";
body += "E-Mail: " + email + "\n";
if (phone) body += "Telefon: " + phone + "\n";
body += "Anliegen: " + interest + "\n\n";
body += message;
var mailto = "mailto:mki@kies-media.de"
+ "?subject=" + encodeURIComponent(subject)
+ "&body=" + encodeURIComponent(body);
window.location.href = mailto;
// Erfolgsmeldung anzeigen
$("#contactForm").hide();
$("#formSuccess").fadeIn(400);
});
```
### Edge Cases
- **Kein E-Mail-Client installiert:** mailto:-Link tut nichts → Nutzer sieht trotzdem Erfolgsmeldung (suboptimal, aber bei statischer Seite akzeptabel)
- **Leere Felder:** HTML5 `required` auf fname, lname, email verhindert leeren Submit
- **Sonderzeichen:** `encodeURIComponent` kodiert Umlaute und Sonderzeichen korrekt
- **Lange Nachrichten:** mailto:-Body hat praktische Limits (~2000 Zeichen URL), für Kontaktformulare ausreichend
### Akzeptanzkriterien
1. ✅ Bei Submit öffnet sich der E-Mail-Client mit vorformatierter E-Mail
2. ✅ Betreff enthält Art des Anliegens
3. ✅ Body enthält alle Formulardaten strukturiert
4. ✅ Erfolgsmeldung wird angezeigt
5. ✅ Kein setTimeout-Simulatoren mehr
6. ✅ Bestehendes CSS/Styling bleibt unverändert
## Branch: `feature/issue-15-kontaktformular-backend`
## Target: `main`