forked from I2P_Developers/i2p.i2p

The initial attempt using mapping of strings to methods is shorter and neater, but also doesn't work so is commented out.
81 lines
3.4 KiB
Plaintext
81 lines
3.4 KiB
Plaintext
<%@page contentType="text/html"%>
|
|
<%@page trimDirectiveWhitespaces="true"%>
|
|
<%@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>
|
|
<%@include file="css.jsi" %>
|
|
<title>Summary Bar</title>
|
|
<%
|
|
// try hard to avoid an error page in the iframe after shutdown
|
|
String action = request.getParameter("action");
|
|
String d = request.getParameter("refresh");
|
|
// Normal browsers send value, IE sends button label
|
|
boolean allowIFrame = intl.allowIFrame(request.getHeader("User-Agent"));
|
|
boolean shutdownSoon = (!allowIFrame) ||
|
|
"shutdownImmediate".equals(action) || "restartImmediate".equals(action) ||
|
|
"Shutdown immediately".equals(action) || "Restart immediately".equals(action);
|
|
if (!shutdownSoon) {
|
|
if (d == null || "".equals(d)) {
|
|
d = intl.getRefresh();
|
|
} else {
|
|
d = net.i2p.data.DataHelper.stripHTML(d); // XSS
|
|
intl.setRefresh(d);
|
|
}
|
|
// we probably don't get here if d == "0" since caught in summary.jsi, 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...
|
|
// So we delay slightly
|
|
if (action != null &&
|
|
("restart".equals(action.toLowerCase(java.util.Locale.US)) || "shutdown".equals(action.toLowerCase(java.util.Locale.US)))) {
|
|
synchronized(this) {
|
|
try {
|
|
wait(1000);
|
|
} catch(InterruptedException ie) {}
|
|
}
|
|
}
|
|
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 + ";url=/summaryframe.jsp\" >\n");
|
|
else
|
|
shutdownSoon = true;
|
|
}
|
|
}
|
|
%>
|
|
</head><body style="margin: 0;"><div class="routersummary">
|
|
<%@include file="summarynoframe.jsi" %>
|
|
<%
|
|
// d and shutdownSoon defined above
|
|
if (!shutdownSoon) {
|
|
out.print("<hr>\n<div class=\"refresh\"><form action=\"summaryframe.jsp\" method=\"POST\">\n");
|
|
if ("0".equals(d)) {
|
|
out.print("<b>");
|
|
out.print(intl._("Refresh (s)"));
|
|
out.print(":</b> <input size=\"3\" type=\"text\" name=\"refresh\" value=\"60\" >\n");
|
|
out.print("<button type=\"submit\" value=\"Enable\" >");
|
|
out.print(intl._("Enable"));
|
|
} 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\" value=\"Disable\" >");
|
|
long refreshMS = 60*1000;
|
|
try {
|
|
refreshMS = 1000 * Long.parseLong(d);
|
|
} catch (NumberFormatException nfe) {}
|
|
String refreshTime = net.i2p.data.DataHelper.formatDuration2(refreshMS);
|
|
out.print(intl._("Disable {0} Refresh", refreshTime));
|
|
}
|
|
out.print("</button></form></div>\n");
|
|
}
|
|
%>
|
|
</div></body></html>
|