forked from I2P_Developers/i2p.i2p
Wizard: Improve ajax
Drop unused test wrapper Enable first run detection Spelling fix
This commit is contained in:
59
apps/routerconsole/jsp/js/welcomeajax.js
Normal file
59
apps/routerconsole/jsp/js/welcomeajax.js
Normal 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);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user