Skip to content
Snippets Groups Projects
Commit fb5d9cbf authored by Patrick Jentsch's avatar Patrick Jentsch
Browse files

Add errors to form, if they occur

parent 96db5c1e
No related branches found
No related tags found
No related merge requests found
function SubmitAddJobForm(newJobFormElement, progressModalElement, request) {
var formData;
var progress;
var progressModal;
formData = new FormData(newJobFormElement);
progressModal = M.Modal.getInstance(progressModalElement);
var formData = new FormData(newJobFormElement);
var progressModal = M.Modal.getInstance(progressModalElement);
progressModal.options.dismissible = false;
progressModalElement.querySelector(".title").innerHTML = newJobFormElement.title.value;
request.upload.addEventListener("progress", function(event) {
progressInPercent = Math.floor(100 * event.loaded / event.total).toString() + "%";
progressModalElement.querySelector(".progress-in-percent").innerHTML = progressInPercent;
progressModalElement.querySelector(".determinate").style.width = progressInPercent;
request.addEventListener("abort", function(event) {
progressModalElement.querySelector(".progress-in-percent").innerHTML = "0%";
progressModalElement.querySelector(".determinate").style.width = "0%";
});
request.addEventListener("load", function(event) {
if (request.status === 201) {
window.location.href = JSON.parse(this.responseText)['redirect_url'];
}
if (request.status === 400) {
console.log(JSON.parse(this.responseText));
// TODO print errors under input fields.
progressModal.close();
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) {
location.reload();
}
});
request.addEventListener("abort", function(event) {
progressModalElement.querySelector(".progress-in-percent").innerHTML = "0%";
progressModalElement.querySelector(".determinate").style.width = "0%";
request.upload.addEventListener("progress", function(event) {
progressInPercent = Math.floor(100 * event.loaded / event.total).toString() + "%";
progressModalElement.querySelector(".progress-in-percent").innerHTML = progressInPercent;
progressModalElement.querySelector(".determinate").style.width = progressInPercent;
});
progressModal.open();
request.open("POST", window.location.href);
request.send(formData);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment