Updated the website.
This commit is contained in:
parent
fa4a47bb9a
commit
0ca87fcfef
108 changed files with 90169 additions and 13 deletions
85
assets/vendor/php-email-form/validate.js
vendored
Executable file
85
assets/vendor/php-email-form/validate.js
vendored
Executable file
|
@ -0,0 +1,85 @@
|
|||
/**
|
||||
* PHP Email Form Validation - v3.7
|
||||
* 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');
|
||||
}
|
||||
|
||||
})();
|
Loading…
Add table
Add a link
Reference in a new issue