diff --git a/assets/js/form.js b/assets/js/form.js index d4d4b2d..8449dd0 100755 --- a/assets/js/form.js +++ b/assets/js/form.js @@ -34,9 +34,14 @@ document.addEventListener('DOMContentLoaded', function() { if (form.elements['website']?.value) return; - // Get altcha value from the web component - const altchaWidget = document.getElementById('altcha-widget'); - const altchaPayload = altchaWidget ? (altchaWidget.value || '') : ''; + // Get altcha payload -- web component writes a hidden input[name=altcha] into the form + const altchaInput = form.querySelector('input[name="altcha"]'); + const altchaPayload = altchaInput ? (altchaInput.value || '') : ''; + if (!altchaPayload) { + formStatusDiv.className = 'form-status form-status--error'; + formStatusDiv.innerHTML = '

Spam check not ready. Please wait a moment and try again.

'; + return; + } const payload = { name: name, @@ -63,18 +68,7 @@ document.addEventListener('DOMContentLoaded', function() { const data = await response.json(); if (data.ok) { - formStatusDiv.className = 'form-status form-status--success'; - formStatusDiv.innerHTML = '

Thank you! Your message has been sent. We\'ll be in touch soon.

'; - form.reset(); - if (formLoadedAtInput) { - formLoadedAtInput.value = Date.now().toString(); - } - if (window.altcha) { - window.altcha = new Altcha({ - challengeUrl: '/altcha-challenge/', - element: document.getElementById('altcha-widget') - }); - } + window.location.href = '/thank-you/'; } else { formStatusDiv.className = 'form-status form-status--error'; formStatusDiv.innerHTML = '

' + (data.error || 'An error occurred. Please try again.') + '

'; diff --git a/infra/nginx.conf b/infra/nginx.conf index 4d634ef..dfd6080 100755 --- a/infra/nginx.conf +++ b/infra/nginx.conf @@ -92,6 +92,13 @@ http { fastcgi_pass 127.0.0.1:9000; } + location = /thank-you/ { + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME /var/www/html/src/api/router.php; + fastcgi_param QUERY_STRING type=page&slug=thank-you; + fastcgi_pass 127.0.0.1:9000; + } + set $router /var/www/html/src/api/router.php; location = / { diff --git a/src/api/data/pages.sqlite b/src/api/data/pages.sqlite index 8c16fc7..31c0131 100755 Binary files a/src/api/data/pages.sqlite and b/src/api/data/pages.sqlite differ