diff --git a/apps/routerconsole/java/src/com/vuze/plugins/mlab/MLabRunner.java b/apps/routerconsole/java/src/com/vuze/plugins/mlab/MLabRunner.java index 2afb2c0e31..9c5d4f37ed 100644 --- a/apps/routerconsole/java/src/com/vuze/plugins/mlab/MLabRunner.java +++ b/apps/routerconsole/java/src/com/vuze/plugins/mlab/MLabRunner.java @@ -224,7 +224,7 @@ public class MLabRunner { results.put("down", down_bps); results.put("server_host", server_host); if (server_city != null) - results.put("server_city", server_city); + results.put("server_city", server_city.replace("_", ", ")); if (server_country != null) results.put("server_country", server_country); listener.complete(results); diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/WizardHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/WizardHandler.java index 5ccc4ed3fd..14cc64fe7d 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/WizardHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/WizardHandler.java @@ -46,6 +46,19 @@ public class WizardHandler extends FormHandler { } if ("4".equals(page)) { startNDT(); + } else if ("5".equals(page)) { + synchronized (_helper) { + if (_helper.isNDTSuccessful()) { + addFormNotice(_t("Bandwidth test completed successfully")); + } else if (_helper.isNDTComplete()) { + addFormError(_t("Bandwidth test failed")); + } else if (_helper.isNDTRunning()) { + addFormError(_t("Bandwidth test did not complete")); + } else { + // didn't run at all? + addFormError(_t("Bandwidth test did not complete")); + } + } } else if ("6".equals(page)) { Map changes = new HashMap(); boolean updated = updateRates(changes); diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/WizardHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/WizardHelper.java index 833d75cfc5..aa24388279 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/WizardHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/WizardHelper.java @@ -55,6 +55,10 @@ public class WizardHelper extends HelperBase { return _listener != null && !_listener.isComplete(); } + public synchronized boolean isNDTSuccessful() { + return isNDTComplete() && getUpBandwidth() > 0 && getDownBandwidth() > 0; + } + /** * @return HTML-escaped status string or "" */ diff --git a/apps/routerconsole/jsp/js/ajax.js b/apps/routerconsole/jsp/js/ajax.js index 6f77019455..6e71b719e4 100644 --- a/apps/routerconsole/jsp/js/ajax.js +++ b/apps/routerconsole/jsp/js/ajax.js @@ -6,6 +6,8 @@ function ajax(url, target, refresh) { req = new XMLHttpRequest(); req.onreadystatechange = function() {ajaxDone(url, target, refresh);}; req.open("GET", url, true); + // IE https://www.jamesmaurer.com/ajax-refresh-problem-w-ie-not-refreshing.asp + req.setRequestHeader("If-Modified-Since","Sat, 1 Jan 2000 00:00:00 GMT"); req.send(null); // IE/Windows ActiveX version } else if (window.ActiveXObject) { @@ -13,6 +15,8 @@ function ajax(url, target, refresh) { if (req) { req.onreadystatechange = function() {ajaxDone(target);}; req.open("GET", url, true); + // IE https://www.jamesmaurer.com/ajax-refresh-problem-w-ie-not-refreshing.asp + req.setRequestHeader("If-Modified-Since","Sat, 1 Jan 2000 00:00:00 GMT"); req.send(null); } } diff --git a/apps/routerconsole/jsp/js/welcomeajax.js b/apps/routerconsole/jsp/js/welcomeajax.js index 81ab74486a..1c68fa5445 100644 --- a/apps/routerconsole/jsp/js/welcomeajax.js +++ b/apps/routerconsole/jsp/js/welcomeajax.js @@ -6,6 +6,8 @@ function ajax(url, target, refresh) { req = new XMLHttpRequest(); req.onreadystatechange = function() {ajaxDone(url, target, refresh);}; req.open("GET", url, true); + // IE https://www.jamesmaurer.com/ajax-refresh-problem-w-ie-not-refreshing.asp + req.setRequestHeader("If-Modified-Since","Sat, 1 Jan 2000 00:00:00 GMT"); req.send(null); // IE/Windows ActiveX version } else if (window.ActiveXObject) { @@ -13,6 +15,8 @@ function ajax(url, target, refresh) { if (req) { req.onreadystatechange = function() {ajaxDone(target);}; req.open("GET", url, true); + // IE https://www.jamesmaurer.com/ajax-refresh-problem-w-ie-not-refreshing.asp + req.setRequestHeader("If-Modified-Since","Sat, 1 Jan 2000 00:00:00 GMT"); req.send(null); } } @@ -29,7 +33,8 @@ function ajaxDone(url, target, refresh) { // output 1 for complete, 0 + status string for in progress fails = 0; var status; - if (req.responseText.startsWith("1")) { + // IE doesn't support startsWith() + if (req.responseText.indexOf("1") == 0) { results = doneMessage; running = false; done = true; diff --git a/apps/routerconsole/jsp/welcome.jsp b/apps/routerconsole/jsp/welcome.jsp index fffdb5c995..2b7b9b3bad 100644 --- a/apps/routerconsole/jsp/welcome.jsp +++ b/apps/routerconsole/jsp/welcome.jsp @@ -163,6 +163,10 @@ %> +<% + if (request.getParameter("skipbw") == null) { + // don't display this if we skipped the test +%>

<%=intl._t("Bandwidth Test Results")%>

@@ -174,6 +178,9 @@
<%=intl._t("Test running?")%><%=wizhelper.isNDTRunning()%>
<%=intl._t("Upstream Bandwidth")%><%=net.i2p.data.DataHelper.formatSize2Decimal(wizhelper.getUpBandwidth())%>Bps
<%=intl._t("Share of Bandwidth for I2P")%><%=Math.round(net.i2p.router.web.helpers.WizardHelper.BW_SCALE * 100)%>%
+<% + } // skipbw +%>

<%=intl._t("Bandwidth Configuration")%>