Fix for IE overflow issue; classic theme enhanced; more UI enhancements.

This commit is contained in:
z3d
2009-08-02 12:57:50 +00:00
parent 6e29eddaa7
commit abf7296de1
22 changed files with 227 additions and 73 deletions

View File

@ -47,7 +47,7 @@ public class ConfigTunnelsHandler extends FormHandler {
boolean saveRequired = false; boolean saveRequired = false;
if (_log.shouldLog(Log.DEBUG)) if (_log.shouldLog(Log.DEBUG))
_log.debug("Saving changes, with props = " + _settings); _log.debug("Saving changes, with props = " + _settings + ".");
int updated = 0; int updated = 0;
int index = 0; int index = 0;
@ -67,7 +67,7 @@ public class ConfigTunnelsHandler extends FormHandler {
try { try {
client.fromBase64(poolName); client.fromBase64(poolName);
} catch (DataFormatException dfe) { } catch (DataFormatException dfe) {
addFormError("Internal error (pool name could not resolve - " + poolName + ")"); addFormError("Internal error (pool name could not resolve - " + poolName + ").");
index++; index++;
continue; continue;
} }
@ -76,7 +76,7 @@ public class ConfigTunnelsHandler extends FormHandler {
} }
if ( (in == null) || (out == null) ) { if ( (in == null) || (out == null) ) {
addFormError("Internal error (pool settings cound not be found for " + poolName + ")"); addFormError("Internal error (pool settings cound not be found for " + poolName + ").");
index++; index++;
continue; continue;
} }
@ -131,14 +131,14 @@ public class ConfigTunnelsHandler extends FormHandler {
} }
if (updated > 0) if (updated > 0)
addFormNotice("Updated settings for " + updated + " pools"); addFormNotice("Updated settings for " + updated + " pools.");
if (saveRequired) { if (saveRequired) {
boolean saved = _context.router().saveConfig(); boolean saved = _context.router().saveConfig();
if (saved) if (saved)
addFormNotice("Exploratory tunnel configuration saved successfully"); addFormNotice("Exploratory tunnel configuration saved successfully.");
else else
addFormNotice("Error saving the configuration (applied but not saved) - please see the error logs"); addFormNotice("Error saving the configuration (applied but not saved) - please see the error logs.");
} }
} }
private static final int getInt(Object val) { private static final int getInt(Object val) {

View File

@ -24,8 +24,8 @@ public class ConfigUIHandler extends FormHandler {
else else
_context.router().setConfigSetting(CSSHelper.PROP_THEME_NAME, _config); _context.router().setConfigSetting(CSSHelper.PROP_THEME_NAME, _config);
if (_context.router().saveConfig()) if (_context.router().saveConfig())
addFormNotice("Theme change successfully saved (<a href=\"configui.jsp\">refresh page to view</a>)"); addFormNotice("Theme change successfully saved (<a href=\"configui.jsp\">refresh page</a> to view).");
else else
addFormNotice("Error saving the configuration (applied but not saved) - please see the error logs"); addFormNotice("Error saving the configuration (applied but not saved) - please see the error logs.");
} }
} }

View File

