diff --git a/app.js b/app.js
index 2fcfd93..31298e0 100644
--- a/app.js
+++ b/app.js
@@ -363,6 +363,49 @@ document.addEventListener('DOMContentLoaded', () => {
});
}
+ // --- Tester Registration Logic ---
+ const testerForm = document.getElementById('tester-form');
+ if (testerForm) {
+ testerForm.addEventListener('submit', async (e) => {
+ e.preventDefault();
+
+ const emailInput = document.getElementById('tester-email');
+ const submitBtn = document.getElementById('tester-submit-btn');
+ const successMsg = document.getElementById('tester-success-msg');
+ const errorMsg = document.getElementById('tester-error-msg');
+
+ submitBtn.disabled = true;
+ submitBtn.textContent = 'Wird gesendet...';
+ successMsg.style.display = 'none';
+ errorMsg.style.display = 'none';
+
+ try {
+ const response = await fetch('tester_backend.php', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify({ email: emailInput.value })
+ });
+
+ const result = await response.json();
+
+ if (result.success) {
+ successMsg.style.display = 'block';
+ testerForm.reset();
+ } else {
+ errorMsg.innerHTML = ' ' + (result.error || 'Unbekannter Fehler');
+ errorMsg.style.display = 'block';
+ }
+ } catch (err) {
+ console.error(err);
+ errorMsg.innerHTML = ' Netzwerkfehler. Bitte später erneut versuchen.';
+ errorMsg.style.display = 'block';
+ } finally {
+ submitBtn.disabled = false;
+ submitBtn.textContent = 'Als Tester anmelden';
+ }
+ });
+ }
+
// --- Modal Management for Impressum & Privacy ---
const modalTriggers = document.querySelectorAll('.legal-trigger');
const modals = document.querySelectorAll('.modal-overlay');
diff --git a/datenschutz.html b/datenschutz.html
index cb6e867..0419f7f 100644
--- a/datenschutz.html
+++ b/datenschutz.html
@@ -24,6 +24,7 @@
Upload
FAQ
Feedback Hub
+ App Testing
Admin