assetflow/static/js/formHandler.js

61 lines
1.9 KiB
JavaScript

var amountOfForms = $('.frontendForm').length;
$('.frontendForm').each(function() {
$(this).on('submit', function(e) {
e.preventDefault();
var form = $(this);
// Show overlay with spinner
$('.loader-overlay').addClass('loaderActive');
formData = form.serializeArray();
console.log('submitting form');
$.ajax({
type: $(this).attr('method'),
url: $(this).attr('data-target'),
data: formData,
dataType: 'json',
success: function(data) {
console.log('success');
// Hide overlay with spinner
$('.loader-overlay').removeClass('loaderActive');
// Close the modal
$('.modal').modal('hide');
// Clear all fields
form.find('input, textarea').val('');
normalizeToast()
$('#generalToast').addClass('text-bg-success');
$('#generalToast').toast('show');
$('#generalToast').children('.d-flex').children('.toast-body').html('<i class="bi bi-check2"></i> Changes saved successfully.');
setTimeout(() => {
$('#generalToast').toast('hide');;
window.location.reload();
}, 1500);
},
error: function(data) {
console.log('error');
// Hide overlay with spinner
$('.loader-overlay').removeClass('loaderActive');
// Check for response code 409
normalizeToast()
$('#generalToast').addClass('text-bg-danger');
$('#generalToast').toast('show');
if (data.status == 409) {
$('#generalToast').children('.d-flex').children('.toast-body').html('<i class="bi bi-exclamation-triangle-fill"></i> The element you tried to create already exists.');
}else {
$('#generalToast').children('.d-flex').children('.toast-body').html('<i class="bi bi-exclamation-triangle-fill"></i> Something went wrong. Please try again later.');
}
setTimeout(() => {
$('#generalToast').toast('hide');
}, 3000);
}
});
})
});
console.info("Found " + amountOfForms + " forms on this page.")