@ -3,7 +3,7 @@ package net.i2p.router.web;
public class ConfigUIHelper extends HelperBase { public class ConfigUIHelper extends HelperBase {
public ConfigUIHelper() {} public ConfigUIHelper() {}
private static final String themes[] = {"Classic", "Dark", "Light"}; private static final String themes[] = {"classic", "dark", "light"};
public String getSettings() { public String getSettings() {
StringBuilder buf = new StringBuilder(512); StringBuilder buf = new StringBuilder(512);

View File

@ -30,6 +30,7 @@
<b>I2P will work best if you configure your rates to match the speed of your internet connection.</b> <b>I2P will work best if you configure your rates to match the speed of your internet connection.</b>
</p> </p>
<p> <p>
<div class="wideload">
<table> <table>
<tr><td><input style="text-align: right; width: 5em;" name="inboundrate" type="text" size="5" maxlength="5" value="<jsp:getProperty name="nethelper" property="inboundRate" />" /> KBps <tr><td><input style="text-align: right; width: 5em;" name="inboundrate" type="text" size="5" maxlength="5" value="<jsp:getProperty name="nethelper" property="inboundRate" />" /> KBps
In <td>(<jsp:getProperty name="nethelper" property="inboundRateBits" />)<br /> In <td>(<jsp:getProperty name="nethelper" property="inboundRateBits" />)<br />
@ -49,7 +50,7 @@
--> -->
<tr><td><jsp:getProperty name="nethelper" property="sharePercentageBox" /> <tr><td><jsp:getProperty name="nethelper" property="sharePercentageBox" />
Share <td>(<jsp:getProperty name="nethelper" property="shareRateBits" />)<br /> Share <td>(<jsp:getProperty name="nethelper" property="shareRateBits" />)<br />
</table> </table></div>
</p><p> </p><p>
<% int share = nethelper.getShareBandwidth(); <% int share = nethelper.getShareBandwidth();
if (share < 12) { if (share < 12) {

View File

@ -16,12 +16,13 @@
<div class="main" id="main"> <div class="main" id="main">
<%@include file="confignav.jsp" %> <%@include file="confignav.jsp" %>
<jsp:useBean class="net.i2p.router.web.ConfigAdvancedHandler" id="formhandler" scope="request" /> <jsp:useBean class="net.i2p.router.web.ConfigAdvancedHandler" id="formhandler" scope="request" />
<jsp:setProperty name="formhandler" property="*" /> <jsp:setProperty name="formhandler" property="*" />
<jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<jsp:getProperty name="formhandler" property="allMessages" /> <jsp:getProperty name="formhandler" property="allMessages" />
<div class="configure"> <div class="configure">
<div class="wideload">
<form action="configadvanced.jsp" method="POST"> <form action="configadvanced.jsp" method="POST">
<% String prev = System.getProperty("net.i2p.router.web.ConfigAdvancedHandler.nonce"); <% String prev = System.getProperty("net.i2p.router.web.ConfigAdvancedHandler.nonce");
if (prev != null) System.setProperty("net.i2p.router.web.ConfigAdvancedHandler.noncePrev", prev); if (prev != null) System.setProperty("net.i2p.router.web.ConfigAdvancedHandler.noncePrev", prev);
@ -38,5 +39,6 @@
</form> </form>
</div> </div>
</div> </div>
</div>
</body> </body>
</html> </html>

View File

@ -35,13 +35,13 @@ button span.hide{
<h3>Client Configuration</h3> <h3>Client Configuration</h3>
<p> <p>
The Java clients listed below are started by the router and run in the same JVM. The Java clients listed below are started by the router and run in the same JVM.
</p><p> </p><p> <div class="wideload">
<jsp:getProperty name="clientshelper" property="form1" /> <jsp:getProperty name="clientshelper" property="form1" />
</p><p> </p><p>
<i>All changes require restart to take effect. To change other client options, edit the clients.config file.</i> <i>All changes require restart to take effect. To change other client options, edit the clients.config file.</i>
</p> <hr /><div class="formaction"> </p> <hr /><div class="formaction">
<input type="submit" name="action" value="Save Client Configuration" /> <input type="submit" name="action" value="Save Client Configuration" />
</div> </div></div>
<h3>WebApp Configuration</h3> <h3>WebApp Configuration</h3>
<p> <p>
The Java web applications listed below are started by the webConsole client and run in the same JVM as the router. The Java web applications listed below are started by the webConsole client and run in the same JVM as the router.
@ -53,7 +53,7 @@ button span.hide{
A web app may also be disabled by removing the .war file from the webapps directory; A web app may also be disabled by removing the .war file from the webapps directory;
however the .war file and web app will reappear when you update your router to a newer version, however the .war file and web app will reappear when you update your router to a newer version,
so disabling the web app here is the preferred method. so disabling the web app here is the preferred method.
</p><p> </p><p><div class="wideload">
<jsp:getProperty name="clientshelper" property="form2" /> <jsp:getProperty name="clientshelper" property="form2" />
</p> </p>
<p> <p>
@ -65,5 +65,6 @@ button span.hide{
</form> </form>
</div> </div>
</div> </div>
</div>
</body> </body>
</html> </html>

View File

@ -11,7 +11,7 @@
<h1>I2P Keyring Configuration</h1> <h1>I2P Keyring Configuration</h1>
<div class="main" id="main"> <div class="main" id="main">
<%@include file="confignav.jsp" %> <%@include file="confignav.jsp" %>
<jsp:useBean class="net.i2p.router.web.ConfigKeyringHandler" id="formhandler" scope="request" /> <jsp:useBean class="net.i2p.router.web.ConfigKeyringHandler" id="formhandler" scope="request" />
<jsp:setProperty name="formhandler" property="*" /> <jsp:setProperty name="formhandler" property="*" />
<jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
@ -26,8 +26,9 @@
<h3>Keyring</h3> <h3>Keyring</h3>
The router keyring is used to decrypt encrypted leaseSets. The router keyring is used to decrypt encrypted leaseSets.
The keyring may contain keys for local or remote encrypted destinations. The keyring may contain keys for local or remote encrypted destinations.
<p><jsp:getProperty name="keyringhelper" property="summary" /> <div class="wideload"><p>
</p> <jsp:getProperty name="keyringhelper" property="summary" />
</p></div>
<hr /> <hr />
@ -40,6 +41,7 @@
Enter keys for encrypted remote destinations here. Enter keys for encrypted remote destinations here.
Keys for local destinations must be entered on the <a href="i2ptunnel/index.jsp">I2PTunnel page</a>. Keys for local destinations must be entered on the <a href="i2ptunnel/index.jsp">I2PTunnel page</a>.
<p> <p>
<div class="wideload">
<table> <table>
<tr> <tr>
<td class="mediumtags" align="right">Dest. name, hash, or full key:</td> <td class="mediumtags" align="right">Dest. name, hash, or full key:</td>
@ -54,7 +56,7 @@
</table> </table>
</form> </form>
</div>
</div> </div>
</div> </div>
</body> </body>

View File

@ -13,7 +13,7 @@
<h1>I2P Logging Configuration</h1> <h1>I2P Logging Configuration</h1>
<div class="main" id="main"> <div class="main" id="main">
<%@include file="confignav.jsp" %> <%@include file="confignav.jsp" %>
<jsp:useBean class="net.i2p.router.web.ConfigLoggingHandler" id="formhandler" scope="request" /> <jsp:useBean class="net.i2p.router.web.ConfigLoggingHandler" id="formhandler" scope="request" />
<jsp:setProperty name="formhandler" property="*" /> <jsp:setProperty name="formhandler" property="*" />
<jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
@ -26,6 +26,7 @@
<input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigLoggingHandler.nonce")%>" /> <input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigLoggingHandler.nonce")%>" />
<input type="hidden" name="action" value="blah" /> <input type="hidden" name="action" value="blah" />
<h3>Configure I2P Logging Options</h3> <h3>Configure I2P Logging Options</h3>
<div class="wideload">
<table border="0" cellspacing="5"> <table border="0" cellspacing="5">
<tr> <tr>
<td class="mediumtags" align="right"><b>Logging filename:</b> <td class="mediumtags" align="right"><b>Logging filename:</b>
@ -64,5 +65,6 @@
</form> </form>
</div> </div>
</div> </div>
</div>
</body> </body>
</html> </html>

View File

@ -69,15 +69,15 @@
<input type="submit" name="action" value="Adjust peer bonuses" /></div> <input type="submit" name="action" value="Adjust peer bonuses" /></div>
</p> </p>
</form> </form>
<a name="shitlist"> </a> <a name="shitlist"> </a>
<jsp:useBean class="net.i2p.router.web.ProfilesHelper" id="profilesHelper" scope="request" /> <jsp:useBean class="net.i2p.router.web.ProfilesHelper" id="profilesHelper" scope="request" />
<jsp:setProperty name="profilesHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> <jsp:setProperty name="profilesHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<jsp:getProperty name="profilesHelper" property="shitlistSummary" /> <jsp:getProperty name="profilesHelper" property="shitlistSummary" />
<hr /> <hr />
<div class="wideload">
<jsp:getProperty name="peerhelper" property="blocklistSummary" /> <jsp:getProperty name="peerhelper" property="blocklistSummary" />
</div>
</div> </div>
</div> </div>
</body> </body>

View File

@ -56,7 +56,7 @@ function toggleAll(category)
<h1>I2P Stats Configuration</h1> <h1>I2P Stats Configuration</h1>
<div class="main" id="main"> <div class="main" id="main">
<%@include file="confignav.jsp" %> <%@include file="confignav.jsp" %>
<jsp:useBean class="net.i2p.router.web.ConfigStatsHandler" id="formhandler" scope="request" /> <jsp:useBean class="net.i2p.router.web.ConfigStatsHandler" id="formhandler" scope="request" />
<jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<jsp:setProperty name="formhandler" property="*" /> <jsp:setProperty name="formhandler" property="*" />
@ -78,6 +78,7 @@ function toggleAll(category)
(change requires restart to take effect)<br /> (change requires restart to take effect)<br />
Stat file: <input type="text" name="filename" value="<%=statshelper.getFilename()%>" /><br /> Stat file: <input type="text" name="filename" value="<%=statshelper.getFilename()%>" /><br />
Filter: (<a href="javascript: void(null);" onclick="toggleAll('*')">toggle all</a>)<hr /> Filter: (<a href="javascript: void(null);" onclick="toggleAll('*')">toggle all</a>)<hr />
<div class="wideload">
<table> <table>
<% while (statshelper.hasMoreStats()) { <% while (statshelper.hasMoreStats()) {
while (statshelper.groupRequired()) { %> while (statshelper.groupRequired()) { %>
@ -105,5 +106,6 @@ function toggleAll(category)
</table> </table>
</div> </div>
</div> </div>
</div>
</body> </body>
</html> </html>

View File

@ -14,7 +14,6 @@
<h1>I2P Tunnel Configuration</h1> <h1>I2P Tunnel Configuration</h1>
<div class="main" id="main"> <div class="main" id="main">
<%@include file="confignav.jsp" %> <%@include file="confignav.jsp" %>
<jsp:useBean class="net.i2p.router.web.ConfigTunnelsHandler" id="formhandler" scope="request" /> <jsp:useBean class="net.i2p.router.web.ConfigTunnelsHandler" id="formhandler" scope="request" />
<jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<jsp:setProperty name="formhandler" property="shouldsave" value="<%=request.getParameter("shouldsave")%>" /> <jsp:setProperty name="formhandler" property="shouldsave" value="<%=request.getParameter("shouldsave")%>" />
@ -31,7 +30,7 @@
High CPU and/or high outbound bandwidth usage may result. High CPU and/or high outbound bandwidth usage may result.
Change these settings with care, and adjust them if you have problems. Change these settings with care, and adjust them if you have problems.
</i></p> </i></p>
<div class="wideload">
<form action="configtunnels.jsp" method="POST"> <form action="configtunnels.jsp" method="POST">
<% String prev = System.getProperty("net.i2p.router.web.ConfigTunnelsHandler.nonce"); <% String prev = System.getProperty("net.i2p.router.web.ConfigTunnelsHandler.nonce");
if (prev != null) System.setProperty("net.i2p.router.web.ConfigTunnelsHandler.noncePrev", prev); if (prev != null) System.setProperty("net.i2p.router.web.ConfigTunnelsHandler.noncePrev", prev);
@ -46,5 +45,6 @@
</form> </form>
</div> </div>
</div> </div>
</div>
</body> </body>
</html> </html>

View File

@ -28,7 +28,7 @@
System.setProperty("net.i2p.router.web.ConfigUpdateHandler.nonce", new java.util.Random().nextLong()+""); %> System.setProperty("net.i2p.router.web.ConfigUpdateHandler.nonce", new java.util.Random().nextLong()+""); %>
<input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigUpdateHandler.nonce")%>" /> <input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigUpdateHandler.nonce")%>" />
<h3>Check for I2P and news updates</h3> <h3>Check for I2P and news updates</h3>
<table border="0" cellspacing="5"> <div class="wideload"><table border="0" cellspacing="5">
<tr> <tr>
<td colspan="2"></tr> <td colspan="2"></tr>
<tr> <tr>
@ -70,6 +70,7 @@
<input type="reset" value="Cancel" /> <input type="reset" value="Cancel" />
</div> </div>
</table> </table>
</div>
</form> </form>
</div> </div>
</div> </div>

View File

@ -18,3 +18,4 @@
<jsp:useBean class="net.i2p.router.web.CSSHelper" id="cssHelper" scope="request" /> <jsp:useBean class="net.i2p.router.web.CSSHelper" id="cssHelper" scope="request" />
<jsp:setProperty name="cssHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> <jsp:setProperty name="cssHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<link href="<%=cssHelper.getTheme(request.getHeader("User-Agent"))%>console.css" rel="stylesheet" type="text/css" /> <link href="<%=cssHelper.getTheme(request.getHeader("User-Agent"))%>console.css" rel="stylesheet" type="text/css" />
<!--[if IE]><link href="/themes/console/classic/ieshim.css" rel="stylesheet" type="text/css" /><![endif]-->

View File

@ -1,8 +1,12 @@
2009-08-02
* Better support for Internet Explorer/classic theme.
* Incremental improvements to classic theme.
* More UI tweaks and fiddles.
2009-07-31 dr|z3d 2009-07-31 dr|z3d
* Resolve anomalous buttons and text fields in console ui. * Resolve anomalous buttons and text fields in console ui.
* Enhance presentation of data in /peers.jsp. * Enhance presentation of data in /peers.jsp.
* Fix themes issue with horizontal width of radio/checkbox icons. * Fix themes issue with horizontal width of radio/checkbox icons.
(Radioboxes currently non-functional in Opera).
* Other cosmetic UI enhancements. * Other cosmetic UI enhancements.
* 2009-07-31 0.7.6 released * 2009-07-31 0.7.6 released

View File

@ -1,10 +1,13 @@
body { body {
margin: 1em 0em; margin: 15px 0;
padding: 0em; padding: 0;
text-align: left; text-align: left;
background: #FFF; background: #FFF;
color: #000; color: #000;
font: 10pt/120% Verdana, Tahoma, Helvetica, sans-serif; /*
font: 10pt/140% Verdana, Tahoma, Helvetica, sans-serif;
*/
font: 10pt/140% "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
} }
.hide { .hide {
@ -16,8 +19,9 @@ img {
} }
pre { pre {
overflow: auto;
font-size: 8pt !important;
width: 100%; width: 100%;
overflow-x: scroll;
} }
div.logo { div.logo {
@ -37,25 +41,25 @@ div.toolbar {
} }
div.routersummaryouter { div.routersummaryouter {
float: left; float: left;
width: 200px; width: 200px;
margin: 0; margin: 0;
padding: 0; padding: 0;
border: 0; border: 0;
clear: left;/* fixes a bug in Opera */ clear: left; /* fixes a bug in Opera */
overflow: auto;
} }
div.routersummary { div.routersummary {
background: #fafaff; background: #fafaff;
width: 175px; width: 180px;
color: inherit; color: inherit;
margin: 0em; margin: 0;
padding: 5px; padding: 5px 0 0 10px;
text-align: left; text-align: left !important;
border: medium solid #efefff; border: 5px solid #efefff;
font-size: 9pt; font-size: 9pt;
word-wrap: break-word; word-wrap: break-word;
font: 9pt/125%;
} }
div.routersummary hr { div.routersummary hr {
@ -63,11 +67,16 @@ div.routersummary hr {
background: #ccf; background: #ccf;
height: 2px; height: 2px;
border: 0px solid #ccf; border: 0px solid #ccf;
margin: 10px 0; margin: 4px 0;
} }
div.routersummary p {
padding: 0;
}
div.warning { div.warning {
margin: 0em 1em 1em 224px; margin: 0 10px 10px 205px;
padding: .5em 1em; padding: 5px 10px;
background: #ffefef; background: #ffefef;
border: medium solid #ffafaf; border: medium solid #ffafaf;
text-align: left; text-align: left;
@ -75,40 +84,63 @@ div.warning {
} }
div.main { div.main {
margin: 0em 1em 1em 224px; margin: 0 20px 10px 205px;
padding: .5em 1em; padding: 5px 15px 15px 15px;
background: #ffffef; background: #ffffef;
border: medium solid #ffffd0; border: 5px solid #ffffd0;
text-align: left; text-align: left;
color: inherit; color: inherit;
} }
div.main textarea { div.main textarea {
width: 100% !important; /* width: 100% !important; breaks IE */
width: 600px;
} }
div.news { div.news {
margin: 0em 1em 1em 224px; margin: 0 20px 0 205px;
padding: .5em 1em; padding: -10px 15px 5px 15px;
background: #ffffc0; background: #ffffc0;
border: medium solid #ffffa0; border: 5px solid #ffffa0;
text-align: justify; text-align: justify;
color: inherit; color: inherit;
} }
div.news li {
text-align: justify;
list-style: none;
margin: -10px 20px -20px -20px;
padding: 8px 0;
border: 1px solid #330;
border-left: 5px solid #330;
padding: 3px 5px 3px 5px;
background: #fe7;
font-size: 12pt;
}
div.news a:link {
}
div.confignav { div.confignav {
padding: 1em; padding: 12px 0 15px 0;
background: #efefff; background: #cfc;
margin: -10px -20px 0 -10px;
border: 5px solid #9f9;
} }
div.configure { div.configure {
padding: 1em; margin: 0 -20px 0 -10px;
padding: 10px 20px 5px 20px;
background: #ffffc0; background: #ffffc0;
} }
div.messages { div.messages {
padding: 1em; padding: 10px;
background: #fafaff; background: #fafaff;
border: 5px solid #fdd;
margin: 0px -20px 0px -10px;
} }
div.messages span.error { div.messages span.error {
@ -122,21 +154,37 @@ div.messages span.notice {
h1 { h1 {
font-size: 18pt; font-size: 18pt;
text-align: center; text-align: center;
border: 5px solid #efefff;
border-bottom: 5px solid #efefff;
padding: 10px;
margin: 0 20px 0 205px;
line-height: 93%;
text-transform: uppercase;
letter-spacing: 0.3em;
background: #fff;
} }
h2 { h2 {
font-size: 12pt; font-size: 14pt;
padding: 10px;
border-bottom: 2px solid #001;
border-top: 2px solid #001;
letter-spacing: 0.04em;
} }
h3 { h3 {
font-size: 10pt; font-size: 12pt;
padding: 10px;
border-bottom: 2px solid #001;
border-top: 2px solid #001;
letter-spacing: 0.04em;
} }
.proxyfooter{ .proxyfooter{
font-size: 7pt; font-size: 7pt;
display: none !important; display: none !important;
} }
table { table {
/* border-collapse: collapse; */ /* border-collapse: collapse; */
border: 5px solid #dfd; border: 5px solid #dfd;
@ -144,12 +192,13 @@ table {
cell-padding: 1px; cell-padding: 1px;
font-size: 7pt; font-size: 7pt;
background: #fff; background: #fff;
width: 100%;
} }
th { th {
background-color: #ccf; background-color: #ccf;
padding: 5px 2px; padding: 5px 2px;
text-align: center;
} }
tt { tt {
@ -169,11 +218,11 @@ tr:nth-child(odd) {
} }
hr { hr {
color: #ff9; color: #dd9;
background: #ff9; background: #dd9;
height: 2px; height: 2px;
border: 0px solid #ff9; border: 0px solid #dd5;
margin: 10px 0; margin: 5px 0;
} }
.statusnotes { .statusnotes {
@ -183,4 +232,88 @@ hr {
text-align: center; text-align: center;
margin: -3px 0 0 0; margin: -3px 0 0 0;
background: #fff; background: #fff;
} }
input {
margin: 3px 5px 3px 0;
vertical-align: middle;
}
select {
margin: 3px 5px 3px 0;
vertical-align: middle;
}
submit {
padding 0 2px;
}
p {
padding: 5px 20px 0px 20px;
text-align: justify;
}
.formaction {
text-align: right;
}
.langbox {
margin: 30px 0 0px 5px;
color: #001;
font-size: 7pt;
width: 180px;
text-align: center;
float: right;
valign: middle;
}
.langbox img {
padding: 0 2px; /* Ignored by IE8 */
}
a:link{
color: #006;
text-decoration: none;
font-weight: bold;
word-wrap: break-word;
}
a:visited{
color: #448;
text-decoration: none;
font-weight: bold;
}
a:hover{
color: #f60;
text-decoration: underline;
font-weight: bold;
}
a:active{
color: #f93;
text-decoration: underline;
font-weight: bold;
}
pre {
font-size: 9pt;
margin: 0px 20px;
}
tt {
font-size: 9pt;
font-weight: bold;
color: darkgreen;
}
.tablefooter {
border: 1px solid #f00;
}
.tablefooter tr, .tablefooter td {
background: #aaf;
font-size: 8pt;
font-weight: bold;
line-height: 150%;
}

View File

@ -0,0 +1,6 @@
/* Welcome to the wonderful world of kludgey IE fixes */
.wideload {
overflow: auto;
width: 100%;
}

View File

@ -19,7 +19,7 @@ img {
pre { pre {
width: 98%; width: 98%;
overflow-x: scroll; overflow: auto;
text-align: left; text-align: left;
font: 8pt "Lucida Console", "DejaVu Sans Mono", Courier, mono; font: 8pt "Lucida Console", "DejaVu Sans Mono", Courier, mono;
color: #333; color: #333;
@ -130,7 +130,6 @@ div.main {
text-align: left; text-align: left;
color: #001; color: #001;
width: auto; width: auto;
/* overflow-x: scroll; */
} }
div.main hr, hr { div.main hr, hr {
@ -652,7 +651,7 @@ form {}
-khtml-border-radius: 4px; -khtml-border-radius: 4px;
text-align: justify; text-align: justify;
-moz-box-shadow: inset 0px 0px 1px 0px #002; -moz-box-shadow: inset 0px 0px 1px 0px #002;
overflow-x: scroll; overflow: auto;
} }
div.joblog:li { div.joblog:li {

View File

@ -607,7 +607,7 @@ public class JobQueue {
out.flush(); out.flush();
StringBuilder buf = new StringBuilder(32*1024); StringBuilder buf = new StringBuilder(32*1024);
buf.append("<b><div class=\"joblog\"><h3>I2P JobQueue</h3># runners: ").append(numRunners).append(" [states="); buf.append("<b><div class=\"joblog\"><h3>I2P JobQueue</h3><div class=\"wideload\"># runners: ").append(numRunners).append(" [states=");
if (states != null) if (states != null)
for (int i = 0; i < states.length; i++) for (int i = 0; i < states.length; i++)
buf.append(states[i]).append(" "); buf.append(states[i]).append(" ");
@ -734,6 +734,6 @@ public class JobQueue {
buf.append("<td><i>").append(minPendingTime).append("</i></td>"); buf.append("<td><i>").append(minPendingTime).append("</i></td>");
buf.append("</tr>\n"); buf.append("</tr>\n");
buf.append("</table>\n"); buf.append("</table></div>\n");
} }
} }

View File

@ -18,7 +18,7 @@ public class RouterVersion {
/** deprecated */ /** deprecated */
public final static String ID = "Monotone"; public final static String ID = "Monotone";
public final static String VERSION = CoreVersion.VERSION; public final static String VERSION = CoreVersion.VERSION;
public final static long BUILD = 04; public final static long BUILD = 05;
/** for example "-test" */ /** for example "-test" */
public final static String EXTRA = ""; public final static String EXTRA = "";
public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA; public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA;

View File

@ -643,7 +643,7 @@ public class NTCPTransport extends TransportImpl {
buf.append(". Limit: ").append(getMaxConnections()); buf.append(". Limit: ").append(getMaxConnections());
buf.append(". Timeout: ").append(DataHelper.formatDuration(_pumper.getIdleTimeout())); buf.append(". Timeout: ").append(DataHelper.formatDuration(_pumper.getIdleTimeout()));
buf.append(".</b></h3>\n"); buf.append(".</b></h3>\n");
buf.append("<table>\n"); buf.append("<div class=\"wideload\"><table>\n");
buf.append("<tr><th><a href=\"#def.peer\">Peer</a></th>"); buf.append("<tr><th><a href=\"#def.peer\">Peer</a></th>");
buf.append("<th>Dir</th>"); buf.append("<th>Dir</th>");
buf.append("<th align=\"right\"><a href=\"#def.idle\">Idle</a></th>"); buf.append("<th align=\"right\"><a href=\"#def.idle\">Idle</a></th>");
@ -727,7 +727,7 @@ public class NTCPTransport extends TransportImpl {
buf.append("</td></tr>\n"); buf.append("</td></tr>\n");
} }
buf.append("</table></p>\n"); buf.append("</table></div></p>\n");
out.write(buf.toString()); out.write(buf.toString());
buf.setLength(0); buf.setLength(0);
} }

View File

@ -1767,7 +1767,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
buf.append(". Limit: ").append(getMaxConnections()); buf.append(". Limit: ").append(getMaxConnections());
buf.append(". Timeout: ").append(DataHelper.formatDuration(_expireTimeout)); buf.append(". Timeout: ").append(DataHelper.formatDuration(_expireTimeout));
buf.append(".</b></h3>\n"); buf.append(".</b></h3>\n");
buf.append("<table>\n"); buf.append("<div class=\"wideload\"><table>\n");
buf.append("<tr><th class=\"smallhead\" nowrap><a href=\"#def.peer\">Peer</a>"); buf.append("<tr><th class=\"smallhead\" nowrap><a href=\"#def.peer\">Peer</a>");
if (sortFlags != FLAG_ALPHA) if (sortFlags != FLAG_ALPHA)
buf.append(" <a href=\"").append(urlBase).append("?sort=0\">V</a> "); buf.append(" <a href=\"").append(urlBase).append("?sort=0\">V</a> ");
@ -1998,7 +1998,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
buf.append(sendTotal).append("</td></b> <td align=\"center\"><b>").append(recvTotal).append("</b></td>\n"); buf.append(sendTotal).append("</td></b> <td align=\"center\"><b>").append(recvTotal).append("</b></td>\n");
buf.append(" <td align=\"center\"><b>").append(resentTotal); buf.append(" <td align=\"center\"><b>").append(resentTotal);
buf.append("</b></td> <td align=\"center\"><b>").append(dupRecvTotal).append("</b></td>\n"); buf.append("</b></td> <td align=\"center\"><b>").append(dupRecvTotal).append("</b></td>\n");
buf.append(" </tr></table></p><p>\n"); buf.append(" </tr></table></div></p><p>\n");
long bytesTransmitted = _context.bandwidthLimiter().getTotalAllocatedOutboundBytes(); long bytesTransmitted = _context.bandwidthLimiter().getTotalAllocatedOutboundBytes();
// NPE here early // NPE here early
double averagePacketSize = _context.statManager().getRate("udp.sendPacketSize").getLifetimeAverageValue(); double averagePacketSize = _context.statManager().getRate("udp.sendPacketSize").getLifetimeAverageValue();

View File

@ -405,7 +405,7 @@ public class TunnelPoolManager implements TunnelManagerFacade {
public void renderStatusHTML(Writer out) throws IOException { public void renderStatusHTML(Writer out) throws IOException {
out.write("<h2><a name=\"exploratory\" ></a>Exploratory tunnels (<a href=\"/configtunnels.jsp#exploratory\">config</a>):</h2>\n"); out.write("<div class=\"wideload\"><h2><a name=\"exploratory\" ></a>Exploratory tunnels (<a href=\"/configtunnels.jsp#exploratory\">config</a>):</h2>\n");
renderPool(out, _inboundExploratory, _outboundExploratory); renderPool(out, _inboundExploratory, _outboundExploratory);
List destinations = null; List destinations = null;
@ -623,7 +623,7 @@ public class TunnelPoolManager implements TunnelManagerFacade {
} }
out.write("<tr class=\"tablefooter\"> <td align=\"center\"><b>Tunnels</b> <td align=\"center\"><b>" + tunnelCount); out.write("<tr class=\"tablefooter\"> <td align=\"center\"><b>Tunnels</b> <td align=\"center\"><b>" + tunnelCount);
out.write("</b> <td>&nbsp;</td> <td align=\"center\"><b>" + partCount); out.write("</b> <td>&nbsp;</td> <td align=\"center\"><b>" + partCount);
out.write("</b> <td>&nbsp;</td></tr></table>\n"); out.write("</b> <td>&nbsp;</td></tr></table></div>\n");
} }
/** @return total number of non-fallback expl. + client tunnels */ /** @return total number of non-fallback expl. + client tunnels */