Wizard: Improve ajax

Drop unused test wrapper
Enable first run detection
Spelling fix
This commit is contained in:
zzz
2018-11-16 14:34:11 +00:00
parent f1e9bf8222
commit aa11211e5e
12 changed files with 113 additions and 143 deletions

View File

@ -0,0 +1,59 @@
var fails = 0;
function ajax(url, target, refresh) {
// native XMLHttpRequest object
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
req.onreadystatechange = function() {ajaxDone(url, target, refresh);};
req.open("GET", url, true);
req.send(null);
// IE/Windows ActiveX version
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLDOM");
if (req) {
req.onreadystatechange = function() {ajaxDone(target);};
req.open("GET", url, true);
req.send(null);
}
}
}
function ajaxDone(url, target, refresh) {
// only if req is "loaded"
if (req.readyState == 4) {
var fail = false;
var running = true;
var done = false;
// only if "OK"
if (req.status == 200) {
// output 1 for complete, 0 + status string for in progress
fails = 0;
var status;
if (req.responseText.startsWith("1")) {
results = doneMessage;
running = false;
done = true;
status = "";
} else {
results = progressMessage;
status = req.responseText.substring("1")
}
document.getElementById("xhr2").innerHTML = status;
document.getElementById(target).innerHTML = results;
} else if (fails == 0) {
// avoid spurious message if cancelled by user action
fails++;
} else {
document.getElementById(target).innerHTML = failMessage;
running = false;
fail = true;
}
var form = document.forms[0];
form.prev.disabled = fail || !done;
form.skip.disabled = !done;
form.cancelbw.disabled = !running;
form.next.disabled = fail || !done;
setTimeout(function() {ajax(url, target, refresh);}, refresh);
}
}