From d1266b1c9d57f49d859cdc7f62b34523e2222933 Mon Sep 17 00:00:00 2001 From: Andre Cobham Date: Fri, 5 Jun 2026 10:18:24 +0100 Subject: [PATCH] Add thank-you redirect, fix altcha payload read, add /thank-you/ route and page --- assets/js/form.js | 24 +++++++++--------------- infra/nginx.conf | 7 +++++++ src/api/data/pages.sqlite | Bin 24576 -> 24576 bytes 3 files changed, 16 insertions(+), 15 deletions(-) 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 8c16fc7b53e8b82235ffa04dca8a84431d3d7a21..31c013128642ec906e49c606546ac5daca8f75f8 100755 GIT binary patch delta 489 zcmZoTz}Rqrae_1>^F$eEL1qTMvQA$99}G-4x`&^Smsy^%BqK2|TemX5lwYk zv7T>gadBdLszMM{7u+hKW|&C|Kvx&REviqQhrJ$NYJLh4q_G1Y=yLZknxGhK$oQ}F!osQl1#JnIPY`4)bumjp)lc56!a?5ZMj0Ne;Ua5(f{m w01xgD%@5)a_z$uV)(^n55fGdYv$8KzAPNHpP5=z&39<%Gv2j2KvrbmB3GJaAng9R*