From 74eb196a74f410754cd0ac3300ac432463df90b9 Mon Sep 17 00:00:00 2001 From: Andinus Date: Sun, 26 Sep 2021 17:21:15 +0530 Subject: Add landing page --- landing/assets/vendor/php-email-form/validate.js | 85 ++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 landing/assets/vendor/php-email-form/validate.js (limited to 'landing/assets/vendor/php-email-form/validate.js') diff --git a/landing/assets/vendor/php-email-form/validate.js b/landing/assets/vendor/php-email-form/validate.js new file mode 100644 index 0000000..64e969c --- /dev/null +++ b/landing/assets/vendor/php-email-form/validate.js @@ -0,0 +1,85 @@ +/** +* PHP Email Form Validation - v3.1 +* URL: https://bootstrapmade.com/php-email-form/ +* Author: BootstrapMade.com +*/ +(function () { + "use strict"; + + let forms = document.querySelectorAll('.php-email-form'); + + forms.forEach( function(e) { + e.addEventListener('submit', function(event) { + event.preventDefault(); + + let thisForm = this; + + let action = thisForm.getAttribute('action'); + let recaptcha = thisForm.getAttribute('data-recaptcha-site-key'); + + if( ! action ) { + displayError(thisForm, 'The form action property is not set!') + return; + } + thisForm.querySelector('.loading').classList.add('d-block'); + thisForm.querySelector('.error-message').classList.remove('d-block'); + thisForm.querySelector('.sent-message').classList.remove('d-block'); + + let formData = new FormData( thisForm ); + + if ( recaptcha ) { + if(typeof grecaptcha !== "undefined" ) { + grecaptcha.ready(function() { + try { + grecaptcha.execute(recaptcha, {action: 'php_email_form_submit'}) + .then(token => { + formData.set('recaptcha-response', token); + php_email_form_submit(thisForm, action, formData); + }) + } catch(error) { + displayError(thisForm, error) + } + }); + } else { + displayError(thisForm, 'The reCaptcha javascript API url is not loaded!') + } + } else { + php_email_form_submit(thisForm, action, formData); + } + }); + }); + + function php_email_form_submit(thisForm, action, formData) { + fetch(action, { + method: 'POST', + body: formData, + headers: {'X-Requested-With': 'XMLHttpRequest'} + }) + .then(response => { + if( response.ok ) { + return response.text() + } else { + throw new Error(`${response.status} ${response.statusText} ${response.url}`); + } + }) + .then(data => { + thisForm.querySelector('.loading').classList.remove('d-block'); + if (data.trim() == 'OK') { + thisForm.querySelector('.sent-message').classList.add('d-block'); + thisForm.reset(); + } else { + throw new Error(data ? data : 'Form submission failed and no error message returned from: ' + action); + } + }) + .catch((error) => { + displayError(thisForm, error); + }); + } + + function displayError(thisForm, error) { + thisForm.querySelector('.loading').classList.remove('d-block'); + thisForm.querySelector('.error-message').innerHTML = error; + thisForm.querySelector('.error-message').classList.add('d-block'); + } + +})(); -- cgit 1.4.1-2-gfad0