diff options
Diffstat (limited to 'qc_app/static/js/upload_progress.js')
-rw-r--r-- | qc_app/static/js/upload_progress.js | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/qc_app/static/js/upload_progress.js b/qc_app/static/js/upload_progress.js deleted file mode 100644 index 9638b36..0000000 --- a/qc_app/static/js/upload_progress.js +++ /dev/null @@ -1,97 +0,0 @@ -function make_processing_indicator(elt) { - var count = 0; - return function() { - var message = "Finalising upload and saving file: " - if(count > 5) { - count = 1; - } - for(i = 0; i < count; i++) { - message = message + "."; - } - elt.innerHTML = message - count = count + 1 - }; -} - -function make_progress_updater(file, indicator_elt) { - var progress_bar = indicator_elt.querySelector("#progress-bar"); - var progress_text = indicator_elt.querySelector("#progress-text"); - var extra_text = indicator_elt.querySelector("#progress-extra-text"); - return function(event) { - if(event.loaded <= file.size) { - var percent = Math.round((event.loaded / file.size) * 100); - progress_bar.value = percent - progress_text.innerHTML = "Uploading: " + percent + "%"; - extra_text.setAttribute("class", "hidden") - } - - if(event.loaded == event.total) { - progress_bar.value = 100; - progress_text.innerHTML = "Uploaded: 100%"; - extra_text.setAttribute("class", null); - intv = setInterval(make_processing_indicator(extra_text), 400); - setTimeout(function() {clearTimeout(intv);}, 20000); - } - }; -} - -function setup_cancel_upload(request, indicator_elt) { - document.getElementById("btn-cancel-upload").addEventListener( - "click", function(event) { - event.preventDefault(); - request.abort(); - }); -} - -function setup_request(file, progress_indicator_elt) { - var request = new XMLHttpRequest(); - var updater = make_progress_updater(file, progress_indicator_elt); - request.upload.addEventListener("progress", updater); - request.onload = function(event) { - document.location.assign(request.responseURL); - }; - setup_cancel_upload(request, progress_indicator_elt) - return request; -} - -function selected_filetype(radios) { - for(idx = 0; idx < radios.length; idx++) { - if(radios[idx].checked) { - return radios[idx].value; - } - } -} - -function make_data_uploader(setup_formdata) { - return function(event) { - event.preventDefault(); - - var pindicator = document.getElementById("upload-progress-indicator"); - - var form = event.target; - var the_file = form.querySelector("input[type='file']").files[0]; - if(the_file === undefined) { - form.querySelector("input[type='file']").parentElement.setAttribute( - "class", "invalid-input"); - error_elt = form.querySelector("#no-file-error"); - if(error_elt !== undefined) { - error_elt.setAttribute("style", "display: block;"); - } - return false; - } - var formdata = setup_formdata(form); - - document.getElementById("progress-filename").innerHTML = the_file.name; - var request = setup_request(the_file, pindicator); - request.open(form.getAttribute("method"), form.getAttribute("action")); - request.send(formdata); - return false; - } -} - - -function setup_upload_handlers(formid, datauploader) { - console.info("Setting up the upload handlers.") - upload_form = document.getElementById(formid); - upload_form.addEventListener("submit", datauploader); -} |