diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java new file mode 100644 index 0000000000000000000000000000000000000000..59a6ecd21c817caad68a3e94308753e148e7f462 --- /dev/null +++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java @@ -0,0 +1,411 @@ +package net.i2p.router.web; + +import java.io.File; +import java.io.IOException; +import java.io.Writer; + +import net.i2p.router.RouterContext; + +/** + * Refactored from summarynoframe.jsp to save ~100KB + * + */ +public class SummaryBarRenderer { + private RouterContext _context; + private SummaryHelper _helper; + + public SummaryBarRenderer(RouterContext context, SummaryHelper helper) { + _context = context; + _helper = helper; + } + + public void renderSummaryHTML(Writer out) throws IOException { + StringBuilder buf = new StringBuilder(8*1024); + + buf.append("<a href=\"index.jsp\" target=\"_top\"><img src=\"/themes/console/images/i2plogo.png\" alt=\"") + .append(_("I2P Router Console")) + .append("\" title=\"") + .append(_("I2P Router Console")) + .append("\"></a><hr>"); + + File lpath = new File(_context.getBaseDir(), "docs/toolbar.html"); + // you better have target="_top" for the links in there... + if (lpath.exists()) { + ContentHelper linkhelper = new ContentHelper(); + linkhelper.setPage(lpath.getAbsolutePath()); + linkhelper.setMaxLines("100"); + buf.append(linkhelper.getContent()); + } else { + buf.append("<h3><a href=\"/configclients.jsp\" target=\"_top\" title=\"") + .append("Configure startup of clients and webapps (services); manually start dormant services") + .append("\">") + .append(_("I2P Services")) + .append("</a></h3>\n" + + + "<hr><table>" + + + "<tr><td><a href=\"susidns/index.jsp\" target=\"_blank\" title=\"") + .append(_("Manage your I2P hosts file here (I2P domain name resolution)")) + .append("\">") + .append(_("Addressbook")) + .append("</a>\n" + + + "<a href=\"i2psnark/\" target=\"_blank\" title=\"") + .append(_("Built-in anonymous BitTorrent Client")) + .append("\">") + .append(_("Torrents")) + .append("</a>\n" + + + "<a href=\"susimail/susimail\" target=\"blank\" title=\"") + .append(_("Anonymous webmail client")) + .append("\">") + .append(_("Webmail")) + .append("</a>\n" + + + "<a href=\"http://127.0.0.1:7658/\" target=\"_blank\" title=\"") + .append(_("Anonymous resident webserver")) + .append("\">") + .append(_("Webserver")) + .append("</a></td></tr></table>\n" + + + "<hr><h3><a href=\"config.jsp\" target=\"_top\" title=\"") + .append(_("Configure I2P Router")) + .append("\">") + .append(_("I2P Internals")) + .append("</a></h3><hr>\n" + + + "<table><tr><td>\n" + + + "<a href=\"tunnels.jsp\" target=\"_top\" title=\"") + .append(_("View existing tunnels and tunnel build status")) + .append("\">") + .append(_("Tunnels")) + .append("</a>\n" + + + "<a href=\"peers.jsp\" target=\"_top\" title=\"") + .append(_("Show all current peer connections")) + .append("\">") + .append(_("Peers")) + .append("</a>\n" + + + "<a href=\"profiles.jsp\" target=\"_top\" title=\"") + .append(_("Show recent peer performance profiles")) + .append("\">") + .append(_("Profiles")) + .append("</a>\n" + + + "<a href=\"netdb.jsp\" target=\"_top\" title=\"") + .append(_("Show list of all known I2P routers")) + .append("\">") + .append(_("NetDB")) + .append("</a>\n" + + + "<a href=\"logs.jsp\" target=\"_top\" title=\"") + .append(_("Health Report")) + .append("\">") + .append(_("Logs")) + .append("</a>\n" + + + "<a href=\"jobs.jsp\" target=\"_top\" title=\"") + .append(_("Show the router's workload, and how it's performing")) + .append("\">") + .append(_("Jobs")) + .append("</a>\n" + + + "<a href=\"graphs.jsp\" target=\"_top\" title=\"") + .append(_("Graph router performance")) + .append("\">") + .append(_("Graphs")) + .append("</a>\n" + + + "<a href=\"oldstats.jsp\" target=\"_top\" title=\"") + .append(_("Textual router performance statistics")) + .append("\">") + .append(_("Stats")) + .append("</a></td></tr></table>\n"); + + out.write(buf.toString()); + buf.setLength(0); + } + + + + buf.append("<hr><h3><a href=\"help.jsp\" target=\"_top\" title=\"") + .append(_("I2P Router Help")) + .append("\">") + .append(_("General")) + .append("</a></h3><hr>" + + "<h4><a title=\"") + .append(_("Your unique I2P router identity is")) + .append(' ') + .append(_helper.getIdent()) + .append(", ") + .append(_("never reveal it to anyone")) + .append("\" href=\"netdb.jsp?r=.\" target=\"_top\">") + .append(_("Local Identity")) + .append("<a></h4><hr>\n" + + + "<table><tr><td align=\"left\">" + + "<b>") + .append(_("Version")) + .append(":</b></td>" + + "<td align=\"right\">") + .append(_helper.getVersion()) + .append("</td></tr>\n" + + + "<tr title=\"") + .append(_("How long we've been running for this session")) + .append("\">" + + "<td align=\"left\"><b>") + .append(_("Uptime")) + .append(":</b></td>" + + "<td align=\"right\">") + .append(_helper.getUptime()) + .append("</td></tr></table>\n" + + + "<hr><h4><a href=\"config.jsp#help\" target=\"_top\" title=\"") + .append(_("Help with configuring your firewall and router for optimal I2P performance")) + .append("\">") + .append(_helper.getReachability()) + .append("</a></h4><hr>\n"); + + + if (_helper.updateAvailable() || _helper.unsignedUpdateAvailable()) { + // display all the time so we display the final failure message + buf.append("<br>").append(UpdateHandler.getStatus()); + if ("true".equals(System.getProperty("net.i2p.router.web.UpdateHandler.updateInProgress"))) { + // nothing + } else if( + // isDone() is always false for now, see UpdateHandler + // ((!update.isDone()) && + _helper.getAction() == null && + _helper.getUpdateNonce() == null && + ConfigRestartBean.getRestartTimeRemaining() > 12*60*1000) { + long nonce = _context.random().nextLong(); + String prev = System.getProperty("net.i2p.router.web.UpdateHandler.nonce"); + if (prev != null) + System.setProperty("net.i2p.router.web.UpdateHandler.noncePrev", prev); + System.setProperty("net.i2p.router.web.UpdateHandler.nonce", nonce+""); + String uri = _helper.getRequestURI(); + buf.append("<form action=\"").append(uri).append("\" method=\"GET\">\n"); + buf.append("<input type=\"hidden\" name=\"updateNonce\" value=\"").append(nonce).append("\" >\n"); + if (_helper.updateAvailable()) { + buf.append("<button type=\"submit\" name=\"updateAction\" value=\"signed\" >") + .append(_("Download")) + .append(' ') + .append(_helper.getUpdateVersion()) + .append(' ') + .append(_("Update")) + .append("</button>\n"); + } + if (_helper.unsignedUpdateAvailable()) { + buf.append("<button type=\"submit\" name=\"updateAction\" value=\"Unsigned\" >") + .append(_("Download Unsigned")) + .append("<br>") + .append(_helper.getUnsignedUpdateVersion()) + .append(' ') + .append(_("Update")) + .append("</button>\n"); + } + buf.append("</form>\n"); + } + } + + + + + buf.append("<p>") + .append(ConfigRestartBean.renderStatus(_helper.getRequestURI(), _helper.getAction(), _helper.getConsoleNonce())) + + .append("</p><hr><h3><a href=\"peers.jsp\" target=\"_top\" title=\"") + .append(_("Show all current peer connections")) + .append("\">") + .append(_("Peers")) + .append("</a></h3><hr>\n" + + + "<table>\n" + + + "<tr><td align=\"left\"><b>") + .append(_("Active")) + .append(":</b></td><td align=\"right\">") + .append(_helper.getActivePeers()) + .append('/') + .append(_helper.getActiveProfiles()) + .append("</td></tr>\n" + + + "<tr><td align=\"left\"><b>") + .append(_("Fast")) + .append(":</b></td><td align=\"right\">") + .append(_helper.getFastPeers()) + .append("</td></tr>\n" + + + "<tr><td align=\"left\"><b>") + .append(_("High capacity")) + .append(":</b></td><td align=\"right\">") + .append(_helper.getHighCapacityPeers()) + .append("</td></tr>\n" + + + "<tr><td align=\"left\"><b>") + .append(_("Integrated")) + .append(":</b></td><td align=\"right\">") + .append(_helper.getWellIntegratedPeers()) + .append("</td></tr>\n" + + + "<tr><td align=\"left\"><b>") + .append(_("Known")) + .append(":</b></td><td align=\"right\">") + .append(_helper.getAllPeers()) + .append("</td></tr>\n" + + + "</table><hr>\n"); + + + out.write(buf.toString()); + buf.setLength(0); + + + if (_helper.showFirewallWarning()) { + buf.append("<h4><a href=\"config.jsp\" target=\"_top\" title=\"") + .append(_("Help with firewall configuration")) + .append("\">") + .append(_("Check NAT/firewall")) + .append("</a></h4>"); + } + + boolean reseedInProgress = Boolean.valueOf(System.getProperty("net.i2p.router.web.ReseedHandler.reseedInProgress")).booleanValue(); + // If showing the reseed link is allowed + if (_helper.allowReseed()) { + if (reseedInProgress) { + // While reseed occurring, show status message instead + buf.append("<i>").append(System.getProperty("net.i2p.router.web.ReseedHandler.statusMessage","")).append("</i><br>"); + } else { + // While no reseed occurring, show reseed link + long nonce = _context.random().nextLong(); + String prev = System.getProperty("net.i2p.router.web.ReseedHandler.nonce"); + if (prev != null) System.setProperty("net.i2p.router.web.ReseedHandler.noncePrev", prev); + System.setProperty("net.i2p.router.web.ReseedHandler.nonce", nonce+""); + String uri = _helper.getRequestURI(); + buf.append("<form action=\"").append(uri).append("\" method=\"GET\">\n"); + buf.append("<input type=\"hidden\" name=\"reseedNonce\" value=\"").append(nonce).append("\" >\n"); + buf.append("<button type=\"submit\" >Reseed</button></form>\n"); + } + } + // If a new reseed ain't running, and the last reseed had errors, show error message + if (!reseedInProgress) { + String reseedErrorMessage = System.getProperty("net.i2p.router.web.ReseedHandler.errorMessage",""); + if (reseedErrorMessage.length() > 0) { + buf.append("<i>").append(reseedErrorMessage).append("</i><br>"); + } + } + + + + buf.append("<hr><h3><a href=\"config.jsp\" title=\"") + .append(_("Configure router bandwidth allocation")) + .append("\" target=\"_top\">") + .append(_("Bandwidth in/out")) + .append("</a></h3><hr>" + + "<table>\n" + + + "<tr><td align=\"left\"><b>1s:</b></td><td align=\"right\">") + .append(_helper.getInboundSecondKBps()) + .append('/') + .append(_helper.getOutboundSecondKBps()) + .append("K/s</td></tr>\n" + + + "<tr><td align=\"left\"><b>5m:</b></td><td align=\"right\">") + .append(_helper.getInboundFiveMinuteKBps()) + .append('/') + .append(_helper.getOutboundFiveMinuteKBps()) + .append("K/s</td></tr>\n" + + + "<tr><td align=\"left\"><b>") + .append(_("Total")) + .append(":</b></td><td align=\"right\">") + .append(_helper.getInboundLifetimeKBps()) + .append('/') + .append(_helper.getOutboundLifetimeKBps()) + .append("K/s</td></tr>\n" + + + "<tr><td align=\"left\"><b>") + .append(_("Used")) + .append(":</b></td><td align=\"right\">") + .append(_helper.getInboundTransferred()) + .append('/') + .append(_helper.getOutboundTransferred()) + .append("</td></tr></table>\n" + + + "<hr><h3><a href=\"tunnels.jsp\" target=\"_top\" title=\"") + .append(_("View existing tunnels and tunnel build status")) + .append("\">") + .append(_("Tunnels in/out")) + .append("</a></h3><hr>" + + "<table>\n" + + + "<tr><td align=\"left\"><b>") + .append(_("Exploratory")) + .append(":</b></td><td align=\"right\">") + .append(_helper.getInboundTunnels()) + .append('/') + .append(_helper.getOutboundTunnels()) + .append("</td></tr>\n" + + + "<tr><td align=\"left\"><b>") + .append(_("Client")) + .append(":</b></td><td align=\"right\">") + .append(_helper.getInboundClientTunnels()) + .append('/') + .append(_helper.getOutboundClientTunnels()) + .append("</td></tr>\n" + + + "<tr><td align=\"left\"><b>") + .append(_("Participating")) + .append(":</b></td><td align=\"right\">") + .append(_helper.getParticipatingTunnels()) + .append("</td></tr>\n" + + + "</table><hr><h3><a href=\"/jobs.jsp\" target=\"_top\" title=\"") + .append(_("What's in the router's job queue?")) + .append("\">") + .append(_("Congestion")) + .append("</a></h3><hr>" + + "<table>\n" + + + "<tr><td align=\"left\"><b>") + .append(_("Job lag")) + .append(":</b></td><td align=\"right\">") + .append(_helper.getJobLag()) + .append("</td></tr>\n" + + + "<tr><td align=\"left\"><b>") + .append(_("Message delay")) + .append(":</b></td><td align=\"right\">") + .append(_helper.getMessageDelay()) + .append("</td></tr>\n" + + + "<tr><td align=\"left\"><b>") + .append(_("Tunnel lag")) + .append(":</b></td><td align=\"right\">") + .append(_helper.getTunnelLag()) + .append("</td></tr>\n" + + + "<tr><td align=\"left\"><b>") + .append(_("Backlog")) + .append(":</b></td><td align=\"right\">") + .append(_helper.getInboundBacklog()) + .append("</td></tr>\n" + + + "</table><hr><h4>") + .append(_helper.getTunnelStatus()) + .append("</h4><hr>\n") + .append(_helper.getDestinations()); + + + out.write(buf.toString()); + } + + /** translate a string */ + private String _(String s) { + return Messages.getString(s, _context); + } +} diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java index 369d24770dbf1aae80c905a1cb73d9c9887a8d15..fa366927a5e8c9da0cb187ceabd4d95e47b1b823 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java @@ -1,5 +1,6 @@ package net.i2p.router.web; +import java.io.IOException; import java.text.Collator; import java.text.DecimalFormat; import java.util.ArrayList; @@ -563,4 +564,28 @@ public class SummaryHelper extends HelperBase { public String getUnsignedUpdateVersion() { return NewsFetcher.getInstance(_context).unsignedUpdateVersion(); } + + /** output the summary bar to _out */ + public void renderSummaryBar() throws IOException { + SummaryBarRenderer renderer = new SummaryBarRenderer(_context, this); + renderer.renderSummaryHTML(_out); + } + + /* below here is stuff we need to get from summarynoframe.jsp to SummaryBarRenderer */ + + private String _action; + public void setAction(String s) { _action = s; } + public String getAction() { return _action; } + + private String _consoleNonce; + public void setConsoleNonce(String s) { _consoleNonce = s; } + public String getConsoleNonce() { return _consoleNonce; } + + private String _updateNonce; + public void setUpdateNonce(String s) { _updateNonce = s; } + public String getUpdateNonce() { return _updateNonce; } + + private String _requestURI; + public void setRequestURI(String s) { _requestURI = s; } + public String getRequestURI() { return _requestURI; } } diff --git a/apps/routerconsole/jsp/summarynoframe.jsp b/apps/routerconsole/jsp/summarynoframe.jsp index c772a8ffc6ae0e09ca5c998717b6598177ab84dc..0279a038a38d6c36dfedc3a5b77bac15f8e80bbc 100644 --- a/apps/routerconsole/jsp/summarynoframe.jsp +++ b/apps/routerconsole/jsp/summarynoframe.jsp @@ -7,126 +7,12 @@ %> <jsp:useBean class="net.i2p.router.web.SummaryHelper" id="helper" scope="request" /> <jsp:setProperty name="helper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> -<jsp:useBean class="net.i2p.router.web.ReseedHandler" id="reseed" scope="request" /> -<jsp:setProperty name="reseed" property="*" /> -<jsp:useBean class="net.i2p.router.web.UpdateHandler" id="update" scope="request" /> -<jsp:setProperty name="update" property="*" /> -<jsp:setProperty name="update" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> -<a href="index.jsp" target="_top"><img src="/themes/console/images/i2plogo.png" alt="I2P Router Console" title="I2P Router Console"></a><hr> -<% java.io.File lpath = new java.io.File(net.i2p.I2PAppContext.getGlobalContext().getBaseDir(), "docs/toolbar.html"); - // you better have target="_top" for the links in there... - if (lpath.exists()) { %> -<jsp:useBean class="net.i2p.router.web.ContentHelper" id="linkhelper" scope="request" /> -<jsp:setProperty name="linkhelper" property="page" value="<%=lpath.getAbsolutePath()%>" /> -<jsp:setProperty name="linkhelper" property="maxLines" value="100" /> -<jsp:getProperty name="linkhelper" property="content" /> -<% } else { %> -<h3><a href="/configclients.jsp" target="_top" title="Configure startup of clients and webapps (services); manually start dormant services.">I2P Services</a></h3> -<hr><table> -<tr><td><a href="susidns/index.jsp" target="_blank" title="Manage your I2P hosts file here (I2P domain name resolution).">Addressbook</a> -<a href="i2psnark/" target="_blank" title="Built-in anonymous BitTorrent Client">Torrents</a> -<a href="susimail/susimail" target="blank" title="Anonymous webmail client.">Webmail</a> -<a href="http://127.0.0.1:7658/" target="_blank" title="Anonymous resident webserver.">Webserver</a></td></tr></table> -<hr><h3><a href="config.jsp" target="_top" title="Configure I2P Router.">I2P Internals</a></h3><hr> -<table><tr><td> -<a href="tunnels.jsp" target="_top" title="View existing tunnels and tunnel build status.">Tunnels</a> -<a href="peers.jsp" target="_top" title="Show all current peer connections.">Peers</a> -<a href="profiles.jsp" target="_top" title="Show recent peer performance profiles.">Profiles</a> -<a href="netdb.jsp" target="_top" title="Show list of all known I2P routers.">NetDB</a> -<a href="logs.jsp" target="_top" title="Health Report.">Logs</a> -<a href="jobs.jsp" target="_top" title="Show the router's workload, and how it's performing.">Jobs</a> -<a href="graphs.jsp" target="_top" title="Graph router performance.">Graphs</a> -<a href="oldstats.jsp" target="_top" title="Textual router performance statistics.">Stats</a></td></tr></table> -<% } %> -<hr><h3><a href="help.jsp" target="_top" title="I2P Router Help.">General</a></h3><hr> -<h4><a title="Your unique I2P router identity is <jsp:getProperty name="helper" property="ident" />, never reveal it to anyone" href="netdb.jsp?r=." target="_top">Local Identity</a></h4><hr> -<table><tr><td align="left"> -<b>Version:</b></td> -<td align="right"><jsp:getProperty name="helper" property="version" /></td></tr> -<tr title="How long we've been running for this session."> -<td align="left"><b>Uptime:</b></td> -<td align="right"><jsp:getProperty name="helper" property="uptime" /> -</td></tr></table> -<hr><h4><a href="config.jsp#help" target="_top" title="Help with configuring your firewall and router for optimal I2P performance."><jsp:getProperty name="helper" property="reachability" /></a></h4><hr> +<jsp:setProperty name="helper" property="action" value="<%=request.getParameter("action")%>" /> +<jsp:setProperty name="helper" property="updateNonce" value="<%=request.getParameter("updateNonce")%>" /> +<jsp:setProperty name="helper" property="consoleNonce" value="<%=request.getParameter("consoleNonce")%>" /> +<jsp:setProperty name="helper" property="requestURI" value="<%=request.getRequestURI()%>" /> +<jsp:setProperty name="helper" property="writer" value="<%=out%>" /> <% - if (helper.updateAvailable() || helper.unsignedUpdateAvailable()) { - // display all the time so we display the final failure message - out.print("<br>" + net.i2p.router.web.UpdateHandler.getStatus()); - if ("true".equals(System.getProperty("net.i2p.router.web.UpdateHandler.updateInProgress"))) { - } else if((!update.isDone()) && - request.getParameter("action") == null && - request.getParameter("updateNonce") == null && - net.i2p.router.web.ConfigRestartBean.getRestartTimeRemaining() > 12*60*1000) { - long nonce = new java.util.Random().nextLong(); - String prev = System.getProperty("net.i2p.router.web.UpdateHandler.nonce"); - if (prev != null) System.setProperty("net.i2p.router.web.UpdateHandler.noncePrev", prev); - System.setProperty("net.i2p.router.web.UpdateHandler.nonce", nonce+""); - String uri = request.getRequestURI(); - out.print("<form action=\"" + uri + "\" method=\"GET\">\n"); - out.print("<input type=\"hidden\" name=\"updateNonce\" value=\"" + nonce + "\" />\n"); - if (helper.updateAvailable()) - out.print("<button type=\"submit\" name=\"updateAction\" value=\"signed\" >Download " + helper.getUpdateVersion() + " Update</button>\n"); - if (helper.unsignedUpdateAvailable()) - out.print("<button type=\"submit\" name=\"updateAction\" value=\"Unsigned\" >Download Unsigned<br>Update " + helper.getUnsignedUpdateVersion() + "</button>\n"); - out.print("</form>\n"); - } - } + // moved to java for ease of translation and to avoid 30 copies + helper.renderSummaryBar(); %> -<p> -<%=net.i2p.router.web.ConfigRestartBean.renderStatus(request.getRequestURI(), request.getParameter("action"), request.getParameter("consoleNonce"))%> -</p><hr><h3><a href="peers.jsp" target="_top" title="Show all current peer connections.">Peers</a></h3><hr> -<table> -<tr><td align="left"><b>Active:</b></td><td align="right"><jsp:getProperty name="helper" property="activePeers" />/<jsp:getProperty name="helper" property="activeProfiles" /></td></tr> -<tr><td align="left"><b>Fast:</b></td><td align="right"><jsp:getProperty name="helper" property="fastPeers" /></td></tr> -<tr><td align="left"><b>High capacity:</b></td><td align="right"><jsp:getProperty name="helper" property="highCapacityPeers" /></td></tr> -<tr><td align="left"><b>Integrated:</b></td><td align="right"><jsp:getProperty name="helper" property="wellIntegratedPeers" /></td></tr> -<tr><td align="left"><b>Known:</b></td><td align="right"><jsp:getProperty name="helper" property="allPeers" /></td></tr> -</table><hr> -<% - if (helper.showFirewallWarning()) { - %><h4><a href="config.jsp" target="_top" title="Help with firewall configuration.">Check NAT/firewall</a></h4><% - } - boolean reseedInProgress = Boolean.valueOf(System.getProperty("net.i2p.router.web.ReseedHandler.reseedInProgress")).booleanValue(); - // If showing the reseed link is allowed - if (helper.allowReseed()) { - if (reseedInProgress) { - // While reseed occurring, show status message instead - out.print("<i>" + System.getProperty("net.i2p.router.web.ReseedHandler.statusMessage","") + "</i><br>"); - } else { - // While no reseed occurring, show reseed link - long nonce = new java.util.Random().nextLong(); - String prev = System.getProperty("net.i2p.router.web.ReseedHandler.nonce"); - if (prev != null) System.setProperty("net.i2p.router.web.ReseedHandler.noncePrev", prev); - System.setProperty("net.i2p.router.web.ReseedHandler.nonce", nonce+""); - String uri = request.getRequestURI(); - out.print("<form action=\"" + uri + "\" method=\"GET\">\n"); - out.print("<input type=\"hidden\" name=\"reseedNonce\" value=\"" + nonce + "\" />\n"); - out.print("<button type=\"submit\" >Reseed</button></form>\n"); - } - } - // If a new reseed ain't running, and the last reseed had errors, show error message - if (!reseedInProgress) { - String reseedErrorMessage = System.getProperty("net.i2p.router.web.ReseedHandler.errorMessage",""); - if (reseedErrorMessage.length() > 0) { - out.print("<i>" + reseedErrorMessage + "</i><br>"); - } - } - %> -<hr><h3><a href="config.jsp" title="Configure router bandwidth allocation." target="_top">Bandwidth in/out</a></h3><hr> -<table> -<tr><td align="left"><b>1s:</b></td><td align="right"><jsp:getProperty name="helper" property="inboundSecondKBps" />/<jsp:getProperty name="helper" property="outboundSecondKBps" />K/s</td></tr> -<tr><td align="left"><b>5m:</b></td><td align="right"><jsp:getProperty name="helper" property="inboundFiveMinuteKBps" />/<jsp:getProperty name="helper" property="outboundFiveMinuteKBps" />K/s</td></tr> -<tr><td align="left"><b>Total:</b></td><td align="right"><jsp:getProperty name="helper" property="inboundLifetimeKBps" />/<jsp:getProperty name="helper" property="outboundLifetimeKBps" />K/s</td></tr> -<tr><td align="left"><b>Used:</b></td><td align="right"><jsp:getProperty name="helper" property="inboundTransferred" />/<jsp:getProperty name="helper" property="outboundTransferred" /></td></tr></table> -<hr><h3><a href="tunnels.jsp" target="_top" title="View existing tunnels and tunnel build status.">Tunnels in/out</a></h3><hr> -<table> -<tr><td align="left"><b>Exploratory:</b></td><td align="right"><jsp:getProperty name="helper" property="inboundTunnels" />/<jsp:getProperty name="helper" property="outboundTunnels" /></td></tr> -<tr><td align="left"><b>Client:</b></td><td align="right"><jsp:getProperty name="helper" property="inboundClientTunnels" />/<jsp:getProperty name="helper" property="outboundClientTunnels" /></td></tr> -<tr><td align="left"><b>Participating:</b></td><td align="right"><jsp:getProperty name="helper" property="participatingTunnels" /></td></tr> -</table><hr><h3><a href="/jobs.jsp" target="_top" title="What's in the router's job queue?">Congestion</a></h3><hr> -<table> -<tr><td align="left"><b>Job lag:</b></td><td align="right"><jsp:getProperty name="helper" property="jobLag" /></td></tr> -<tr><td align="left"><b>Message delay:</b></td><td align="right"><jsp:getProperty name="helper" property="messageDelay" /></td></tr> -<tr><td align="left"><b>Tunnel lag:</b></td><td align="right"><jsp:getProperty name="helper" property="tunnelLag" /></td></tr> -<tr><td align="left"><b>Backlog:</b></td><td align="right"><jsp:getProperty name="helper" property="inboundBacklog" /></td></tr> -</table><hr><h4><jsp:getProperty name="helper" property="tunnelStatus" /></h4><hr><jsp:getProperty name="helper" property="destinations" /> diff --git a/apps/routerconsole/locale/messages_de.po b/apps/routerconsole/locale/messages_de.po index 5293b999f0794ac24a54d0adab49a18603b1f5dc..a5d31461370750f6257852de719b00838526d227 100644 --- a/apps/routerconsole/locale/messages_de.po +++ b/apps/routerconsole/locale/messages_de.po @@ -1,25 +1,276 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# I2P +# Copyright (C) 2009 The I2P Project +# This file is distributed under the same license as the routerconsole package. +# To contribute translations, see http://www.i2p2.de/newdevelopers +# foo <foo@bar>, 2009. # -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" +"Project-Id-Version: I2P routerconsole\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-10-18 10:03-0400\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" +"POT-Creation-Date: 2009-10-19 13:41+0000\n" +"PO-Revision-Date: 2009-10-19 12:50+0000\n" +"Last-Translator: foo <foo@bar>\n" +"Language-Team: foo <foo@bar>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: German\n" -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:441 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:293 msgid "Update policy" msgstr "Update policy in german foobarbaz" #: src/net/i2p/router/web/ConfigUpdateHelper.java:90 msgid "Notify only" msgstr "Notify only in german" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:26 +#: src/net/i2p/router/web/SummaryBarRenderer.java:28 +msgid "I2P Router Console" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:42 +msgid "I2P Services" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:48 +msgid "Manage your I2P hosts file here (I2P domain name resolution)" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:50 +msgid "Addressbook" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:54 +msgid "Built-in anonymous BitTorrent Client" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:56 +msgid "Torrents" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:60 +msgid "Anonymous webmail client" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:62 +msgid "Webmail" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:66 +msgid "Anonymous resident webserver" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:68 +msgid "Webserver" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:72 +msgid "Configure I2P Router" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:74 +msgid "I2P Internals" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:80 +#: src/net/i2p/router/web/SummaryBarRenderer.java:339 +msgid "View existing tunnels and tunnel build status" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:82 +msgid "Tunnels" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:86 +#: src/net/i2p/router/web/SummaryBarRenderer.java:221 +msgid "Show all current peer connections" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:88 +#: src/net/i2p/router/web/SummaryBarRenderer.java:223 +msgid "Peers" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:92 +msgid "Show recent peer performance profiles" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:94 +msgid "Profiles" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:98 +msgid "Show list of all known I2P routers" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:100 +msgid "NetDB" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:104 +msgid "Health Report" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:106 +msgid "Logs" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:110 +msgid "Show the router's workload, and how it's performing" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:112 +msgid "Jobs" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:116 +msgid "Graph router performance" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:118 +msgid "Graphs" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:122 +msgid "Textual router performance statistics" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:124 +msgid "Stats" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:134 +msgid "I2P Router Help" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:136 +msgid "General" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:139 +msgid "Your unique I2P router identity is" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:143 +msgid "never reveal it to anyone" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:145 +msgid "Local Identity" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:150 +msgid "Version" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:157 +msgid "How long we've been running for this session" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:160 +msgid "Uptime" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:167 +msgid "" +"Help with configuring your firewall and router for optimal I2P performance" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:194 +msgid "Download" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:198 +#: src/net/i2p/router/web/SummaryBarRenderer.java:207 +msgid "Update" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:203 +msgid "Download Unsigned" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:229 +msgid "Active" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:237 +msgid "Fast" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:243 +msgid "High capacity" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:249 +msgid "Integrated" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:255 +msgid "Known" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:269 +msgid "Help with firewall configuration" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:271 +msgid "Check NAT/firewall" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:304 +msgid "Configure router bandwidth allocation" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:306 +msgid "Bandwidth in/out" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:323 +msgid "Total" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:331 +msgid "Used" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:341 +msgid "Tunnels in/out" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:346 +msgid "Exploratory" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:354 +msgid "Client" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:362 +msgid "Participating" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:368 +msgid "What's in the router's job queue?" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:370 +msgid "Congestion" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:375 +msgid "Job lag" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:381 +msgid "Message delay" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:387 +msgid "Tunnel lag" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:393 +msgid "Backlog" +msgstr "" diff --git a/apps/routerconsole/locale/messages_zh.po b/apps/routerconsole/locale/messages_zh.po index 9e88187303e008864e5a71ca33e4ee0c57a3bc23..953f13adf97a733f284da7a46c890cbfa8abd23b 100644 --- a/apps/routerconsole/locale/messages_zh.po +++ b/apps/routerconsole/locale/messages_zh.po @@ -1,25 +1,276 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# I2P +# Copyright (C) 2009 The I2P Project +# This file is distributed under the same license as the routerconsole package. +# To contribute translations, see http://www.i2p2.de/newdevelopers +# foo <foo@bar>, 2009. # -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" +"Project-Id-Version: I2P routerconsole\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-10-18 10:03-0400\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" +"POT-Creation-Date: 2009-10-19 13:41+0000\n" +"PO-Revision-Date: 2009-10-19 12:59+0000\n" +"Last-Translator: foo <foo@bar>\n" +"Language-Team: foo <foo@par>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Chinese\n" -#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:441 +#: ../jsp/WEB-INF/classes/net/i2p/router/web/jsp/configupdate_jsp.java:293 msgid "Update policy" msgstr "" #: src/net/i2p/router/web/ConfigUpdateHelper.java:90 msgid "Notify only" msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:26 +#: src/net/i2p/router/web/SummaryBarRenderer.java:28 +msgid "I2P Router Console" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:42 +msgid "I2P Services" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:48 +msgid "Manage your I2P hosts file here (I2P domain name resolution)" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:50 +msgid "Addressbook" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:54 +msgid "Built-in anonymous BitTorrent Client" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:56 +msgid "Torrents" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:60 +msgid "Anonymous webmail client" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:62 +msgid "Webmail" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:66 +msgid "Anonymous resident webserver" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:68 +msgid "Webserver" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:72 +msgid "Configure I2P Router" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:74 +msgid "I2P Internals" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:80 +#: src/net/i2p/router/web/SummaryBarRenderer.java:339 +msgid "View existing tunnels and tunnel build status" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:82 +msgid "Tunnels" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:86 +#: src/net/i2p/router/web/SummaryBarRenderer.java:221 +msgid "Show all current peer connections" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:88 +#: src/net/i2p/router/web/SummaryBarRenderer.java:223 +msgid "Peers" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:92 +msgid "Show recent peer performance profiles" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:94 +msgid "Profiles" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:98 +msgid "Show list of all known I2P routers" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:100 +msgid "NetDB" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:104 +msgid "Health Report" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:106 +msgid "Logs" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:110 +msgid "Show the router's workload, and how it's performing" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:112 +msgid "Jobs" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:116 +msgid "Graph router performance" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:118 +msgid "Graphs" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:122 +msgid "Textual router performance statistics" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:124 +msgid "Stats" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:134 +msgid "I2P Router Help" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:136 +msgid "General" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:139 +msgid "Your unique I2P router identity is" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:143 +msgid "never reveal it to anyone" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:145 +msgid "Local Identity" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:150 +msgid "Version" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:157 +msgid "How long we've been running for this session" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:160 +msgid "Uptime" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:167 +msgid "" +"Help with configuring your firewall and router for optimal I2P performance" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:194 +msgid "Download" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:198 +#: src/net/i2p/router/web/SummaryBarRenderer.java:207 +msgid "Update" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:203 +msgid "Download Unsigned" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:229 +msgid "Active" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:237 +msgid "Fast" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:243 +msgid "High capacity" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:249 +msgid "Integrated" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:255 +msgid "Known" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:269 +msgid "Help with firewall configuration" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:271 +msgid "Check NAT/firewall" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:304 +msgid "Configure router bandwidth allocation" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:306 +msgid "Bandwidth in/out" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:323 +msgid "Total" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:331 +msgid "Used" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:341 +msgid "Tunnels in/out" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:346 +msgid "Exploratory" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:354 +msgid "Client" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:362 +msgid "Participating" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:368 +msgid "What's in the router's job queue?" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:370 +msgid "Congestion" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:375 +msgid "Job lag" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:381 +msgid "Message delay" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:387 +msgid "Tunnel lag" +msgstr "" + +#: src/net/i2p/router/web/SummaryBarRenderer.java:393 +msgid "Backlog" +msgstr ""