From 32842e276eaf9f2fcd310c476828c53ae90beed3 Mon Sep 17 00:00:00 2001 From: Jerome Jutteau Date: Sun, 13 Dec 2020 19:59:29 +0100 Subject: [PATCH 1/1] [BUGFIX] Add specific handle for XHR error Avoid aborting on this type of error, better wait for state change. Still log "error" and "abort" events. ref #212 Signed-off-by: Jerome Jutteau --- lib/functions.js.php | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/lib/functions.js.php b/lib/functions.js.php index ced2fa7..71ce17b 100644 --- a/lib/functions.js.php +++ b/lib/functions.js.php @@ -273,12 +273,18 @@ function control_selected_file_size(max_size, error_str) } } +function XHRErrorHandler(e) +{ + var text = "${e.type}: ${e.loaded} bytes transferred" + console.log(text) +} + function pop_failure (e) { - var text = "An error occured"; + var text = "

An error occured"; if (typeof e !== 'undefined') - text = e; - text = "

" + text + "

"; + text += ": " + e; + text += "

"; document.getElementById('error_pop').innerHTML = e; document.getElementById('uploading').style.display = 'none'; @@ -339,8 +345,8 @@ function classic_upload (file, time, password, one_time, upload_password) var req = new XMLHttpRequest (); req.upload.addEventListener ("progress", upload_progress, false); - req.addEventListener ("error", pop_failure, false); - req.addEventListener ("abort", pop_failure, false); + req.addEventListener ("error", XHRErrorHandler, false); + req.addEventListener ("abort", XHRErrorHandler, false); req.onreadystatechange = function () { if (req.readyState == 4 && req.status == 200) @@ -412,8 +418,8 @@ function async_upload_start (max_size, file, time, password, one_time, upload_pa async_global_time = time; var req = new XMLHttpRequest (); - req.addEventListener ("error", pop_failure, false); - req.addEventListener ("abort", pop_failure, false); + req.addEventListener ("error", XHRErrorHandler, false); + req.addEventListener ("abort", XHRErrorHandler, false); req.onreadystatechange = function () { if (req.readyState == 4 && req.status == 200) @@ -484,8 +490,8 @@ function async_upload_push (code) } var req = new XMLHttpRequest (); req.upload.addEventListener ("progress", async_upload_progress, false); - req.addEventListener ("error", pop_failure, false); - req.addEventListener ("abort", pop_failure, false); + req.addEventListener ("error", XHRErrorHandler, false); + req.addEventListener ("abort", XHRErrorHandler, false); req.onreadystatechange = function () { if (req.readyState == 4) @@ -546,8 +552,8 @@ function async_upload_push (code) function async_upload_end (code) { var req = new XMLHttpRequest (); - req.addEventListener ("error", pop_failure, false); - req.addEventListener ("abort", pop_failure, false); + req.addEventListener ("error", XHRErrorHandler, false); + req.addEventListener ("abort", XHRErrorHandler, false); req.onreadystatechange = function () { if (req.readyState == 4 && req.status == 200) -- 2.34.1