Only load or do things if necessary

This commit is contained in:
Brain 2022-08-24 15:27:20 +02:00
parent 0882053a42
commit 3b14c01591
Signed by untrusted user: Brain
GPG Key ID: 9CF47083EE57670D
2 changed files with 23 additions and 13 deletions

View File

@ -1,14 +1,14 @@
const contactFormAjaxUrl = '/php/contact_form.php'; const contactFormAjaxUrl = '/php/contact_form.php';
const contact_form = document.getElementsByClassName('content__contact_form')[0];
const subject = document.getElementsByClassName('contact_form__subject')[0];
const message = document.getElementsByClassName('contact_form__message')[0];
const name = document.getElementsByClassName('contact_form__name')[0];
const email = document.getElementsByClassName('contact_form__email')[0];
const captcha = document.getElementsByClassName('contact_form__captcha')[0];
const now = (new Date().getTime()/1000).toFixed();
const feedback = document.getElementsByClassName('contact_form__feedback')[0];
window.addEventListener('DOMContentLoaded', function(event) { window.addEventListener('DOMContentLoaded', function() {
const contact_form = document.getElementsByClassName('content__contact_form')[0];
if (contact_form) {
contact_form.addEventListener('submit', wtf_submitContactForm, false);
wtf_startContactFormSession();
}
});
function wtf_startContactFormSession() {
let formData = new FormData(); let formData = new FormData();
formData.append('action', 'start_session'); formData.append('action', 'start_session');
fetch(contactFormAjaxUrl, { fetch(contactFormAjaxUrl, {
@ -29,10 +29,17 @@ window.addEventListener('DOMContentLoaded', function(event) {
.catch(error => { .catch(error => {
console.error('Could not start the session:', error); console.error('Could not start the session:', error);
}); });
}); }
contact_form.addEventListener('submit', function(event) { function wtf_submitContactForm(event) {
event.preventDefault(); event.preventDefault();
const subject = document.getElementsByClassName('contact_form__subject')[0];
const message = document.getElementsByClassName('contact_form__message')[0];
const name = document.getElementsByClassName('contact_form__name')[0];
const email = document.getElementsByClassName('contact_form__email')[0];
const captcha = document.getElementsByClassName('contact_form__captcha')[0];
let formData = new FormData(); let formData = new FormData();
formData.append('action', 'handle_form'); formData.append('action', 'handle_form');
formData.append('subject', subject.value); formData.append('subject', subject.value);
@ -55,6 +62,7 @@ contact_form.addEventListener('submit', function(event) {
}) })
.then(response => response.json()) .then(response => response.json())
.then(json => { .then(json => {
const feedback = document.getElementsByClassName('contact_form__feedback')[0];
console.log(json); console.log(json);
if (json.errors) { if (json.errors) {
feedback.classList.remove('--success'); feedback.classList.remove('--success');
@ -84,4 +92,4 @@ contact_form.addEventListener('submit', function(event) {
} }
}) })
.catch(error => console.log(error)); .catch(error => console.log(error));
}, false); }

View File

@ -1,5 +1,7 @@
/* Unhide contact form if JS is enabled */ /* Unhide contact form if JS is enabled */
window.addEventListener('DOMContentLoaded', (event) => { window.addEventListener('DOMContentLoaded', (event) => {
const contact_form_wrapper = document.getElementsByClassName('content__contact_form_wrapper')[0]; const contact_form_wrapper = document.getElementsByClassName('content__contact_form_wrapper')[0];
if (contact_form_wrapper) {
contact_form_wrapper.style.setProperty('display', 'block'); contact_form_wrapper.style.setProperty('display', 'block');
}
}); });