Add errors to form, if they occur

This commit is contained in:
Patrick Jentsch 2019-11-19 09:54:31 +01:00
parent 96db5c1e75
commit fb5d9cbf7d

View File

@ -1,34 +1,39 @@
function SubmitAddJobForm(newJobFormElement, progressModalElement, request) { function SubmitAddJobForm(newJobFormElement, progressModalElement, request) {
var formData; var formData = new FormData(newJobFormElement);
var progress; var progressModal = M.Modal.getInstance(progressModalElement);
var progressModal;
formData = new FormData(newJobFormElement);
progressModal = M.Modal.getInstance(progressModalElement);
progressModal.options.dismissible = false; progressModal.options.dismissible = false;
progressModalElement.querySelector(".title").innerHTML = newJobFormElement.title.value; progressModalElement.querySelector(".title").innerHTML = newJobFormElement.title.value;
request.upload.addEventListener("progress", function(event) {
progressInPercent = Math.floor(100 * event.loaded / event.total).toString() + "%"; request.addEventListener("abort", function(event) {
progressModalElement.querySelector(".progress-in-percent").innerHTML = progressInPercent; progressModalElement.querySelector(".progress-in-percent").innerHTML = "0%";
progressModalElement.querySelector(".determinate").style.width = progressInPercent; progressModalElement.querySelector(".determinate").style.width = "0%";
}); });
request.addEventListener("load", function(event) { request.addEventListener("load", function(event) {
if (request.status === 201) { if (request.status === 201) {
window.location.href = JSON.parse(this.responseText)['redirect_url']; window.location.href = JSON.parse(this.responseText)['redirect_url'];
} }
if (request.status === 400) { if (request.status === 400) {
console.log(JSON.parse(this.responseText)); progressModal.close();
// TODO print errors under input fields. progressModalElement.querySelector(".progress-in-percent").innerHTML = "0%";
progressModalElement.querySelector(".determinate").style.width = "0%";
for (let [field, errors] of Object.entries(JSON.parse(this.responseText))) {
let fieldElement = document.getElementById(field).closest('.input-field');
for (let error of errors) {
fieldElement.insertAdjacentHTML('beforeend', '<span class="helper-text red-text">' + error + '</span>');
}
}
} }
if (request.status === 500) { if (request.status === 500) {
location.reload(); location.reload();
} }
}); });
request.addEventListener("abort", function(event) { request.upload.addEventListener("progress", function(event) {
progressModalElement.querySelector(".progress-in-percent").innerHTML = "0%"; progressInPercent = Math.floor(100 * event.loaded / event.total).toString() + "%";
progressModalElement.querySelector(".determinate").style.width = "0%"; progressModalElement.querySelector(".progress-in-percent").innerHTML = progressInPercent;
progressModalElement.querySelector(".determinate").style.width = progressInPercent;
}); });
progressModal.open(); progressModal.open();
request.open("POST", window.location.href); request.open("POST", window.location.href);
request.send(formData); request.send(formData);