From 829a4b6e0e9a58f47c983bbfdbab6f2e5cac46f3 Mon Sep 17 00:00:00 2001
From: rene
Date: Sun, 17 May 2026 17:25:10 +0200
Subject: [PATCH] Feature: Kontaktformular-Modal ersetzt mailto-Links,
speichert in PocketBase inquiries
---
app/src/routes/+page.svelte | 146 ++++++++++++++++++++++++++++++++++--
scripts/setup-inquiries.sh | 36 +++++++++
2 files changed, 176 insertions(+), 6 deletions(-)
create mode 100755 scripts/setup-inquiries.sh
diff --git a/app/src/routes/+page.svelte b/app/src/routes/+page.svelte
index 31dfcd6..594993a 100644
--- a/app/src/routes/+page.svelte
+++ b/app/src/routes/+page.svelte
@@ -29,7 +29,49 @@
sonstiges: iconTherm
};
- let activeView = $state<'dashboard' | 'protokoll' | 'stationen'>('dashboard');
+ let activeView = $state<'dashboard' | 'protokoll' | 'stationen'>('dashboard');
+
+ // Kontaktformular
+ let showModal = $state(false);
+ let modalPlan = $state('');
+ let formName = $state('');
+ let formCompany = $state('');
+ let formEmail = $state('');
+ let formPhone = $state('');
+ let formMsg = $state('');
+ let formSending = $state(false);
+ let formDone = $state(false);
+ let formError = $state('');
+
+ function openModal(plan = '') {
+ modalPlan = plan;
+ formDone = false;
+ formError = '';
+ showModal = true;
+ }
+
+ function closeModal() { showModal = false; }
+
+ async function submitForm() {
+ if (!formName.trim() || !formEmail.trim()) { formError = 'Bitte Name und E-Mail ausfüllen.'; return; }
+ formSending = true; formError = '';
+ try {
+ await pb.collection('inquiries').create({
+ name: formName.trim(),
+ company: formCompany.trim(),
+ email: formEmail.trim(),
+ phone: formPhone.trim(),
+ message: formMsg.trim(),
+ plan: modalPlan
+ });
+ formDone = true;
+ formName = formCompany = formEmail = formPhone = formMsg = '';
+ } catch {
+ formError = 'Fehler beim Senden. Bitte direkt an hallo@checkflo.de schreiben.';
+ } finally {
+ formSending = false;
+ }
+ }
let liveLogs = $state([]);
let liveStats = $state({ total: 0, ok: 0, warn: 0, crit: 0 });
let lastUpdate = $state('');
@@ -127,7 +169,7 @@
Und Ihre Kunden sehen nur Ihr Logo.
@@ -318,7 +360,7 @@
✓ PDF-Export für Ihre Kunden
✓ Offline-fähige PWA
- Demo vereinbaren
+
Empfohlen
@@ -333,7 +375,7 @@
✓ Dynamisches Branding je Kunde
✓ Prioritäts-Support
-
Demo vereinbaren
+
Enterprise
@@ -347,7 +389,7 @@
✓ Individuelle Entwicklung
✓ Schulung & Onboarding
-
Angebot anfragen
+
Keine Einrichtungsgebühr · Monatlich kündbar · Alle Pläne inkl. Updates
@@ -359,10 +401,64 @@
Bieten Sie Ihren Kunden eine eigene HACCP-App an.
Für Prüfbetriebe, Ingenieurbüros und Facility-Management-Firmen.
-
Kostenlose Demo vereinbaren
+
+
+{#if showModal}
+
+
e.stopPropagation()}>
+ {#if formDone}
+
+
✓
+
Vielen Dank!
+
Wir melden uns innerhalb von 24 Stunden bei Ihnen.
+
+
+ {:else}
+
+
+ {/if}
+
+
+{/if}
+