mirror of
				https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
				synced 2025-10-31 02:32:45 +00:00 
			
		
		
		
	Use modals instead of toasts for progress indication.
This commit is contained in:
		| @@ -1,30 +1,32 @@ | ||||
| function sendNewJobFormData(form, progress) { | ||||
|   var XHR = new XMLHttpRequest(); | ||||
|   var FD = new FormData(form); | ||||
|   XHR.upload.addEventListener("progress", function(event) { | ||||
|     progress.querySelector(".determinate").style.width = ((event.loaded / event.total) * 100).toString() + "%"; | ||||
| function sendNewJobFormData(newJobFormElement, progressModalElement) { | ||||
|   var formData; | ||||
|   var progress; | ||||
|   var progressModal; | ||||
|   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) { | ||||
|     form.reset(); | ||||
|   request.addEventListener("loadend", function(event) { | ||||
|     newJobFormElement.reset(); | ||||
|     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) { | ||||
|     event.preventDefault(); | ||||
|     var toast = M.toast( | ||||
|       {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")); | ||||
|     sendNewJobFormData(newJobFormElement, progressModalElement); | ||||
|   }); | ||||
| } | ||||
|   | ||||
| @@ -121,7 +121,22 @@ | ||||
|     </form> | ||||
|   </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> | ||||
|   initNewJobForm(document.getElementById("new-nlp-job-form")); | ||||
|   initNewJobForm(document.getElementById("new-nlp-job-form"), | ||||
|                  document.getElementById("progress-modal")); | ||||
| </script> | ||||
| {% endblock %} | ||||
|   | ||||
| @@ -138,7 +138,22 @@ | ||||
|     </form> | ||||
|   </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> | ||||
|   initNewJobForm(document.getElementById("new-ocr-job-form")); | ||||
|   initNewJobForm(document.getElementById("new-ocr-job-form"), | ||||
|                  document.getElementById("progress-modal")); | ||||
| </script> | ||||
| {% endblock %} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user