Testzugang-Modal: Feld-Layout, Zulassungstext und State-Reset

- Formularfelder im Modal sauber ausgerichtet: Inputs einer Reihe per
  align-items:end buendig, fragiler min-height-Label-Hack entfernt,
  optional-Hinweise brechen nicht mehr unschoen um.
- Zulassungstext praezisiert: ausschliesslich dienstliche Adressen von
  Behoerden oder Unternehmen (de + en, Modal-Subline + Meldung).
- Datenschutz-Fix: Formular wird beim Oeffnen des Modals zurueckgesetzt
  (Felder, Erfolgsmeldung, Fehler), damit kein Nutzer die Eingaben eines
  vorherigen sieht.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Dieser Commit ist enthalten in:
claude-dev
2026-07-23 10:48:39 +02:00
Ursprung 8934b1a920
Commit 457f64ef0d
5 geänderte Dateien mit 26 neuen und 9 gelöschten Zeilen

Datei anzeigen

@@ -621,6 +621,7 @@ function mdToHtml(md) {
/* ==================== CONTACT MODAL ==================== */
window.openContactModal = function () {
if (typeof window.resetTrialForm === 'function') window.resetTrialForm();
document.getElementById('contact-modal').style.display = 'flex';
document.body.style.overflow = 'hidden';
if (window.umami) umami.track('contact_modal_open');

Datei anzeigen

@@ -15,7 +15,7 @@
sending: 'Wird gesendet...',
send: 'Testzugang anfragen',
nameFehlt: 'Bitte geben Sie Ihren Namen an.',
freemail: 'Bitte geben Sie Ihre dienstliche E-Mail-Adresse an. Adressen bei Freemail-Anbietern wie Gmail, GMX oder web.de können wir für einen Testzugang nicht berücksichtigen.',
freemail: 'Ein Testzugang ist ausschließlich mit einer dienstlichen E-Mail-Adresse einer Behörde oder eines Unternehmens möglich. Adressen bei Freemail-Anbietern wie Gmail, GMX oder web.de können wir nicht berücksichtigen.',
invalidMail: 'Diese E-Mail-Adresse sieht nicht vollständig aus. Bitte prüfen Sie Ihre Eingabe.',
consent: 'Bitte bestätigen Sie die Datenschutzhinweise, damit wir Ihre Anfrage bearbeiten dürfen.',
tooFast: 'Bitte nehmen Sie sich einen Moment für das Formular. Versuchen Sie es gleich noch einmal.',
@@ -39,7 +39,7 @@
sending: 'Sending...',
send: 'Request trial access',
nameFehlt: 'Please enter your name.',
freemail: 'Please enter your official work email address. Addresses from free providers such as Gmail, GMX or web.de cannot be accepted for trial access.',
freemail: 'Trial access requires an official email address from a public authority or a company. Addresses from free providers such as Gmail, GMX or web.de cannot be accepted.',
invalidMail: 'This email address looks incomplete. Please check your entry.',
consent: 'Please confirm the privacy notice so that we may process your request.',
tooFast: 'Please take a moment to fill in the form, then try again.',
@@ -134,6 +134,23 @@
var mailField = document.getElementById('tf-email');
var mailNote = document.getElementById('tf-email-note');
/* Formular in den Ausgangszustand zuruecksetzen. Wird beim Oeffnen
des Modals aufgerufen, damit niemand die Eingaben oder die
Erfolgsmeldung eines vorherigen Nutzers sieht. */
function resetTrialForm() {
form.reset();
form.style.display = '';
var ok = document.getElementById('tf-success');
if (ok) ok.style.display = 'none';
var errorBox = document.getElementById('tf-error');
if (errorBox) { errorBox.style.display = 'none'; errorBox.textContent = ''; }
if (mailNote) { mailNote.textContent = ''; mailNote.className = 'tf-note'; }
if (mailField) mailField.removeAttribute('aria-invalid');
var btn = form.querySelector('button[type="submit"]');
if (btn) { btn.disabled = false; btn.textContent = T.send; }
}
window.resetTrialForm = resetTrialForm;
/* Live-Rueckmeldung am E-Mail-Feld */
if (mailField && mailNote) {
mailField.addEventListener('blur', function () {