I2P Address: [http://git.idk.i2p]

Skip to content
Snippets Groups Projects
Commit 48e544c0 authored by zzz's avatar zzz
Browse files

RouterConsole: Make summary bar a refreshing iframe

parent 08b186aa
No related branches found
No related tags found
No related merge requests found
/***
html {
font-size: 14px;
}
***/
body { body {
font-family: Verdana, Tahoma, Helvetica, sans-serif; font-family: Verdana, Tahoma, Helvetica, sans-serif;
margin: 1em 0em; margin: 1em 0em;
...@@ -5,6 +11,7 @@ body { ...@@ -5,6 +11,7 @@ body {
text-align: center; text-align: center;
background-color: white; background-color: white;
color: black; color: black;
font-size: 100%;
} }
.hide { .hide {
...@@ -30,23 +37,24 @@ div.toolbar { ...@@ -30,23 +37,24 @@ div.toolbar {
font-weight: bold; font-weight: bold;
} }
div.routersummary { div.routersummaryouter {
/* width: 8em; */
/* height: 5em; */
/* position: fixed; */
float: left; float: left;
width: 200px; width: 215px;
/* left: 1em; */ margin: 0;
/* top: 1em; */ padding: 0;
border: 0;
clear: left; /* fixes a bug in Opera */
overflow: auto;
}
div.routersummary {
background-color: #fafaff;
width: 195px;
color: inherit;
margin: 0em; margin: 0em;
padding: .5em; padding: 5px;
text-align: left; text-align: left;
border: medium solid #efefff; border: medium solid #efefff;
background-color: #fafaff;
color: inherit;
font-size: small;
clear: left; /* fixes a bug in Opera */
overflow: auto;
} }
div.warning { div.warning {
...@@ -67,6 +75,10 @@ div.main { ...@@ -67,6 +75,10 @@ div.main {
color: inherit; color: inherit;
} }
div.main textarea {
width: 100%;
}
div.news { div.news {
margin: 0em 1em 1em 224px; margin: 0em 1em 1em 224px;
padding: .5em 1em; padding: .5em 1em;
......
<%@page import="net.i2p.router.web.SummaryHelper" %> <% // put width here too to prevent bad layout at startup %>
<jsp:useBean class="net.i2p.router.web.SummaryHelper" id="helper" scope="request" /> <div class="routersummaryouter" style="width: 215px;">
<jsp:setProperty name="helper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> <%
// skip the iframe if refresh disabled
<jsp:useBean class="net.i2p.router.web.ReseedHandler" id="reseed" scope="request" /> String d = request.getParameter("refresh");
<jsp:setProperty name="reseed" property="*" /> String newDelay = "";
<jsp:useBean class="net.i2p.router.web.UpdateHandler" id="update" scope="request" /> if (d == null || "".equals(d))
<jsp:setProperty name="update" property="*" /> d = System.getProperty("routerconsole.summaryRefresh");
<jsp:setProperty name="update" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> else
<jsp:useBean class="net.i2p.router.web.ConfigUpdateHelper" id="uhelper" scope="request" /> // pass the new delay parameter to the iframe
<jsp:setProperty name="uhelper" property="*" /> newDelay = "?refresh=" + d;
<jsp:setProperty name="uhelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> if (!"0".equals(d))
out.print("<iframe src=\"summaryframe.jsp" + newDelay + "\" height=\"1000\" width=\"100%\" scrolling=\"auto\" frameborder=\"0\" allowtransparency=\"true\">\n");
%>
<div class="routersummary"> <div class="routersummary">
<center><b><a href="config.jsp">Configuration</a>&nbsp;&nbsp;<a href="help.jsp">Help</a></b></center> <%@include file="summarynoframe.jsp" %>
<hr /> <%
// d defined above
<u><b>General</b></u><br /> if (!"0".equals(d)) {
<b>Ident:</b> (<a title="Your router identity is <jsp:getProperty name="helper" property="ident" />, never reveal it to anyone" href="netdb.jsp?r=.">view</a>)<br /> out.print("</div></iframe>\n");
<b>Version:</b> <jsp:getProperty name="helper" property="version" /><br /> } else {
<b>Uptime:</b> <jsp:getProperty name="helper" property="uptime" /><br /> // since we don't have an iframe this will reload the base page, and
<b>Now:</b> <jsp:getProperty name="helper" property="time" /><br /> // the new delay will be passed to the iframe above
<b>Reachability:</b> <a href="config.jsp#help"><jsp:getProperty name="helper" property="reachability" /></a><% out.print("<hr /><p><form action=\"" + request.getRequestURI() + "\" method=\"GET\">\n");
if (helper.updateAvailable()) { out.print("<b>Refresh (s):</b> <input size=\"3\" type=\"text\" name=\"refresh\" value=\"60\" />\n");
// display all the time so we display the final failure message out.print("<button type=\"submit\">Enable</button>\n");
out.print("<br />" + update.getStatus()); out.print("</form></p></div>\n");
if ("true".equals(System.getProperty("net.i2p.router.web.UpdateHandler.updateInProgress", "false"))) {
} else if(!update.isDone()) {
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("<p><form action=\"" + uri + "\" method=\"GET\">\n");
out.print("<input type=\"hidden\" name=\"updateNonce\" value=\"" + nonce + "\" >\n");
out.print("<input type=\"submit\" value=\"Download " + uhelper.getUpdateVersion() + " Update\" ></form></p>\n");
}
} }
%> %>
<p>
<%=net.i2p.router.web.ConfigRestartBean.renderStatus(request.getRequestURI(), request.getParameter("action"), request.getParameter("consoleNonce"))%>
</p>
<hr />
<u><b><a href="peers.jsp">Peers</a></b></u><br />
<b>Active:</b> <jsp:getProperty name="helper" property="activePeers" />/<jsp:getProperty name="helper" property="activeProfiles" /><br />
<b>Fast:</b> <jsp:getProperty name="helper" property="fastPeers" /><br />
<b>High capacity:</b> <jsp:getProperty name="helper" property="highCapacityPeers" /><br />
<b>Well integrated:</b> <jsp:getProperty name="helper" property="wellIntegratedPeers" /><br />
<b>Known:</b> <jsp:getProperty name="helper" property="allPeers" /><br /><%
if (helper.getActivePeers() <= 0) {
%><b><a href="config.jsp">check your NAT/firewall</a></b><br /><%
}
// If showing the reseed link is allowed
if (helper.allowReseed()) {
if ("true".equals(System.getProperty("net.i2p.router.web.ReseedHandler.reseedInProgress", "false"))) {
// 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("<p><form action=\"" + uri + "\" method=\"GET\">\n");
out.print("<input type=\"hidden\" name=\"reseedNonce\" value=\"" + nonce + "\" >\n");
out.print("<button type=\"submit\" >Reseed</button></form></p>\n");
}
}
// If a new reseed ain't running, and the last reseed had errors, show error message
if ("false".equals(System.getProperty("net.i2p.router.web.ReseedHandler.reseedInProgress", "false"))) {
String reseedErrorMessage = System.getProperty("net.i2p.router.web.ReseedHandler.errorMessage","");
if (reseedErrorMessage.length() > 0) {
out.print("<i>" + reseedErrorMessage + "</i><br />");
}
}
%><hr />
<u><b><a href="config.jsp" title="Configure the bandwidth limits">Bandwidth in/out</a></b></u><br />
<b>1s:</b> <jsp:getProperty name="helper" property="inboundSecondKBps" />/<jsp:getProperty name="helper" property="outboundSecondKBps" />KBps<br />
<b>5m:</b> <jsp:getProperty name="helper" property="inboundFiveMinuteKBps" />/<jsp:getProperty name="helper" property="outboundFiveMinuteKBps" />KBps<br />
<b>Total:</b> <jsp:getProperty name="helper" property="inboundLifetimeKBps" />/<jsp:getProperty name="helper" property="outboundLifetimeKBps" />KBps<br />
<b>Used:</b> <jsp:getProperty name="helper" property="inboundTransferred" />/<jsp:getProperty name="helper" property="outboundTransferred" /><br />
<hr />
<jsp:getProperty name="helper" property="destinations" />
<u><b>Tunnels in/out</b></u><br />
<b>Exploratory:</b> <jsp:getProperty name="helper" property="inboundTunnels" />/<jsp:getProperty name="helper" property="outboundTunnels" /><br />
<b>Client:</b> <jsp:getProperty name="helper" property="inboundClientTunnels" />/<jsp:getProperty name="helper" property="outboundClientTunnels" /><br />
<b>Participating:</b> <jsp:getProperty name="helper" property="participatingTunnels" /><br />
<hr />
<u><b>Congestion</b></u><br />
<b>Job lag:</b> <jsp:getProperty name="helper" property="jobLag" /><br />
<b>Message delay:</b> <jsp:getProperty name="helper" property="messageDelay" /><br />
<b>Tunnel lag:</b> <jsp:getProperty name="helper" property="tunnelLag" /><br />
<b>Handle backlog:</b> <jsp:getProperty name="helper" property="inboundBacklog" /><br />
<b><jsp:getProperty name="helper" property="tunnelStatus" /></b><br />
</div> </div>
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%
/*
* All links in the summary bar must have target="_top"
* so they don't load in the iframe
*/
%>
<html><head>
<title>Summary Bar</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<%
// try hard to avoid an error page in the iframe after shutdown
String action = request.getParameter("action");
String d = request.getParameter("refresh");
boolean shutdownSoon = "shutdownImmediate".equals(action) || "restartImmediate".equals(action);
if (!shutdownSoon) {
if (d == null || "".equals(d)) {
d = System.getProperty("routerconsole.summaryRefresh");
if (d == null || "".equals(d))
d = "60";
} else {
System.setProperty("routerconsole.summaryRefresh", d);
}
// we probably don't get here if d == "0" since caught in summary.jsp, but just
// to be sure...
if (!"0".equals(d)) {
// doesn't work for restart or shutdown with no expl. tunnels,
// since the call to ConfigRestartBean.renderStatus() hasn't happened yet...
long timeleft = net.i2p.router.web.ConfigRestartBean.getRestartTimeRemaining();
long delay = 60;
try { delay = Long.parseLong(d); } catch (NumberFormatException nfe) {}
if (delay*1000 < timeleft + 5000)
out.print("<meta http-equiv=\"refresh\" content=\"" + d + "\" />\n");
else
shutdownSoon = true;
}
}
%>
<link rel="stylesheet" href="default.css" type="text/css" />
</head>
<body style="margin: 0;">
<div class="routersummary">
<%@include file="summarynoframe.jsp" %>
<%
// d and shutdownSoon defined above
if (!shutdownSoon) {
out.print("<hr /><p><form action=\"summaryframe.jsp\" method=\"GET\">\n");
if ("0".equals(d)) {
out.print("<b>Refresh (s):<b> <input size=\"3\" type=\"text\" name=\"refresh\" value=\"60\" />\n");
out.print("<button type=\"submit\">Enable</button>\n");
} else {
// this will load in the iframe but subsequent pages will not have the iframe
out.print("<input type=\"hidden\" name=\"refresh\" value=\"0\" />\n");
out.print("<button type=\"submit\">Disable " + d + "s Refresh</button>\n");
}
out.print("</form></p>\n");
}
%>
</div>
</body>
</html>
<%@page import="net.i2p.router.web.SummaryHelper" %>
<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")%>" />
<jsp:useBean class="net.i2p.router.web.ConfigUpdateHelper" id="uhelper" scope="request" />
<jsp:setProperty name="uhelper" property="*" />
<jsp:setProperty name="uhelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<center><b><a href="config.jsp" target="_top">Configuration</a>&nbsp;&nbsp;<a href="help.jsp" target="_top">Help</a></b></center>
<hr />
<u><b>General</b></u><br />
<b>Ident:</b> (<a title="Your router identity is <jsp:getProperty name="helper" property="ident" />, never reveal it to anyone" href="netdb.jsp?r=." target="_top">view</a>)<br />
<b>Version:</b> <jsp:getProperty name="helper" property="version" /><br />
<b>Uptime:</b> <jsp:getProperty name="helper" property="uptime" /><br />
<b>Now:</b> <jsp:getProperty name="helper" property="time" /><br />
<b>Reachability:</b> <a href="config.jsp#help" target="_top"><jsp:getProperty name="helper" property="reachability" /></a><%
if (helper.updateAvailable()) {
// display all the time so we display the final failure message
out.print("<br />" + update.getStatus());
if ("true".equals(System.getProperty("net.i2p.router.web.UpdateHandler.updateInProgress", "false"))) {
} else if(!update.isDone()) {
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("<p><form action=\"" + uri + "\" method=\"GET\">\n");
out.print("<input type=\"hidden\" name=\"updateNonce\" value=\"" + nonce + "\" />\n");
out.print("<input type=\"submit\" value=\"Download " + uhelper.getUpdateVersion() + " Update\" /></form></p>\n");
}
}
%>
<p>
<%=net.i2p.router.web.ConfigRestartBean.renderStatus(request.getRequestURI(), request.getParameter("action"), request.getParameter("consoleNonce"))%>
</p>
<hr />
<u><b><a href="peers.jsp" target="_top">Peers</a></b></u><br />
<b>Active:</b> <jsp:getProperty name="helper" property="activePeers" />/<jsp:getProperty name="helper" property="activeProfiles" /><br />
<b>Fast:</b> <jsp:getProperty name="helper" property="fastPeers" /><br />
<b>High capacity:</b> <jsp:getProperty name="helper" property="highCapacityPeers" /><br />
<b>Well integrated:</b> <jsp:getProperty name="helper" property="wellIntegratedPeers" /><br />
<b>Known:</b> <jsp:getProperty name="helper" property="allPeers" /><br /><%
if (helper.getActivePeers() <= 0) {
%><b><a href="config.jsp" target="_top">check your NAT/firewall</a></b><br /><%
}
// If showing the reseed link is allowed
if (helper.allowReseed()) {
if ("true".equals(System.getProperty("net.i2p.router.web.ReseedHandler.reseedInProgress", "false"))) {
// 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("<p><form action=\"" + uri + "\" method=\"GET\">\n");
out.print("<input type=\"hidden\" name=\"reseedNonce\" value=\"" + nonce + "\" />\n");
out.print("<button type=\"submit\" >Reseed</button></form></p>\n");
}
}
// If a new reseed ain't running, and the last reseed had errors, show error message
if ("false".equals(System.getProperty("net.i2p.router.web.ReseedHandler.reseedInProgress", "false"))) {
String reseedErrorMessage = System.getProperty("net.i2p.router.web.ReseedHandler.errorMessage","");
if (reseedErrorMessage.length() > 0) {
out.print("<i>" + reseedErrorMessage + "</i><br />");
}
}
%><hr />
<u><b><a href="config.jsp" title="Configure the bandwidth limits" target="_top">Bandwidth in/out</a></b></u><br />
<b>1s:</b> <jsp:getProperty name="helper" property="inboundSecondKBps" />/<jsp:getProperty name="helper" property="outboundSecondKBps" />KBps<br />
<b>5m:</b> <jsp:getProperty name="helper" property="inboundFiveMinuteKBps" />/<jsp:getProperty name="helper" property="outboundFiveMinuteKBps" />KBps<br />
<b>Total:</b> <jsp:getProperty name="helper" property="inboundLifetimeKBps" />/<jsp:getProperty name="helper" property="outboundLifetimeKBps" />KBps<br />
<b>Used:</b> <jsp:getProperty name="helper" property="inboundTransferred" />/<jsp:getProperty name="helper" property="outboundTransferred" /><br />
<hr />
<jsp:getProperty name="helper" property="destinations" />
<u><b>Tunnels in/out</b></u><br />
<b>Exploratory:</b> <jsp:getProperty name="helper" property="inboundTunnels" />/<jsp:getProperty name="helper" property="outboundTunnels" /><br />
<b>Client:</b> <jsp:getProperty name="helper" property="inboundClientTunnels" />/<jsp:getProperty name="helper" property="outboundClientTunnels" /><br />
<b>Participating:</b> <jsp:getProperty name="helper" property="participatingTunnels" /><br />
<hr />
<u><b>Congestion</b></u><br />
<b>Job lag:</b> <jsp:getProperty name="helper" property="jobLag" /><br />
<b>Message delay:</b> <jsp:getProperty name="helper" property="messageDelay" /><br />
<b>Tunnel lag:</b> <jsp:getProperty name="helper" property="tunnelLag" /><br />
<b>Handle backlog:</b> <jsp:getProperty name="helper" property="inboundBacklog" /><br />
<b><jsp:getProperty name="helper" property="tunnelStatus" /></b><br />
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment