diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigRestartBean.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigRestartBean.java index dcefa84e3..657039400 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigRestartBean.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigRestartBean.java @@ -33,7 +33,8 @@ public class ConfigRestartBean { ctx.addShutdownTask(new ConfigServiceHandler.UpdateWrapperManagerTask(Router.EXIT_HARD)); //ctx.router().shutdown(Router.EXIT_HARD); // never returns ctx.router().shutdownGracefully(Router.EXIT_HARD); // give the UI time to respond - } else if ("cancelShutdown".equals(action) || _("Cancel shutdown", ctx).equals(action)) { + } else if ("cancelShutdown".equals(action) || _("Cancel shutdown", ctx).equals(action) || + _("Cancel restart", ctx).equals(action)) { ctx.router().cancelGracefulShutdown(); } else if ("restartImmediate".equals(action) || _("Restart immediately", ctx).equals(action)) { ctx.addShutdownTask(new ConfigServiceHandler.UpdateWrapperManagerTask(Router.EXIT_HARD_RESTART)); diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java index bac8d0009..fffdcad6a 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java @@ -37,6 +37,7 @@ public class ConfigUIHelper extends HelperBase { } private static final String langs[] = {"de", "en", "fr", "nl", "se", "zh"}; + private static final String flags[] = {"de", "us", "fr", "nl", "se", "cn"}; private static final String xlangs[] = {_x("German"), _x("English"), _x("French"), _x("Dutch"), _x("Swedish"), _x("Chinese")}; @@ -49,7 +50,9 @@ public class ConfigUIHelper extends HelperBase { buf.append("").append(_(xlangs[i])).append("
\n"); + buf.append("value=\"").append(langs[i]).append("\">") + .append("\"\" ") + .append(_(xlangs[i])).append("
\n"); } return buf.toString(); } diff --git a/apps/routerconsole/java/src/net/i2p/router/web/NetDbRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/NetDbRenderer.java index abd20b770..e551b15f0 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/NetDbRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/NetDbRenderer.java @@ -84,8 +84,8 @@ public class NetDbRenderer { public void renderLeaseSetHTML(Writer out) throws IOException { StringBuilder buf = new StringBuilder(4*1024); buf.append("

" + _("Network Database Contents") + "

\n"); - buf.append("" + _("View") + " RouterInfo"); - buf.append("

LeaseSets

\n"); + buf.append("" + _("View RouterInfo") + ""); + buf.append("

").append(_("LeaseSets")).append("

\n"); Set leases = new TreeSet(new LeaseSetComparator()); leases.addAll(_context.netDb().getLeases()); long now = _context.clock().now(); @@ -132,7 +132,7 @@ public class NetDbRenderer { } public void renderStatusHTML(Writer out, boolean full) throws IOException { - out.write("

" + _("Network Database Contents") + " (" + _("View") + " LeaseSets)

\n"); + out.write("

" + _("Network Database Contents") + " (" + _("View LeaseSets") + ")

\n"); if (!_context.netDb().isInitialized()) { out.write(_("Not initialized")); out.flush(); @@ -244,7 +244,7 @@ public class NetDbRenderer { } for (Iterator iter = info.getAddresses().iterator(); iter.hasNext(); ) { RouterAddress addr = (RouterAddress)iter.next(); - buf.append(DataHelper.stripHTML(addr.getTransportStyle())).append(": "); + buf.append("").append(DataHelper.stripHTML(addr.getTransportStyle())).append(": "); for (Iterator optIter = addr.getOptions().keySet().iterator(); optIter.hasNext(); ) { String name = (String)optIter.next(); String val = addr.getOptions().getProperty(name); diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ProfileOrganizerRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/ProfileOrganizerRenderer.java index 090219d50..f7cb64a0a 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ProfileOrganizerRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ProfileOrganizerRenderer.java @@ -105,6 +105,9 @@ class ProfileOrganizerRenderer { buf.append(""); buf.append(_context.commSystem().renderPeerHTML(peer)); + // debug + //if(prof.getIsExpandedDB()) + // buf.append(" ** "); buf.append(""); switch (tier) { @@ -145,18 +148,19 @@ class ProfileOrganizerRenderer { buf.append("").append(num(prof.getIntegrationValue())); buf.append(""); if (_context.shitlist().isShitlisted(peer)) buf.append(_("Banned")); - if (prof.getIsFailing()) buf.append(" ").append(_("Failing")); - if (_context.commSystem().wasUnreachable(peer)) buf.append(" ").append(_("Unreachable")); + if (prof.getIsFailing()) buf.append(' ').append(_("Failing")); + if (_context.commSystem().wasUnreachable(peer)) buf.append(' ').append(_("Unreachable")); Rate failed = prof.getTunnelHistory().getFailedRate().getRate(30*60*1000); long fails = failed.getCurrentEventCount() + failed.getLastEventCount(); if (fails > 0) { Rate accepted = prof.getTunnelCreateResponseTime().getRate(30*60*1000); long total = fails + accepted.getCurrentEventCount() + accepted.getLastEventCount(); if (total / fails <= 10) // hide if < 10% - buf.append(' ').append(fails).append('/').append(total).append(" ").append(_("Test Fails")); + buf.append(' ').append(fails).append('/').append(total).append(' ').append(_("Test Fails")); } buf.append(" "); - buf.append("profile"); + buf.append("").append(_("profile")).append(""); buf.append(" +-\n"); buf.append(""); // let's not build the whole page in memory (~500 bytes per peer) @@ -223,14 +227,20 @@ class ProfileOrganizerRenderer { buf.append("").append(dbh.getUnpromptedDbStoreOld()).append(""); buf.append("").append(davg(dbh, 60*60*1000l)).append(""); buf.append("").append(davg(dbh, 24*60*60*1000l)).append(""); + } else { + for (int i = 0; i < 6; i++) + buf.append("").append(_(NA)); } } buf.append(""); buf.append("

").append(_("Thresholds:")).append("

"); - buf.append("

").append(_("Speed")).append(": ").append(num(_organizer.getSpeedThreshold())).append(" (").append(fast).append(" fast peers)
"); - buf.append("").append(_("Capacity")).append(": ").append(num(_organizer.getCapacityThreshold())).append(" (").append(reliable).append(" high capacity peers)
"); - buf.append("").append(_("Integration")).append(": ").append(num(_organizer.getIntegrationThreshold())).append(" (").append(integrated).append(" well integrated peers)

"); + buf.append("

").append(_("Speed")).append(": ").append(num(_organizer.getSpeedThreshold())) + .append(" (").append(fast).append(' ').append(_("fast peers")).append(")
"); + buf.append("").append(_("Capacity")).append(": ").append(num(_organizer.getCapacityThreshold())) + .append(" (").append(reliable).append(' ').append(_("high capacity peers")).append(")
"); + buf.append("").append(_("Integration")).append(": ").append(num(_organizer.getIntegrationThreshold())) + .append(" (").append(integrated).append(' ').append(_(" well integrated peers")).append(")

"); buf.append("

").append(_("Definitions")).append(":