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

Use modals instead of toasts for progress indication.

parent 70c97d44
No related branches found
No related tags found
No related merge requests found
function sendNewJobFormData(form, progress) { function sendNewJobFormData(newJobFormElement, progressModalElement) {
var XHR = new XMLHttpRequest(); var formData;
var FD = new FormData(form); var progress;
XHR.upload.addEventListener("progress", function(event) { var progressModal;
progress.querySelector(".determinate").style.width = ((event.loaded / event.total) * 100).toString() + "%"; var request;
formData = new FormData(newJobFormElement);
progressModal = M.Modal.getInstance(progressModalElement);
request = new XMLHttpRequest();
progressModal.options.dismissible = false;
progressModalElement.querySelector(".title").innerHTML = newJobFormElement.title.value;
request.upload.addEventListener("progress", function(event) {
progressModalElement.querySelector(".loaded").innerHTML = event.loaded.toString();
progressModalElement.querySelector(".total").innerHTML = event.total.toString();
progressModalElement.querySelector(".determinate").style.width = ((event.loaded / event.total) * 100).toString() + "%";
}); });
XHR.addEventListener("loadend", function(event) { request.addEventListener("loadend", function(event) {
form.reset(); newJobFormElement.reset();
location.reload(); location.reload();
}); });
XHR.open("POST", window.location.href);
XHR.send(FD); progressModal.open();
request.open("POST", window.location.href);
request.send(formData);
} }
function initNewJobForm(newJobFormElement) { function initNewJobForm(newJobFormElement, progressModalElement) {
newJobFormElement.addEventListener("submit", function(event) { newJobFormElement.addEventListener("submit", function(event) {
event.preventDefault(); event.preventDefault();
var toast = M.toast( sendNewJobFormData(newJobFormElement, progressModalElement);
{html: `<div class="row">
<div class="col s12">${this.title.value}</div>
<div class="col s12">
<div class="progress">
<div class="determinate" style="width: 0%"></div>
</div>
</div>
</div>`,
displayLength: Infinity}
);
sendNewJobFormData(this, toast.el.querySelector(".progress"));
}); });
} }
...@@ -121,7 +121,22 @@ ...@@ -121,7 +121,22 @@
</form> </form>
</div> </div>
</div> </div>
<div id="progress-modal" class="modal">
<div class="modal-content">
<h4 class="title"></h4>
<p>Uploading files... <span class="loaded"></span>/<span class="total"></span></p>
<div class="progress">
<div class="determinate" style="width: 0%"></div>
</div>
</div>
<div class="modal-footer">
<a href="#!" class="modal-close waves-effect waves-green btn-flat disabled">Cancel</a>
</div>
</div>
<script> <script>
initNewJobForm(document.getElementById("new-nlp-job-form")); initNewJobForm(document.getElementById("new-nlp-job-form"),
document.getElementById("progress-modal"));
</script> </script>
{% endblock %} {% endblock %}
...@@ -138,7 +138,22 @@ ...@@ -138,7 +138,22 @@
</form> </form>
</div> </div>
</div> </div>
<div id="progress-modal" class="modal">
<div class="modal-content">
<h4 class="title"></h4>
<p>Uploading files... <span class="loaded"></span>/<span class="total"></span></p>
<div class="progress">
<div class="determinate" style="width: 0%"></div>
</div>
</div>
<div class="modal-footer">
<a href="#!" class="modal-close waves-effect waves-green btn-flat disabled">Cancel</a>
</div>
</div>
<script> <script>
initNewJobForm(document.getElementById("new-ocr-job-form")); initNewJobForm(document.getElementById("new-ocr-job-form"),
document.getElementById("progress-modal"));
</script> </script>
{% endblock %} {% endblock %}
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