Changeset 55a8002b


Ignore:
Timestamp:
Aug 7, 2009 6:30:04 PM (11 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
69fdfb0
Parents:
70ae99f (diff), e36f9b2 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

propagate from branch 'i2p.i2p.zzz.test3' (head 1f086d33dd3479afceb025d2da7956d7470fb3e5)

to branch 'i2p.i2p' (head 6959293ce260b9da4d61776717c02e20a0c7b2dd)

Files:
4 added
47 edited

Legend:

Unmodified
Added
Removed
  • apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java

    r70ae99f r55a8002b  
    712712        out.write("Data directory: <input type=\"text\" size=\"40\" name=\"dataDir\" value=\"" + dataDir + "\" ");
    713713        out.write("title=\"Directory to store torrents and data\" disabled=\"true\" /> <i>(Edit i2psnark.config and restart to change)</i><br />\n");
    714         out.write("Auto start: <input type=\"checkbox\" name=\"autoStart\" value=\"true\" "
     714        out.write("Auto start: <input type=\"checkbox\" class=\"optbox\" name=\"autoStart\" value=\"true\" "
    715715                  + (autoStart ? "checked " : "")
    716716                  + "title=\"If true, automatically start torrents that are added\" />");
     
    739739                  + _manager.util().getMaxUpBW() + "\" size=\"3\" maxlength=\"3\" /> KBps <i>(Half <a href=\"/config.jsp\" target=\"blank\">available bandwidth</a> recommended.)</i><br />\n");
    740740       
    741         out.write("Use open trackers also: <input type=\"checkbox\" name=\"useOpenTrackers\" value=\"true\" "
     741        out.write("Use open trackers also: <input type=\"checkbox\" class=\"optbox\" name=\"useOpenTrackers\" value=\"true\" "
    742742                  + (useOpenTrackers ? "checked " : "")
    743743                  + "title=\"If true, uses open trackers in addition\" /> ");
  • apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHandler.java

    r70ae99f r55a8002b  
    5656                startWebApp(app);
    5757        } else {
    58             addFormError("Unsupported " + _action);
     58            addFormError("Unsupported " + _action + ".");
    5959        }
    6060    }
     
    7171        }
    7272        ClientAppConfig.writeClientAppConfig(_context, clients);
    73         addFormNotice("Client configuration saved successfully - restart required to take effect");
     73        addFormNotice("Client configuration saved successfully - restart required to take effect.");
    7474    }
    7575
     
    7777        List clients = ClientAppConfig.getClientApps(_context);
    7878        if (i >= clients.size()) {
    79             addFormError("Bad client index");
     79            addFormError("Bad client index.");
    8080            return;
    8181        }
    8282        ClientAppConfig ca = (ClientAppConfig) clients.get(i);
    8383        LoadClientAppsJob.runClient(ca.className, ca.clientName, LoadClientAppsJob.parseArgs(ca.args), _log);
    84         addFormNotice("Client " + ca.clientName + " started");
     84        addFormNotice("Client " + ca.clientName + " started.");
    8585    }
    8686
     
    9999        }
    100100        RouterConsoleRunner.storeWebAppProperties(props);
    101         addFormNotice("WebApp configuration saved successfully - restart required to take effect");
     101        addFormNotice("WebApp configuration saved successfully - restart required to take effect.");
    102102    }
    103103
     
    117117                        s.addWebApplication("/"+ app, path.getAbsolutePath()).start();
    118118                        // no passwords... initialize(wac);
    119                         addFormNotice("WebApp <a href=\"/" + app + "/\">" + app + "</a> started");
     119                        addFormNotice("WebApp <a href=\"/" + app + "/\">" + app + "</a> started.");
    120120                    } catch (Exception ioe) {
    121                         addFormError("Failed to start " + app + " " + ioe);
     121                        addFormError("Failed to start " + app + " " + ioe + ".");
    122122                    }
    123123                    return;
     
    125125            }
    126126        }
    127         addFormError("Failed to find server");
     127        addFormError("Failed to find server.");
    128128    }
    129129}
  • apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHelper.java

    r70ae99f r55a8002b  
    1515    public String getForm1() {
    1616        StringBuilder buf = new StringBuilder(1024);
    17         buf.append("<table border=\"1\">\n");
    18         buf.append("<tr><th>Client</th><th>Run at Startup?</th><th>Start Now</th><th>Class and arguments</th></tr>\n");
     17        buf.append("<table>\n");
     18        buf.append("<tr><th align=\"right\">Client</th><th>Run at Startup?</th><th>Start Now</th><th align=\"left\">Class and arguments</th></tr>\n");
    1919       
    2020        List clients = ClientAppConfig.getClientApps(_context);
     
    3131    public String getForm2() {
    3232        StringBuilder buf = new StringBuilder(1024);
    33         buf.append("<table border=\"1\">\n");
    34         buf.append("<tr><th>WebApp</th><th>Run at Startup?</th><th>Start Now</th><th>Description</th></tr>\n");
     33        buf.append("<table>\n");
     34        buf.append("<tr><th align=\"right\">WebApp</th><th>Run at Startup?</th><th>Start Now</th><th align=\"left\">Description</th></tr>\n");
    3535        Properties props = RouterConsoleRunner.webAppProperties();
    3636        Set keys = new TreeSet(props.keySet());
     
    4848
    4949    private void renderForm(StringBuilder buf, String index, String name, boolean urlify, boolean enabled, boolean ro, String desc) {
    50         buf.append("<tr><td>");
     50        buf.append("<tr><td class=\"mediumtags\" align=\"right\" width=\"25%\">");
    5151        if (urlify && enabled) {
    5252            String link = "/";
     
    5757            buf.append(name);
    5858        }
    59         buf.append("</td><td align=\"center\"><input type=\"checkbox\" name=\"").append(index).append(".enabled\" value=\"true\" ");
     59        buf.append("</td><td align=\"center\" width=\"10%\"><input type=\"checkbox\" class=\"optbox\" name=\"").append(index).append(".enabled\" value=\"true\" ");
    6060        if (enabled) {
    6161            buf.append("checked=\"true\" ");
     
    6363                buf.append("disabled=\"true\" ");
    6464        }
    65         buf.append("/></td><td>&nbsp;");
     65        buf.append("/></td><td align=\"center\" width=\"15%\">");
    6666        if (!enabled) {
    6767            buf.append("<button type=\"submit\" name=\"action\" value=\"Start ").append(index).append("\" >Start<span class=hide> ").append(index).append("</span></button>");
    6868        }
    69         buf.append("&nbsp;</td><td>").append(desc).append("</td></tr>\n");
     69        buf.append("</td><td align=\"left\" width=\"50%\">").append(desc).append("</td></tr>\n");
    7070    }
    7171}
  • apps/routerconsole/java/src/net/i2p/router/web/ConfigTunnelsHandler.java

    r70ae99f r55a8002b  
    4848       
    4949        if (_log.shouldLog(Log.DEBUG))
    50             _log.debug("Saving changes, with props = " + _settings);
     50            _log.debug("Saving changes, with props = " + _settings + ".");
    5151       
    5252        int updated = 0;
     
    6868                    client.fromBase64(poolName);
    6969                } catch (DataFormatException dfe) {
    70                     addFormError("Internal error (pool name could not resolve - " + poolName + ")");
     70                    addFormError("Internal error (pool name could not resolve - " + poolName + ").");
    7171                    index++;
    7272                    continue;
     
    7777           
    7878            if ( (in == null) || (out == null) ) {
    79                 addFormError("Internal error (pool settings cound not be found for " + poolName + ")");
     79                addFormError("Internal error (pool settings cound not be found for " + poolName + ").");
    8080                index++;
    8181                continue;
     
    132132       
    133133        if (updated > 0)
    134             addFormNotice("Updated settings for " + updated + " pools");
     134            addFormNotice("Updated settings for " + updated + " pools.");
    135135       
    136136        if (saveRequired) {
    137137            boolean saved = _context.router().saveConfig();
    138138            if (saved)
    139                 addFormNotice("Exploratory tunnel configuration saved successfully");
     139                addFormNotice("Exploratory tunnel configuration saved successfully.");
    140140            else
    141                 addFormNotice("Error saving the configuration (applied but not saved) - please see the error logs");
     141                addFormNotice("Error saving the configuration (applied but not saved) - please see the error logs.");
    142142        }
    143143    }
  • apps/routerconsole/java/src/net/i2p/router/web/ConfigTunnelsHelper.java

    r70ae99f r55a8002b  
    6363            out.getLength() <= 0 ||
    6464            out.getLength() + out.getLengthVariance() <= 0)
    65             buf.append("<tr><th colspan=\"3\"><font color=\"red\">ANONYMITY WARNING - Settings include 0-hop tunnels</font></th></tr>");
     65            buf.append("<tr><th colspan=\"3\"><font color=\"red\">ANONYMITY WARNING - Settings include 0-hop tunnels.</font></th></tr>");
    6666        else if (in.getLength() <= 1 ||
    6767            in.getLength() + in.getLengthVariance() <= 1 ||
    6868            out.getLength() <= 1 ||
    6969            out.getLength() + out.getLengthVariance() <= 1)
    70             buf.append("<tr><th colspan=\"3\"><font color=\"red\">ANONYMITY WARNING - Settings include 1-hop tunnels</font></th></tr>");
     70            buf.append("<tr><th colspan=\"3\"><font color=\"red\">ANONYMITY WARNING - Settings include 1-hop tunnels.</font></th></tr>");
    7171        if (in.getLength() + Math.abs(in.getLengthVariance()) >= WARN_LENGTH ||
    7272            out.getLength() + Math.abs(out.getLengthVariance()) >= WARN_LENGTH)
    73             buf.append("<tr><th colspan=\"3\"><font color=\"red\">PERFORMANCE WARNING - Settings include very long tunnels</font></th></tr>");
     73            buf.append("<tr><th colspan=\"3\"><font color=\"red\">PERFORMANCE WARNING - Settings include very long tunnels.</font></th></tr>");
    7474        if (in.getQuantity() + in.getBackupQuantity() >= WARN_QUANTITY ||
    7575            out.getQuantity() + out.getBackupQuantity() >= WARN_QUANTITY)
    76             buf.append("<tr><th colspan=\"3\"><font color=\"red\">PERFORMANCE WARNING - Settings include high tunnel quantities</font></th></tr>");
     76            buf.append("<tr><th colspan=\"3\"><font color=\"red\">PERFORMANCE WARNING - Settings include high tunnel quantities.</font></th></tr>");
    7777
    7878buf.append("<tr><th></th><th><img src=\"/themes/console/images/inbound.png\" alt=\"Inbound\" title=\"Inbound Tunnels\"/>&nbsp;&nbsp;Inbound</th><th><img src=\"/themes/console/images/outbound.png\" alt=\"Outbound Tunnels\" title=\"Outbound\"/>&nbsp;&nbsp;Outbound</th></tr>\n");
  • apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHandler.java

    r70ae99f r55a8002b  
    2525            _context.router().setConfigSetting(CSSHelper.PROP_THEME_NAME, _config);
    2626        if (_context.router().saveConfig())
    27             addFormNotice("Theme change successfully saved (<a href=\"configui.jsp\">refresh page to view</a>)");
     27            addFormNotice("Theme change successfully saved (<a href=\"configui.jsp\">refresh page</a> to view).");
    2828        else
    29             addFormNotice("Error saving the configuration (applied but not saved) - please see the error logs");
     29            addFormNotice("Error saving the configuration (applied but not saved) - please see the error logs.");
    3030    }
    3131}
  • apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java

    r70ae99f r55a8002b  
    1010        String current = _context.getProperty(CSSHelper.PROP_THEME_NAME, CSSHelper.DEFAULT_THEME);
    1111        for (String theme : themes) {
    12             buf.append("<input type=\"radio\" name=\"theme\" ");
     12            buf.append("<input type=\"radio\" class=\"optbox\" name=\"theme\" ");
    1313            if (theme.equals(current))
    1414                buf.append("checked=\"true\" ");
  • apps/routerconsole/java/src/net/i2p/router/web/ConfigUpdateHelper.java

    r70ae99f r55a8002b  
    4343        String proxy = _context.getProperty(ConfigUpdateHandler.PROP_SHOULD_PROXY, ConfigUpdateHandler.DEFAULT_SHOULD_PROXY);
    4444        if (Boolean.valueOf(proxy).booleanValue())
    45             return "<input type=\"checkbox\" value=\"true\" name=\"updateThroughProxy\" checked=\"true\" >";
     45            return "<input type=\"checkbox\" class=\"optbox\" value=\"true\" name=\"updateThroughProxy\" checked=\"true\" >";
    4646        else
    4747           
    48             return "<input type=\"checkbox\" value=\"true\" name=\"updateThroughProxy\" >";
     48            return "<input type=\"checkbox\" class=\"optbox\" value=\"true\" name=\"updateThroughProxy\" >";
    4949    }
    5050   
  • apps/routerconsole/java/src/net/i2p/router/web/GraphHelper.java

    r70ae99f r55a8002b  
    110110            _out.write("<form action=\"graphs.jsp\" method=\"GET\">");
    111111            _out.write("Periods: <input size=\"3\" type=\"text\" name=\"periodCount\" value=\"" + _periodCount + "\" /><br />\n");
    112             _out.write("Plot averages: <input type=\"radio\" name=\"showEvents\" value=\"false\" " + (_showEvents ? "" : "checked=\"true\" ") + " /> ");
    113             _out.write("or plot events: <input type=\"radio\" name=\"showEvents\" value=\"true\" "+ (_showEvents ? "checked=\"true\" " : "") + " /><br />\n");
     112            _out.write("Plot averages: <input type=\"radio\" class=\"optbox\" name=\"showEvents\" value=\"false\" " + (_showEvents ? "" : "checked=\"true\" ") + " /> ");
     113            _out.write("or plot events: <input type=\"radio\" class=\"optbox\" name=\"showEvents\" value=\"true\" "+ (_showEvents ? "checked=\"true\" " : "") + " /><br />\n");
    114114            _out.write("Image sizes: width: <input size=\"4\" type=\"text\" name=\"width\" value=\"" + _width
    115115                       + "\" /> pixels, height: <input size=\"4\" type=\"text\" name=\"height\" value=\"" + _height 
    116116                       + "\" /><br />\n");
    117117            _out.write("Refresh delay: <select name=\"refreshDelay\"><option value=\"60\">1 minute</option><option value=\"120\">2 minutes</option><option value=\"300\">5 minutes</option><option value=\"600\">10 minutes</option><option value=\"1800\">30 minutes</option><option value=\"3600\">1 hour</option><option value=\"-1\">Never</option></select><br />\n");
    118             _out.write("<hr /><input type=\"submit\" value=\"Redraw\" /></div>");
     118            _out.write("<hr /><div class=\"formaction\"><input type=\"submit\" value=\"Redraw\" /></div></div>");
    119119        } catch (IOException ioe) {
    120120            ioe.printStackTrace();
  • apps/routerconsole/jsp/config.jsp

    r70ae99f r55a8002b  
    3131 </p>
    3232<p>
     33   <div class="wideload">
    3334    <table>
    3435    <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
     
    5051    <tr><td><jsp:getProperty name="nethelper" property="sharePercentageBox" />
    5152    Share <td>(<jsp:getProperty name="nethelper" property="shareRateBits" />)<br />
    52     </table>
     53  </table></div>
    5354 </p><p>
    5455 <% int share = nethelper.getShareBandwidth();
     
    6061    } else {
    6162        out.print("You have configured I2P to share<b> " + share + "KBps</b>. ");
    62         out.print("The higher the share bandwidth the more you improve your anonymity and help the network.<br />");
     63        out.print("The higher the share bandwidth the more you improve your anonymity and help the network.<hr />");
    6364    }
    6465 %>
    65  </p><p>
    66  <input type="submit" name="save" value="Save changes" /> <input type="reset" value="Cancel" /><br />
    67  </p>
    68 <!--
     66 </p><div class="formaction">
     67<input type="submit" name="save" value="Save changes" /> <input type="reset" value="Cancel" /></div>
     68 <!--
    6969 <b>Enable load testing: </b>
    70 <input type="checkbox" name="enableloadtesting" value="true" <jsp:getProperty name="nethelper" property="enableLoadTesting" /> />
     70<input type="checkbox" class="optbox" name="enableloadtesting" value="true" <jsp:getProperty name="nethelper" property="enableLoadTesting" /> />
    7171 <p>If enabled, your router will periodically anonymously probe some of your peers
    7272 to see what sort of throughput they can handle.  This improves your router's ability
     
    8181 </p><p>
    8282 <b>UPnP Configuration:</b><br />
    83     <input type="checkbox" name="upnp" value="true" <jsp:getProperty name="nethelper" property="upnpChecked" /> />
     83    <input type="checkbox" class="optbox" name="upnp" value="true" <jsp:getProperty name="nethelper" property="upnpChecked" /> />
    8484    Enable UPnP to open firewall ports - <a href="peers.jsp#upnp">UPnP status</a>
    8585 </p><p>
    8686 <b>IP Configuration:</b><br />
    8787 Externally reachable hostname or IP address:<br />
    88     <input type="radio" name="udpAutoIP" value="local,upnp,ssu" <%=nethelper.getUdpAutoIPChecked(3) %> />
     88    <input type="radio" class="optbox" name="udpAutoIP" value="local,upnp,ssu" <%=nethelper.getUdpAutoIPChecked(3) %> />
    8989    Use all auto-detect methods<br />
    90     <input type="radio" name="udpAutoIP" value="local,ssu" <%=nethelper.getUdpAutoIPChecked(4) %> />
     90    <input type="radio" class="optbox" name="udpAutoIP" value="local,ssu" <%=nethelper.getUdpAutoIPChecked(4) %> />
    9191    Disable UPnP IP address detection<br />
    92     <input type="radio" name="udpAutoIP" value="upnp,ssu" <%=nethelper.getUdpAutoIPChecked(5) %> />
     92    <input type="radio" class="optbox" name="udpAutoIP" value="upnp,ssu" <%=nethelper.getUdpAutoIPChecked(5) %> />
    9393    Ignore local interface IP address<br />
    94     <input type="radio" name="udpAutoIP" value="ssu" <%=nethelper.getUdpAutoIPChecked(0) %> />
     94    <input type="radio" class="optbox" name="udpAutoIP" value="ssu" <%=nethelper.getUdpAutoIPChecked(0) %> />
    9595    Use SSU IP address detection only<br />
    96     <input type="radio" name="udpAutoIP" value="fixed" <%=nethelper.getUdpAutoIPChecked(1) %> />
     96    <input type="radio" class="optbox" name="udpAutoIP" value="fixed" <%=nethelper.getUdpAutoIPChecked(1) %> />
    9797    Specify hostname or IP:
    9898    <input name ="udpHost1" type="text" size="16" value="<jsp:getProperty name="nethelper" property="udphostname" />" />
     
    111111    %>
    112112    <br />
    113     <input type="radio" name="udpAutoIP" value="hidden" <%=nethelper.getUdpAutoIPChecked(2) %> />
     113    <input type="radio" class="optbox" name="udpAutoIP" value="hidden" <%=nethelper.getUdpAutoIPChecked(2) %> />
    114114    Hidden mode - do not publish IP <i>(prevents participating traffic)</i><br />
    115115 </p><p>
     
    118118 <input name ="udpPort" type="text" size="5" maxlength="5" value="<jsp:getProperty name="nethelper" property="configuredUdpPort" />" /><br />
    119119<!-- let's keep this simple...
    120 <input type="checkbox" name="requireIntroductions" value="true" <jsp:getProperty name="nethelper" property="requireIntroductionsChecked" /> />
     120<input type="checkbox" class="optbox" name="requireIntroductions" value="true" <jsp:getProperty name="nethelper" property="requireIntroductionsChecked" /> />
    121121 Require SSU introductions
    122122 <i>(Enable if you cannot open your firewall)</i>
     
    127127 <b>TCP Configuration:</b><br />
    128128 Externally reachable hostname or IP address:<br />
    129     <input type="radio" name="ntcpAutoIP" value="true" <%=nethelper.getTcpAutoIPChecked(2) %> />
     129    <input type="radio" class="optbox" name="ntcpAutoIP" value="true" <%=nethelper.getTcpAutoIPChecked(2) %> />
    130130    Use auto-detected IP address
    131131    <i>(currently <jsp:getProperty name="nethelper" property="udpIP" />)</i>
    132132    if we are not firewalled<br />
    133     <input type="radio" name="ntcpAutoIP" value="always" <%=nethelper.getTcpAutoIPChecked(3) %> />
     133    <input type="radio" class="optbox" name="ntcpAutoIP" value="always" <%=nethelper.getTcpAutoIPChecked(3) %> />
    134134    Always use auto-detected IP address (Not firewalled)<br />
    135     <input type="radio" name="ntcpAutoIP" value="false" <%=nethelper.getTcpAutoIPChecked(1) %> />
     135    <input type="radio" class="optbox" name="ntcpAutoIP" value="false" <%=nethelper.getTcpAutoIPChecked(1) %> />
    136136    Specify hostname or IP:
    137137    <input name ="ntcphost" type="text" size="16" value="<jsp:getProperty name="nethelper" property="ntcphostname" />" /><br />
    138     <input type="radio" name="ntcpAutoIP" value="false" <%=nethelper.getTcpAutoIPChecked(0) %> />
     138    <input type="radio" class="optbox" name="ntcpAutoIP" value="false" <%=nethelper.getTcpAutoIPChecked(0) %> />
    139139    Disable inbound (Firewalled)<br />
    140     <input type="radio" name="ntcpAutoIP" value="disabled" <%=nethelper.getTcpAutoIPChecked(4) %> />
     140    <input type="radio" class="optbox" name="ntcpAutoIP" value="disabled" <%=nethelper.getTcpAutoIPChecked(4) %> />
    141141    Completely disable <i>(select only if behind a firewall that throttles or blocks outbound TCP)</i><br />
    142142 </p><p>
    143143 Externally reachable TCP port:<br />
    144     <input type="radio" name="ntcpAutoPort" value="2" <%=nethelper.getTcpAutoPortChecked(2) %> />
     144    <input type="radio" class="optbox" name="ntcpAutoPort" value="2" <%=nethelper.getTcpAutoPortChecked(2) %> />
    145145    Use the same port configured for UDP
    146146    <i>(currently <jsp:getProperty name="nethelper" property="udpPort" />)</i><br />
    147     <input type="radio" name="ntcpAutoPort" value="1" <%=nethelper.getTcpAutoPortChecked(1) %> />
     147    <input type="radio" class="optbox" name="ntcpAutoPort" value="1" <%=nethelper.getTcpAutoPortChecked(1) %> />
    148148    Specify Port:
    149149    <input name ="ntcpport" type="text" size="5" maxlength="5" value="<jsp:getProperty name="nethelper" property="ntcpport" />" /><br />
    150150 </p><p><b>Note: Changing these settings will restart your router.</b>
    151  </p>
     151 </p><hr><div class="formaction">
    152152 <input type="submit" name="save" value="Save changes" /> <input type="reset" value="Cancel" />
     153</div>
    153154</div>
    154155<h3><a name="chelp">Configuration Help:</a></h3>
     
    249250      <!--
    250251 <b>Dynamic Router Keys: </b>
    251  <input type="checkbox" name="dynamicKeys" value="true" <jsp:getProperty name="nethelper" property="dynamicKeysChecked" /> /><br />
     252 <input type="checkbox" class="optbox" name="dynamicKeys" value="true" <jsp:getProperty name="nethelper" property="dynamicKeysChecked" /> /><br />
    252253 <p>
    253254 This setting causes your router identity to be regenerated every time your IP address
  • apps/routerconsole/jsp/configadvanced.jsp

    r70ae99f r55a8002b  
    1717
    1818 <%@include file="confignav.jsp" %>
    19  
     19
    2020 <jsp:useBean class="net.i2p.router.web.ConfigAdvancedHandler" id="formhandler" scope="request" />
    2121 <jsp:setProperty name="formhandler" property="*" />
     
    2323 <jsp:getProperty name="formhandler" property="allMessages" />
    2424 <div class="configure">
     25 <div class="wideload">
    2526 <form action="configadvanced.jsp" method="POST">
    2627 <% String prev = System.getProperty("net.i2p.router.web.ConfigAdvancedHandler.nonce");
     
    3132 <h3>Advanced I2P Configuration</h3>
    3233 <textarea rows="32" cols="60" name="config" wrap="off"><jsp:getProperty name="advancedhelper" property="settings" /></textarea><br /><hr>
    33       <p align="right">
     34      <div class="formaction">
    3435        <input type="submit" name="shouldsave" value="Apply" />
    35         <input type="reset" value="Cancel" />
    36       </p>
    37       <p>
    38  NOTE: Some changes may require a restart to take effect.
    39 </p>
     36        <input type="reset" value="Cancel" /><br />
     37 <b>NOTE:</b> Some changes may require a restart to take effect.
     38      </div>
    4039 </form>
     40</div>
    4141</div>
    4242</div>
  • apps/routerconsole/jsp/configclients.jsp

    r70ae99f r55a8002b  
    3636 <p>
    3737 The Java clients listed below are started by the router and run in the same JVM.
    38  </p><p>
     38 </p><p> <div class="wideload">
    3939 <jsp:getProperty name="clientshelper" property="form1" />
    4040 </p><p>
    4141 <i>All changes require restart to take effect. To change other client options, edit the clients.config file.</i>
    42  </p> <hr /><p>
     42 </p> <hr /><div class="formaction">
    4343 <input type="submit" name="action" value="Save Client Configuration" />
    44  </p>
    45 <hr />
     44</div></div>
    4645 <h3>WebApp Configuration</h3>
    4746 <p>
     
    5554 however the .war file and web app will reappear when you update your router to a newer version,
    5655 so disabling the web app here is the preferred method.
    57  </p><p>
     56 </p><p><div class="wideload">
    5857 <jsp:getProperty name="clientshelper" property="form2" />
    59  </p><p><hr>
    60  <input type="submit" name="action" value="Save WebApp Configuration" />
    61  </p><hr><p>
     58 </p>
     59 <p>
    6260 <i>All changes require restart to take effect. To change other webapp options, edit the webapps.config file.</i>
    6361 </p>
     62 <hr><div class="formaction">
     63 <input type="submit" name="action" value="Save WebApp Configuration" />
     64 </div>
    6465 </form>
     66</div>
    6567</div>
    6668</div>
  • apps/routerconsole/jsp/configkeyring.jsp

    r70ae99f r55a8002b  
    1212<div class="main" id="main">
    1313 <%@include file="confignav.jsp" %>
    14  
     14
    1515 <jsp:useBean class="net.i2p.router.web.ConfigKeyringHandler" id="formhandler" scope="request" />
    1616 <jsp:setProperty name="formhandler" property="*" />
     
    2727 The router keyring is used to decrypt encrypted leaseSets.
    2828 The keyring may contain keys for local or remote encrypted destinations.
    29  <p><jsp:getProperty name="keyringhelper" property="summary" />
    30  </p>
     29 <div class="wideload"><p>
     30 <jsp:getProperty name="keyringhelper" property="summary" />
     31</p></div>
    3132
    3233 <hr />
     
    4142 Keys for local destinations must be entered on the <a href="i2ptunnel/index.jsp">I2PTunnel page</a>.
    4243 <p>
     44  <div class="wideload">
    4345      <table>
    4446        <tr>
    45           <td>Dest. name, hash, or full key:
    46           <td><textarea name="peer" cols="44" rows="1" style="height: 3em;" wrap="off"></textarea>
     47          <td class="mediumtags" align="right">Dest. name, hash, or full key:</td>
     48          <td><textarea name="peer" cols="44" rows="1" style="height: 3em;" wrap="off"></textarea></td>
    4749        <tr>
    48           <td align="right">Session Key:
    49           <td><input type="text" size="55" name="key" />
     50          <td class="mediumtags" align="right">Session Key:</td>
     51          <td><input type="text" size="55" name="key" /></td>
    5052        <tr>
    5153          <td>
    52           <td><div align="right">
    53               <input type="submit" name="action" value="Add key" />
    54             </div>
     54          <td align="right">
     55            <input type="submit" name="action" value="Add key" /></td>
    5556      </table>
    5657 </form>
    5758
    58 
     59</div>
    5960</div>
    6061</div>
  • apps/routerconsole/jsp/configlogging.jsp

    r70ae99f r55a8002b  
    1414<div class="main" id="main">
    1515 <%@include file="confignav.jsp" %>
    16  
     16
    1717 <jsp:useBean class="net.i2p.router.web.ConfigLoggingHandler" id="formhandler" scope="request" />
    1818 <jsp:setProperty name="formhandler" property="*" />
     
    2727 <input type="hidden" name="action" value="blah" />
    2828 <h3>Configure I2P Logging Options</h3>
     29 <div class="wideload">
    2930      <table border="0" cellspacing="5">
    3031        <tr>
    31           <td valign="top"><b>Logging filename:</b>
     32          <td class="mediumtags" align="right"><b>Logging filename:</b>
    3233          <td><input type="text" name="logfilename" size="40" value="<jsp:getProperty name="logginghelper" property="logFilePattern" />" />
    3334            <br /> <i>(the symbol '@' will be replaced during log rotation)</i>
    3435        <tr>
    35           <td valign="top"><b>Log record format:</b>
     36          <td class="mediumtags" align="right"><b>Log record format:</b>
    3637          <td><input type="text" name="logformat" size="20" value="<jsp:getProperty name="logginghelper" property="recordPattern" />" />
    3738            <br /> <i>(use 'd' = date, 'c' = class, 't' = thread, 'p' = priority,
    3839            'm' = message)</i>
    3940        <tr>
    40           <td valign="top"><b>Log date format:</b>
     41          <td class="mediumtags" align="right"><b>Log date format:</b>
    4142          <td><input type="text" name="logdateformat" size="20" value="<jsp:getProperty name="logginghelper" property="datePattern" />" />
    4243            <br /> <i>('MM' = month, 'dd' = day, 'HH' = hour, 'mm' = minute, 'ss'
    4344            = second, 'SSS' = millisecond)</i>
    4445        <tr>
    45           <td valign="top"><b>Max log file size:</b>
     46          <td class="mediumtags" align="right"><b>Max log file size:</b>
    4647          <td><input type="text" name="logfilesize" size="4" value="<jsp:getProperty name="logginghelper" property="maxFileSize" />" />
    4748            <br />
    4849        <tr>
    49           <td valign="top"><b>Default log level:</b>
     50          <td class="mediumtags" align="right"><b>Default log level:</b>
    5051          <td><jsp:getProperty name="logginghelper" property="defaultLogLevelBox" /> <br /> <i>(DEBUG and INFO are not recommended defaults,
    5152            as they will drastically slow down your router)</i>
    5253        <tr>
    53           <td valign="top"><b>Log level overrides:</b>
     54          <td class="mediumtags" align="right"><b>Log level overrides:</b>
    5455          <td><jsp:getProperty name="logginghelper" property="logLevelTable" />
    5556        <tr>
    56           <td colspan="2" valign="top"><hr>
     57          <td colspan="2"><hr>
    5758        <tr>
    5859          <td>
     
    6566</div>
    6667</div>
     68</div>
    6769</body>
    6870</html>
  • apps/routerconsole/jsp/configpeer.jsp

    r70ae99f r55a8002b  
    3838 <a name="bonus"> </a>
    3939 <h2>Manual Peer Controls</h2>
    40  Router Hash:
    41  <input type="text" size="55" name="peer" value="<%=peer%>" />
     40 <div class="mediumtags">Router Hash:
     41 <input type="text" size="55" name="peer" value="<%=peer%>" /></div>
    4242 <h3>Manually Shitlist / Unshitlist a Router</h3>
    4343 Shitlisting will prevent the participation of this peer in tunnels you create.
    44       <p>
     44      <hr />     
     45      <div class="formaction">
    4546        <input type="submit" name="action" value="Shitlist peer until restart" />
    4647        <input type="submit" name="action" value="Unshitlist peer" />
    4748        <% if (! "".equals(peer)) { %>
    48         <font color="blue">&lt;---- click to verify action</font>
     49        <!-- <font color="blue">&lt;---- click to verify action</font> -->
    4950        <% } %>
    50       </p>
    51       <hr />
     51      </div>
     52
    5253 <h3>Adjust Profile Bonuses</h3>
    5354 Bonuses may be positive or negative, and affect the peer's inclusion in Fast
     
    6061        // get existing bonus values?
    6162    }
    62  %>
    63  Speed:
     63 %>
     64 <hr />
     65 <div class="mediumtags">Speed:
    6466 <input type="text" size="8" name="speed" value="<%=speed%>" />
    6567 Capacity:
    6668 <input type="text" size="8" name="capacity" value="<%=capacity%>" />
    67  <input type="submit" name="action" value="Adjust peer bonuses" />
     69 <input type="submit" name="action" value="Adjust peer bonuses" /></div>
    6870 </p>
    6971 </form>
    70 
    71  <hr />
    7272 <a name="shitlist"> </a>
    7373 <jsp:useBean class="net.i2p.router.web.ProfilesHelper" id="profilesHelper" scope="request" />
     
    7575 <jsp:getProperty name="profilesHelper" property="shitlistSummary" />
    7676 <hr />
     77 <div class="wideload">
    7778 <jsp:getProperty name="peerhelper" property="blocklistSummary" />
    7879
    79 
     80</div>
    8081</div>
    8182</div>
  • apps/routerconsole/jsp/configservice.jsp

    r70ae99f r55a8002b  
    2727 before shutting down, but may take a few minutes.  If you need to kill the
    2828 router immediately, that option is available as well.</p>
    29  
     29  <hr><div class="formaction">
    3030 <input type="submit" name="action" value="Shutdown gracefully" />
    3131 <input type="submit" name="action" value="Shutdown immediately" />
    3232 <input type="submit" name="action" value="Cancel graceful shutdown" />
    33  <hr>
     33 </div>
    3434 <% if (System.getProperty("wrapper.version") != null) { %>
    3535 <p>If you want the router to restart itself after shutting down, you can choose one of
     
    3939 will appreciate your patience), while a hard restart does so immediately.  After tearing down
    4040 the router, it will wait 1 minute before starting back up again.</p>
    41  
     41 <hr><div class="formaction">
    4242 <input type="submit" name="action" value="Graceful restart" />
    4343 <input type="submit" name="action" value="Hard restart" />
    44  <% } %>
    45  <hr>
     44 <% } %></div>
     45
    4646 <% if ( (System.getProperty("os.name") != null) && (System.getProperty("os.name").startsWith("Win")) ) { %>
    4747 <h3>Systray integration</h3>
     
    5050 will be able to integrate their own functionality into the system tray as well).
    5151 If you are on windows, you can either enable or disable that icon here.</p>
     52 <hr><div class="formaction">
    5253 <input type="submit" name="action" value="Show systray icon" />
    5354 <input type="submit" name="action" value="Hide systray icon" />
    54  <hr>
     55</div>
    5556 <h3>Run on startup</h3>
    5657 <p>You can control whether I2P is run on startup or not by selecting one of the
     
    5859 also run the <code>install_i2p_service_winnt.bat</code> (or
    5960 <code>uninstall_i2p_service_winnt.bat</code>) from the command line, if you prefer.</p>
     61 <hr><div class="formaction">
    6062 <input type="submit" name="action" value="Run I2P on startup" />
    61  <input type="submit" name="action" value="Don't run I2P on startup" /><br />
     63<input type="submit" name="action" value="Don't run I2P on startup" /></div>
    6264 <p><b>Note:</b> If you are running I2P as service right now, removing it will shut
    6365 down your router immediately.  You may want to consider shutting down gracefully, as
    64  above, then running uninstall_i2p_service_winnt.bat.</p><hr>
     66 above, then running uninstall_i2p_service_winnt.bat.</p>
    6567 <% } %>
    6668
     
    7072 please select the following option and review the thread dumped to
    7173 <a href="logs.jsp#servicelogs">wrapper.log</a>.</p>
     74  <hr><div class="formaction">
    7275 <input type="submit" name="action" value="Dump threads" />
    73  <% } %><hr>
     76<% } %></div>
    7477 
    7578 <h3>Launch browser on router startup?</h3>
     
    7881 <a href="http://127.0.0.1:7657/index.jsp">http://127.0.0.1:7657/index.jsp</a> whenever
    7982 the router starts up.</p>
     83 <hr><div class="formaction">
    8084 <input type="submit" name="action" value="View console on startup" />
    8185 <input type="submit" name="action" value="Do not view console on startup" />
    82  </form><hr>
     86</form></div>
    8387</div>
    8488</div>
  • apps/routerconsole/jsp/configstats.jsp

    r70ae99f r55a8002b  
    5757<div class="main" id="main">
    5858 <%@include file="confignav.jsp" %>
    59  
     59
    6060 <jsp:useBean class="net.i2p.router.web.ConfigStatsHandler" id="formhandler" scope="request" />
    6161 <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
     
    7474 <h3>Configure I2P Stat Collection</h3>
    7575 Enable full stats?
    76  <input type="checkbox" name="isFull" value="true" <%
     76 <input type="checkbox" class="optbox" name="isFull" value="true" <%
    7777 if (statshelper.getIsFull()) { %>checked="true" <% } %>/>
    7878 (change requires restart to take effect)<br />
    7979 Stat file: <input type="text" name="filename" value="<%=statshelper.getFilename()%>" /><br />
    8080 Filter: (<a href="javascript: void(null);" onclick="toggleAll('*')">toggle all</a>)<hr />
     81 <div class="wideload">
    8182 <table>
    8283 <% while (statshelper.hasMoreStats()) {
    8384      while (statshelper.groupRequired()) { %>
    84  <tr><td valign="top" align="left" colspan="3">
     85 <tr class="tablefooter"><td align="left" colspan="3">
    8586     <b><%=statshelper.getCurrentGroupName()%></b>
    8687     (<a href="javascript: void(null);" onclick="toggleAll('<%=statshelper.getCurrentGroupName()%>')">toggle all</a>)
    87      </td></tr><tr><td>Log</td><td>Graph</td><td></td></tr><%
     88     </td></tr><tr class="tablefooter"><td align="center"><b>Log</b></td><td align="center"><b>Graph</b></td><td></td></tr><%
    8889     } // end iterating over required groups for the current stat %>
    89  <tr><td valign="top" align="left">
     90 <tr><td align="center">
    9091     <a name="<%=statshelper.getCurrentStatName()%>"></a>
    91      <input id="<%=statshelper.getCurrentGroupName()%>" type="checkbox" name="statList" value="<%=statshelper.getCurrentStatName()%>" <%
     92     <input id="<%=statshelper.getCurrentGroupName()%>" type="checkbox" class="optbox" name="statList" value="<%=statshelper.getCurrentStatName()%>" <%
    9293     if (statshelper.getCurrentIsLogged()) { %>checked="true" <% } %>/></td>
    93      <td valign="top" align="left">
     94     <td align="center">
    9495     <% if (statshelper.getCurrentCanBeGraphed()) { %>
    95        <input id="<%=statshelper.getCurrentGroupName()%>" type="checkbox" name="graphList" value="<%=statshelper.getCurrentGraphName()%>" <%
     96       <input id="<%=statshelper.getCurrentGroupName()%>" type="checkbox" class="optbox" name="graphList" value="<%=statshelper.getCurrentGraphName()%>" <%
    9697       if (statshelper.getCurrentIsGraphed()) { %>checked="true" <% } %>/><% } %></td>
    97      <td valign="top" align="left"><b><%=statshelper.getCurrentStatName()%>:</b><br />
     98     <td align="left"><b><%=statshelper.getCurrentStatName()%>:</b><br />
    9899     <%=statshelper.getCurrentStatDescription()%></td></tr><%
    99100    } // end iterating over all stats %>
    100  <tr><td colspan="3"><hr /></td></tr>
    101  <tr><td><input type="checkbox" name="explicitFilter" /></td>
     101 <tr><td colspan="3"></td></tr>
     102 <tr><td align="center"><input type="checkbox" class="optbox" name="explicitFilter" /></td>
    102103     <td colspan="2">Advanced filter:
    103104     <input type="text" name="explicitFilterValue" value="<%=statshelper.getExplicitFilter()%>" size="40" /></td></tr>
    104  <tr><td colspan="3"><hr /></td></tr>
    105  <tr><td><input type="submit" name="shouldsave" value="Save changes" /> </td>
    106      <td><input type="reset" value="Cancel" /></td><td></td></tr></form>
     105     <tr class="tablefooter"><td colspan="3" align="right"><input type="submit" name="shouldsave" value="Save changes" /><input type="reset" value="Cancel" /></td></tr></form>
    107106 </table>
     107</div>
    108108</div>
    109109</div>
  • apps/routerconsole/jsp/configtunnels.jsp

    r70ae99f r55a8002b  
    1515<div class="main" id="main">
    1616 <%@include file="confignav.jsp" %>
    17  
    1817 <jsp:useBean class="net.i2p.router.web.ConfigTunnelsHandler" id="formhandler" scope="request" />
    1918 <jsp:setProperty name="formhandler" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
     
    3231 Change these settings with care, and adjust them if you have problems.
    3332 </i></p>
    34 
     33 <div class="wideload">
    3534 <form action="configtunnels.jsp" method="POST">
    3635 <% String prev = System.getProperty("net.i2p.router.web.ConfigTunnelsHandler.nonce");
     
    4342 <i>Client tunnel changes are temporary and are not saved.</i><br>
    4443 <i>To make permanent client tunnel changes see the </i><a href="i2ptunnel/index.jsp">i2ptunnel page</a>.<br>
    45  <hr /> <input type="submit" name="shouldsave" value="Save changes" /> <input type="reset" value="Cancel" />
     44 <hr /><div class="formaction"><input type="submit" name="shouldsave" value="Save changes" /> <input type="reset" value="Cancel" /></div>
    4645 </form>
     46</div>
    4747</div>
    4848</div>
  • apps/routerconsole/jsp/configui.jsp

    r70ae99f r55a8002b  
    3535 <input type="hidden" name="action" value="blah" />
    3636 <jsp:getProperty name="uihelper" property="settings" />
    37 <hr>   
     37<hr><div class="formaction">   
    3838<input type="submit" name="shouldsave" value="Apply" /> <input type="reset" value="Cancel" />
    39 </form>
     39</form></div>
    4040<% } else { %>
    4141Theme selection disabled for Internet Explorer, sorry.<hr>If you're not using IE, it's likely that
  • apps/routerconsole/jsp/configupdate.jsp

    r70ae99f r55a8002b  
    2929 <input type="hidden" name="nonce" value="<%=System.getProperty("net.i2p.router.web.ConfigUpdateHandler.nonce")%>" />
    3030      <h3>Check for I2P and news updates</h3>
    31       <table border="0" cellspacing="5">
     31      <div class="wideload"><table border="0" cellspacing="5">
    3232        <tr>
    3333          <td colspan="2"></tr>
    3434        <tr>
    35           <td><b>News:</b></td>
     35          <td class= "mediumtags" align="right"><b>News:</b></td>
    3636          <td> <% if ("true".equals(System.getProperty("net.i2p.router.web.UpdateHandler.updateInProgress", "false"))) { %> <i>Update In Progress</i><br /> <% } else { %> <input type="submit" name="action" value="Check for update now" />
    3737            <% } %></tr>
     
    4040        </tr>
    4141        <tr>
    42           <td><b>News URL:</b></td>
     42          <td class= "mediumtags" align="right"><b>News URL:</b></td>
    4343          <td><input type="text" size="60" name="newsURL" value="<jsp:getProperty name="updatehelper" property="newsURL" />"></td>
    4444        </tr>
    4545        <tr>
    46           <td><b>Refresh frequency:</b>
     46          <td class= "mediumtags" align="right"><b>Refresh frequency:</b>
    4747          <td><jsp:getProperty name="updatehelper" property="refreshFrequencySelectBox" />
    4848        <tr>
    49           <td><b>Update policy:</b>
     49          <td class= "mediumtags" align="right"><b>Update policy:</b>
    5050          <td><jsp:getProperty name="updatehelper" property="updatePolicySelectBox" />
    5151        <tr>
    52           <td><b>Update through the eepProxy?</b>
     52          <td class= "mediumtags" align="right"><b>Update through the eepProxy?</b>
    5353          <td><jsp:getProperty name="updatehelper" property="updateThroughProxy" />
    5454        <tr>
    55           <td><b>eepProxy host:</b>
     55          <td class= "mediumtags" align="right"><b>eepProxy host:</b>
    5656          <td><input type="text" size="10" name="proxyHost" value="<jsp:getProperty name="updatehelper" property="proxyHost" />" />
    5757        <tr>
    58           <td><b>eepProxy port:</b>
     58          <td class= "mediumtags" align="right"><b>eepProxy port:</b>
    5959          <td><input type="text" size="4" name="proxyPort" value="<jsp:getProperty name="updatehelper" property="proxyPort" />" />
    6060        <tr>
    61           <td><b>Update URLs:</b>
     61          <td class= "mediumtags" align="right"><b>Update URLs:</b>
    6262          <td><textarea name="updateURL" wrap="off"><jsp:getProperty name="updatehelper" property="updateURL" /></textarea>
    6363        <tr>
    64           <td><b>Trusted keys:</b>
     64          <td class= "mediumtags" align="right"><b>Trusted keys:</b>
    6565          <td><textarea name="trustedKeys" wrap="off"><jsp:getProperty name="updatehelper" property="trustedKeys" /></textarea>
    6666        <tr>
    67         <tr>
    68           <td colspan="2"><hr />
    69         <tr>
    70         <tr>
    7167          <td>
    72           <td><div align="right">
     68          <td><div class="formaction">
    7369              <input type="submit" name="action" value="Save" />
    7470              <input type="reset" value="Cancel" />
    7571            </div>
    7672      </table>
     73    </div>
    7774 </form>
    7875</div>
  • apps/routerconsole/jsp/css.jsp

    r70ae99f r55a8002b  
    1919<jsp:setProperty name="cssHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
    2020<link href="<%=cssHelper.getTheme(request.getHeader("User-Agent"))%>console.css" rel="stylesheet" type="text/css" />
     21<!--[if IE]><link href="/themes/console/classic/ieshim.css" rel="stylesheet" type="text/css" /><![endif]-->
  • apps/routerconsole/jsp/graphs.jsp

    r70ae99f r55a8002b  
    1212<div class="main" id="main">
    1313 <div class="graphspanel">
     14 <div class="widepanel">       
    1415 <jsp:useBean class="net.i2p.router.web.GraphHelper" id="graphHelper" scope="request" />
    1516 <jsp:setProperty name="graphHelper" property="*" />
     
    1920 <jsp:getProperty name="graphHelper" property="form" />
    2021</div>
     22</div>
    2123</body>
    2224</html>
  • apps/routerconsole/jsp/netdb.jsp

    r70ae99f r55a8002b  
    1111 <h1>I2P Network Database Summary</h1>
    1212<div class="main" id="main">
     13 <div class="wideload">
    1314 <jsp:useBean class="net.i2p.router.web.NetDbHelper" id="netdbHelper" scope="request" />
    1415 <jsp:setProperty name="netdbHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
     
    1920 <jsp:getProperty name="netdbHelper" property="netDbSummary" />
    2021</div>
    21 
     22</div>
    2223</body>
    2324</html>
  • apps/routerconsole/jsp/profiles.jsp

    r70ae99f r55a8002b  
    1010<%@include file="summary.jsp" %>
    1111 <h1>I2P Network Peer Profiles</h1>
    12 <div class="main" id="main">
     12<div class="main" id="main"><div class="wideload">
    1313 <jsp:useBean class="net.i2p.router.web.ProfilesHelper" id="profilesHelper" scope="request" />
    1414 <jsp:setProperty name="profilesHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
     
    1818 <jsp:getProperty name="profilesHelper" property="shitlistSummary" />
    1919</div>
    20 
     20</div>
    2121</body>
    2222</html>
  • apps/routerconsole/jsp/summaryframe.jsp

    r70ae99f r55a8002b  
    6363        out.print("<hr /><p><form action=\"summaryframe.jsp\" method=\"GET\">\n");
    6464        if ("0".equals(d)) {
    65             out.print("<b>Refresh (s):<b> <input size=\"3\" type=\"text\" name=\"refresh\" value=\"60\" />\n");
     65            out.print("<b>Refresh (s):<b> <input size=\"3\" type=\"text\" name=\"refresh\" value=\"60\" align=\"right\" />\n");
    6666            out.print("<button type=\"submit\">Enable</button>\n");
    6767        } else {
  • apps/routerconsole/jsp/summarynoframe.jsp

    r70ae99f r55a8002b  
    2727<% } else { %>
    2828<u><b>I2P Services</b></u><br />
    29 <a href="susimail/susimail" target="blank">Susimail</a>
    30 <a href="susidns/index.jsp" target="_blank">SusiDNS</a>
    31 <a href="i2psnark/" target="_blank">Torrents</a>
     29<a href="susidns/index.jsp" target="_blank">Addressbook</a>
     30<a href="i2psnark/" target="_blank">Torrents</a>
     31<a href="susimail/susimail" target="blank">Webmail</a>
    3232<a href="http://127.0.0.1:7658/" target="_blank">Webserver</a><hr />
    3333<u><b>I2P Internals</b></u><br />
  • apps/susimail/src/src/i2p/susi/webmail/WebMail.java

    r70ae99f r55a8002b  
    15461546                                "<tr><td align=\"right\">Bcc:</td><td align=\"left\"><input type=\"text\" size=\"80\" name=\"" + NEW_BCC + "\" value=\"" + bcc + "\"></td></tr>\n" +
    15471547                                "<tr><td align=\"right\">Subject:</td><td align=\"left\"><input type=\"text\" size=\"80\" name=\"" + NEW_SUBJECT + "\" value=\"" + subject + "\"></td></tr>\n" +
    1548                                 "<tr><td>&nbsp;</td><td align=\"left\"><input type=\"checkbox\" name=\"" + NEW_BCC_TO_SELF + "\" value=\"1\"" + ( bccToSelf.compareToIgnoreCase( "false" ) != 0 ? "checked" : "" )+ ">Bcc to self</td></tr>\n" +
     1548                                "<tr><td>&nbsp;</td><td align=\"left\"><input type=\"checkbox\" class=\"optbox\" name=\"" + NEW_BCC_TO_SELF + "\" value=\"1\"" + ( bccToSelf.compareToIgnoreCase( "false" ) != 0 ? "checked" : "" )+ ">Bcc to self</td></tr>\n" +
    15491549                                "<tr><td colspan=\"2\" align=\"center\"><textarea cols=\"" + Config.getProperty( CONFIG_COMPOSER_COLS, 80 )+ "\" rows=\"" + Config.getProperty( CONFIG_COMPOSER_ROWS, 10 )+ "\" name=\"" + NEW_TEXT + "\">" + text + "</textarea>" +
    15501550                                "<tr><td colspan=\"2\" align=\"center\"><hr></td></tr>\n" +
     
    15591559                                }
    15601560                                Attachment attachment = (Attachment)it.next();
    1561                                 out.println( "<tr><td colspan=\"2\" align=\"center\"><input type=\"checkbox\" name=\"check" + attachment.hashCode() + "\" value=\"1\">&nbsp;" + attachment.getFileName() + "</td></tr>");
     1561                                out.println( "<tr><td colspan=\"2\" align=\"center\"><input type=\"checkbox\" class=\"optbox\" name=\"check" + attachment.hashCode() + "\" value=\"1\">&nbsp;" + attachment.getFileName() + "</td></tr>");
    15621562                        }
    15631563                }
     
    16331633                                        ", invert=" + sessionObject.invert +
    16341634                                        ", clear=" + sessionObject.clear );
    1635                         out.println( "<tr class=\"list" + bg + "\"><td><input type=\"checkbox\" name=\"check" + i + "\" value=\"1\"" +
     1635                        out.println( "<tr class=\"list" + bg + "\"><td><input type=\"checkbox\" class=\"optbox\" name=\"check" + i + "\" value=\"1\"" +
    16361636                                        ( idChecked ? "checked" : "" ) + ">" + ( RELEASE ? "" : "" + i ) + "</td><td>" + link + mail.shortSender + "</a></td><td>&nbsp;</td><td>" + link + mail.shortSubject + "</a></td><td>&nbsp;</td><td>" + mail.formattedDate + "</a></td><td>&nbsp;</td><td>" + mail.size + " Bytes</a></td></tr>" );
    16371637                        bg = 1 - bg;
  • core/java/src/net/i2p/crypto/TransientSessionKeyManager.java

    r70ae99f r55a8002b  
    503503        StringBuilder buf = new StringBuilder(1024);
    504504        buf.append("<h2>Inbound sessions</h2>");
    505         buf.append("<table border=\"1\">");
     505        buf.append("<table>");
    506506        Set<TagSet> inbound = getInboundTagSets();
    507507        Map<SessionKey, Set<TagSet>> inboundSets = new HashMap(inbound.size());
     
    529529        buf.append("<h2><b>Outbound sessions</b></h2>");
    530530
    531         buf.append("<table border=\"1\">");
     531        buf.append("<table>");
    532532        Set<OutboundSession> outbound = getOutboundSessions();
    533533        for (Iterator<OutboundSession> iter = outbound.iterator(); iter.hasNext();) {
  • history.txt

    r70ae99f r55a8002b  
     12009-08-03 dr|z3d
     2    * Extensive update to the Classic theme; custom css hacks for IE.
     3
     42009-08-02 dr|z3d
     5    * Better support for Internet Explorer/classic theme.
     6    * Incremental improvements to classic theme.
     7    * More UI tweaks and fiddles.
     8    * Fixes for I2PSnark UI; more to come.
     9   
     102009-07-31 dr|z3d
     11    * Resolve anomalous buttons and text fields in console ui.
     12    * Enhance presentation of data in /peers.jsp.
     13    * Fix themes issue with horizontal width of radio/checkbox icons.
     14    * Other cosmetic UI enhancements.
     15
    116* 2009-07-31  0.7.6 released
    217
  • installer/resources/themes/console/classic/console.css

    r70ae99f r55a8002b  
     1/* Optimised for less capable browers and system specifications */
     2
    13body {
    2      margin: 1em 0em;
    3      padding: 0em;
     4     margin: 0;
     5     padding: 0;
    46     text-align: left;
    5      background: #FFF;
     7     background: #bbf;
    68     color: #000;
    7      font: 10pt/120% Verdana, Tahoma, Helvetica, sans-serif;
     9/*
     10     font: 10pt/140% Verdana, Tahoma, Helvetica, sans-serif;
     11*/
     12     font: 9pt/140% "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
    813}
    914
     
    1722
    1823pre {
     24     overflow: auto;
     25     font-size: 8pt !important;
    1926     width: 100%;
    20      overflow-x: scroll;
    2127}
    2228
    2329div.logo {
    2430     float: left;
     31     position-relative: top 20px ;
    2532     width: 200px;
    26      left: 1em;
    27      top: 1em;
    28      margin: 0em;
    29      padding: .5em;
     33     margin: 0 0 0 20px;
     34     padding: 10px 5px;
    3035     text-align: center;
     36     border: 5px solid #ddf;
     37     background-color: #eef;
     38     -moz-border-radius: 15px;
     39     -moz-box-shadow: inset 0px 0px 0px 2px #99f;
     40     -khtml-border-radius: 15px;
     41     -khtml-box-shadow: inset 0px 0px 0px 2px #99f;
     42}
     43
     44div.logo hr {
     45     color: #ddf;
     46     background: #ddf;
     47     height: 5px;
     48     border: 0px solid #ddf;
     49     margin: 8px -3px;
     50}
     51
     52div.logo a:link, div.logo a:visited {
     53     text-shadow: 0px 0px 1px rgba(0, 0, 32, 0.5);
     54}
     55
     56div.logo a:active {
     57     text-shadow: 0px 0px 1px rgba(255, 96, 0, 0.7);
     58     color: #f60;
     59}
     60
     61div.logo a:hover {
     62     text-shadow: 0px 0px 1px rgba(128, 0, 0, 0.7);
     63     color: #900;
     64}
     65
     66div.warning a:link {
     67     color: #f60;
     68     text-shadow: 0px 0px 1px rgba(255, 96, 0, 0.5);
     69}
     70
     71div.warning a:visited{
     72     color: #f90;
     73}
     74
     75div.warning a:hover{
     76     color: #d30;
     77  text-shadow: 0px 0px 1px rgba(255, 96, 0, 0.7);
     78}
     79
     80div.warning a:active{
     81     color: #900;
    3182}
    3283
     
    3889
    3990div.routersummaryouter {
    40      float: left;
     91     float: left; 
    4192     width: 200px;
    4293     margin: 0;
    4394     padding: 0;
    4495     border: 0;
    45      clear: left;/* fixes a bug in Opera */
    46      overflow: auto;
     96     clear: left; /* fixes a bug in Opera */
    4797}
    4898
    4999div.routersummary {
    50      background: #fafaff;
    51      width: 175px;
     100     background: #ddf;
     101     width: 190px;
    52102     color: inherit;
    53      margin: 0em;
    54      padding: 5px;
    55      text-align: left;
    56      border: medium solid #efefff;
     103     margin: 0;
     104     padding: 7px 0 0 0px;
     105     text-align: center !important;
     106     border: 5px solid #bbf;
    57107     font-size: 9pt;
    58108     word-wrap: break-word;
     109     font: 9pt/125%;
     110     -moz-box-shadow: inset 0px 0px 0px 1px #99f;
    59111}
    60112
    61113div.routersummary hr {
    62      color: #ccf;
    63      background: #ccf;
     114     color: #bbf;
     115     background: #bbf;
    64116     height: 2px;
    65      border: 0px solid #ccf;
    66      margin: 10px 0;
    67 }
     117     border-bottom: 1px inset #bbf;
     118     margin: 5px 1px 4px 1px;
     119     -moz-box-shadow: inset 0px -1px 0px 1px #99f;
     120}
     121
     122div.routersummary p {
     123     padding: 0;
     124}     
     125
     126div.routersummary a:link, div.routersummary a:visited {
     127     text-shadow: 0px 0px 1px rgba(0, 0, 32, 0.3);
     128}
     129
     130div.routersummary a:hover {
     131     text-shadow: 0px 0px 1px rgba(255, 96, 0, 0.7);
     132     color: #f60;
     133}
     134
     135div.routersummary input[type=text] {
     136     text-align: right !important;
     137}
     138
    68139div.warning {
    69      margin: 0em 1em 1em 224px;
    70      padding: .5em 1em;
    71      background: #ffefef;
    72      border: medium solid #ffafaf;
     140     margin: 20px 20px 10px 260px;
     141     padding: 0px 20px 20px 75px;
     142     background: #ffd;
     143     border: 5px solid #fb7;
    73144     text-align: left;
    74145     color: inherit;
     146     background-image:url("../images/errortriangle.png");
     147     background-position: 17px center;
     148     background-repeat:no-repeat;
     149     -moz-border-radius: 15px;
     150     -moz-box-shadow: inset 0px 0px 0px 2px #f60;
     151     -kthml-border-radius: 15px;
     152     -khtml-box-shadow: inset 0px 0px 0px 2px #f60;
     153}
     154
     155div.warning hr {
     156     color: #fb7;
     157     background: #fb7;
     158     height: 5px;
     159     border: 0px solid #fb7;
     160     margin: 5px 0;
     161     margin: 20px 0;
     162}
     163
     164div.warning h3 {
     165     border-bottom: 5px solid #fb7;
     166     padding-bottom: 10px;
    75167}
    76168
    77169div.main {
    78      margin: 0em 1em 1em 224px;
    79      padding: .5em 1em;
    80      background: #ffffef;
    81      border: medium solid #ffffd0;
     170     margin: 0px 0px 0px 195px;
     171     padding: 15px 15px 15px 15px;
     172     background: #eef;
     173     border: 5px solid #bbf;
     174     border-top: 0;
    82175     text-align: left;
    83      color: inherit;
     176     color: #001;
     177     min-width: 570px;
     178     -moz-box-shadow: inset 0px 0px 0px 1px #99f;
     179}
     180
     181div.main li {
     182     padding-bottom: 10px;
     183     list-style: square;
     184}
     185
     186div.main li:first-child {
     187     padding-top: 20px;
    84188}
    85189
    86190div.main textarea {
    87      width: 100% !important;
     191     width: 98% !important;
     192     margin: 2px 0 2px 5px;
    88193}
    89194
    90195div.news {
    91      margin: 0em 1em 1em 224px;
    92      padding: .5em 1em;
     196     margin: -5px 0px 0 195px;
     197     padding: -10px 15px 8px 15px;
    93198     background: #ffffc0;
    94      border: medium solid #ffffa0;
     199     border: 5px solid #bbf;
    95200     text-align: justify;
    96201     color: inherit;
     202     min-width: 600px;
     203     padding-bottom: 8px;
     204     padding-left: 10px;
     205     padding-right: 10px;
     206     -moz-box-shadow: inset 0px 0px 0px 1px #99f;
     207}
     208
     209/* convert the list entry to our title */
     210
     211div.news li {
     212     text-align: justify;
     213     list-style: none;
     214     margin: -15px 15px -20px -20px;
     215     padding: 0px 0 15px 0;
     216     border-bottom: 2px solid #cc7;
     217     border-top: 0px solid #cc7;     
     218     padding: 3px 5px 5px 5px;
     219     font-size: 12pt;
     220     color: #540;
     221}
     222
     223div.news p {
     224     color: #330;
     225}
     226div.news a:link {
     227     color: #773;
     228     text-shadow: 0px 0px 1px rgba(128, 128, 48, 0.3);
     229}
     230
     231div.news a:visited {
     232     color: #f00 !important;
     233     text-shadow: 0px 0px 1px rgba(128, 128, 48, 0.3);
     234}
     235
     236div.news hr {
     237     color: #cc7;
     238     background: #cc7;
     239     height: 2px;
     240     border: 0px solid #cc7;
     241     margin: 5px 0;
    97242}
    98243
    99244div.confignav {
    100      padding: 1em;
    101      background: #efefff;
     245     padding: 12px 0 15px 0;
     246     background: #cfc;
     247     margin: -20px -20px 0 -20px;
     248     border: 5px solid #bbf;
     249     -moz-box-shadow: inset 0px 0px 0px 1px #99f;
    102250}
    103251
    104252div.configure {
    105      padding: 1em;
    106      background: #ffffc0;
     253     margin: 1px -20px 0 -20px;
     254     padding: 0px 20px 0px 20px;
     255}
     256
     257div.configure table {
     258     font-size: 9pt;
     259     font-weight: bold;
     260     -moz-box-shadow: inset 0px 0px 1px 1px #001;
     261}
     262
     263div.configure tr, div.configure td {
     264     padding: 10px 2px;
     265}
     266
     267div.configure tr {
     268     -moz-box-shadow: inset 0px 0px 1px 0px #bbf;
    107269}
    108270
    109271div.messages {
    110      padding: 1em;
    111      background: #fafaff;
     272     padding: 0px 10px;
     273     background: #fff;
     274     border: 5px solid #bbf;
     275     border-right: 0;
     276     margin: -5px -15px 10px -20px;
     277     text-align: center;
     278     font-size: 9pt;
     279     font-weight: bold;
     280     color: #474;
     281     -moz-box-shadow: inset 0px 0px 0px 1px #99f;
     282}
     283
     284div.messages li, div.messages ul {
     285     padding: 15px 0 5px 5px;
     286     margin: -15px 0 0 0;
    112287}
    113288
     
    122297h1 {
    123298     font-size: 18pt;
     299     text-shadow: 0px 0px 1px rgba(0, 0, 32, 0.7);
    124300     text-align: center;
     301     border: 5px solid #bbf;
     302     padding: 13px 10px 12px 10px;
     303     margin: 0 0px 0 195px;
     304     line-height: 93%;
     305     text-transform: uppercase;
     306     letter-spacing: 0.3em;
     307     background: #fff;
     308     min-width: 600px;
     309     -moz-box-shadow: inset 0px 0px 0px 1px #99f;
    125310}
    126311
    127312h2 {
     313     font-size: 14pt;
     314     padding: 10px;
     315     border-bottom: 5px solid #bbf;
     316     border-top: 0px solid #bbf;
     317     letter-spacing: 0.04em;
     318}
     319
     320h3 {
    128321     font-size: 12pt;
    129 }
    130 
    131 h3 {
    132      font-size: 10pt;
    133 }
     322     padding: 0 10px 10px 10px;
     323     border-bottom: 5px solid #bbf;
     324     border-top: 0px solid #bbf;
     325     letter-spacing: 0.04em;
     326}
     327
    134328.proxyfooter{
    135329     font-size: 7pt;
     
    137331}
    138332
    139 
    140333table {
    141 /*     border-collapse: collapse; */
    142      border: 5px solid #dfd;
     334     border-collapse: collapse;
     335     border: 5px solid #bbf;
    143336     margin: 5px 0px;
    144337     cell-padding: 1px;
    145338     font-size: 7pt;
    146339     background: #fff;
    147 }
    148 
     340     width: 100%;
     341}
     342
     343table hr {
     344     padding: 0px 0;
     345     color: #bbf;
     346     background: #bbf;
     347     border: 0px solid #bbf;
     348     margin: 0px -5px;
     349     height: 1px;
     350}
     351
     352table tt {
     353     font-size: 7.5pt;
     354}
    149355
    150356th {
    151      background-color: #ccf;
    152      padding: 5px 2px;
     357     background-color: #fff;
     358     padding: 8px 2px;
     359     text-align: center;
     360     border-bottom: 1px solid #88f;
    153361}
    154362
     
    157365}
    158366
     367tt, pre {
     368     font: 8pt "Lucida Console", "DejaVu Sans Mono", Courier, mono;
     369}
     370     
    159371td {
    160      padding: 2px;
     372     padding: 4px;
    161373}
    162374
     
    170382
    171383hr {
    172      color: #ff9;
    173      background: #ff9;
    174      height: 2px;
    175      border: 0px solid #ff9;
    176      margin: 10px 0;
     384     color: #bbf;
     385     background: #bbf;
     386     height: 5px;
     387     border: 0px solid #bbf;
     388     margin: 5px 0;
    177389}
    178390
     
    182394     color: #001;
    183395     text-align: center;
    184      margin: -3px 0 0 0;
    185      background: #fff;
    186  }
     396     margin: -7px 0 7px 0;
     397     background: #bbf;
     398     border: 5px solid #bbf;
     399     border-top: 0;
     400     padding: 4px 0 2px 0;
     401}
     402 
     403input {
     404     margin: 3px 5px 3px 0;
     405     vertical-align: middle;
     406}
     407
     408input[type=text] {
     409     margin: 3px 5px 3px 5px;
     410     vertical-align: middle;
     411}
     412select {
     413     margin: 3px 5px 3px 5px;
     414     vertical-align: middle;
     415}
     416
     417submit {
     418     margin: 3px 5px 3px 5px;
     419     padding 2px 0;
     420     font: 8pt/140% "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
     421}
     422
     423p {
     424     padding: 5px 20px 0px 20px;
     425     text-align: justify;
     426}
     427
     428.formaction {
     429     text-align: right;
     430}
     431
     432.langbox {
     433     margin: 29px -15px 0px 5px;
     434     color: #001;
     435     font-size: 7pt;
     436     width: 180px;
     437     text-align: center;
     438     float: right;
     439     valign: middle;
     440}
     441
     442.langbox img {
     443     padding: 0 2px; /* Ignored by IE8 */
     444}
     445
     446a:link{
     447     color: #006;
     448     text-decoration: none;
     449     font-weight: bold;
     450     word-wrap: break-word;
     451}
     452
     453a:visited{
     454     color: #448;
     455     text-decoration: none;
     456     font-weight: bold;
     457}
     458
     459a:hover{
     460     color: #f60;
     461     text-decoration: underline;
     462     font-weight: bold;
     463}
     464
     465a:active{
     466     color: #f93;
     467     text-decoration: underline;
     468     font-weight: bold;
     469}
     470
     471pre {
     472     font-size: 9pt;
     473     margin: 0px 20px;
     474}
     475
     476tt {
     477     font-size: 9pt;
     478     font-weight: bold;
     479     color: darkgreen;
     480}
     481
     482.tablefooter {
     483     border: 1px solid #88f;
     484}
     485
     486.tablefooter tr, .tablefooter td {
     487     background: #bbf;
     488     font-size: 8pt;
     489     font-weight: bold;
     490     line-height: 150%;
     491     word-wrap: nowrap;
     492     padding: 8px 1px;
     493}
     494
     495.tidylist {
     496     text-align: justify;
     497     padding-right: 30px;
     498}
     499
     500div.graphspanel {
     501     padding: 20px 10px;
     502     margin: -20px;
     503     background: #ddf url('images/lightbluetile.png');
     504     -moz-border-radius: 4px;
     505     -khtml-border-radius: 4px;
     506     border-radius: 4px;
     507     border: 5px solid #bbf;
     508     -moz-box-shadow: inset 0px 0px 1px 0px #002;
     509     text-align: center !important;   
     510}
     511
     512div.graphspanel img {
     513     border: 1px solid #99f;
     514     padding: 2px;
     515     margin: 6px;
     516     background: #ddf;
     517     -moz-box-shadow: inset 0px 0px 1px 1px #99f;
     518}
     519
     520div.graphspanel img:hover {
     521     border: 1px solid #003;
     522     padding: 2px;
     523     margin: 6px;
     524     text-align: center !important;
     525     background: #001;
     526     -moz-box-shadow: inset 0px 0px 2px 1px #f60;
     527}
     528
     529div.graphspanel hr {
     530     margin: 20px 0;
     531}
     532
     533div.graphspanel form {
     534     text-align: left;
     535     margin: 0 20px;
     536}
     537
     538div.graphspanel h3 {
     539     text-align: left;
     540}
  • installer/resources/themes/console/dark/console.css

    r70ae99f r55a8002b  
    6666
    6767div.toolbar a:hover, button:hover{
    68      border: 1px solid #eeeeff;
     68     border: 1px solid #f60;
    6969     background: #003;
    7070     color: #f60;
     
    9090     padding: 10px;
    9191     text-align: center;
    92      border: 1px solid #9999ff;
     92     border: 1px solid #99f;
    9393     background: #003;
    9494     background: url(images/darkbluebg.png);
     
    101101     float: left;
    102102     -moz-box-shadow: inset 0px 0px 1px 0px #eef;
     103}
     104
     105div.routersummary input[type=text] {
     106     text-align: right !important;
     107     -moz-box-shadow: inset 1px 1px 1px 0px #000;
     108}
     109
     110div.routersummary hr {
     111     color: #99f;
     112     background: #99f;
     113     height: 1px;
     114     border-bottom: 1px outset #bbf;
     115     margin: 5px -10px 4px -10px;
     116}
     117
     118div.routersummary hr {
     119     color: #bbf;
     120     background: #bbf;
     121     height: 2px;
     122     border-bottom: 1px outset #bbf;
     123     margin: 8px -10px 7px -10px;
     124     -moz-box-shadow: inset 0px -4px 2px 1px #001;
    103125}
    104126
     
    255277}
    256278
     279table hr {
     280     padding: 0px 0;
     281     color: #99f;
     282     background: #99f;
     283     border: 0px solid #99f;
     284     margin: 0px 0px;
     285     height: 1px;
     286     display: none;
     287}
     288
    257289th {
    258      padding: 6px 3px;
     290     padding: 6px 2px;
    259291     color: #eef;
    260292     text-align: center;
    261      font-size: 8pt;
     293     font-size: 9pt;
    262294     background: #004 url('images/tabletitledark.png') repeat-x;
    263295     border-top: 1px solid #99f;
    264      border-bottom: 1px solid #99f;     
     296     border-bottom: 1px solid #99f !important;     
     297     line-height: 110%;
    265298}
    266299
     
    286319*/
    287320td {
    288      padding: 6px 4px;
     321     padding: 6px 3px;
    289322     color: #eef;
    290323     vertical-align: middle;
     
    392425     text-shadow: 0px 0px 1px rgba(255, 255, 255, 0.5);
    393426     letter-spacing: 0.05em;
    394      background: #003 url('images/darkbluebg.png');
     427     background: #003 url('images/titletile.png');
    395428     padding: 5px 10px 8px 10px;
    396429     wordwrap: none;
     
    435468}
    436469
    437 button {
    438      border: 1px outset #ddddc0;
     470button, button:visited {
     471     font: bold 9pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
     472     border: 1px outset #77f;
    439473     padding: 1px 3px;
    440474     background: #bbf;
     
    449483     vertical-align: middle;
    450484     min-width: 76px;
    451 }
    452 
     485     -moz-box-shadow: inset 0px 1px 1px 0px #55f;
     486     background: #003;
     487     color: #99f;
     488}
     489
     490button:hover {
     491     border: 1px solid #f60;
     492     -moz-box-shadow: inset 0px 1px 1px 0px #eef;
     493     background: #001;
     494     color: #f60;
     495}     
     496         
    453497button:active {
    454498     border: 1px inset #f60;
    455499     background: #f60;
    456500     color: #fff;
     501     -moz-box-shadow: inset 0px 0px 0px 0px #f60;
    457502}
    458503
     
    487532
    488533input {
    489      background: #bbf;
    490      color: #002;
     534     border: 1px outset #55f;
     535     -moz-box-shadow: inset 0px 1px 1px 0px #55f;
     536     background: #003;
     537     color: #99f;
    491538     margin: 5px;
    492      font: bold 9pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
    493      border: 1px solid #99f;
     539     font: bold 8pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
    494540     padding: 1px 2px;
    495541     text-decoration: none;
    496542     min-width: 110px;
    497      opacity: 0.8;
     543     border-radius: 4px;
     544     -moz-border-radius: 4px;
     545     -khtml-border-radius: 4px;
    498546}
    499547
    500548input:hover {
    501      background: #eef;
    502      color: #001;
     549     background: #001;
     550     color: #f60;
    503551     border: 1px solid #f60;
     552     -moz-box-shadow: inset 0px 1px 1px 0px #eef;
    504553}
    505554
    506555input:active {
    507556     background: #002;
     557     color: #f30;
     558     border: 1px solid #f30;
     559}
     560
     561input:active {
     562     border: 1px inset #f60;
     563     background: #f60;
    508564     color: #fff;
    509      border: 1px solid #f60;
     565}
     566
     567input[type=text] {
     568     background: #002;
     569     color: #eef;
     570     margin: 5px 10px;
     571     padding: 4px 2px;
     572     font: bold 8pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
     573     border: 1px solid #bbf;
     574     text-decoration: none;
     575     border-radius: 4px;
     576     -moz-border-radius: 4px;
     577     -khtml-border-radius: 4px;
     578     -moz-box-shadow: inset 1px 1px 1px 0px #000;
     579}
     580
     581input[type=text]:active, input[type=text]:hover {
     582     background: #001;
     583}
     584
     585fieldset {
     586overflow: hidden;
     587position: relative;
    510588}
    511589
     
    513591     background: #002;
    514592     color: #eef;
    515      margin: 5px;
    516      border: 1px solid #99f;
    517      border-radius: 0;
    518      -moz-border-radius: 0;
    519      -khtml-border-radius: 0;
     593     margin: 5px 10px;
     594     border: 1px solid #bbf;
     595     border-radius: 4px;
     596     -moz-border-radius: 4px;
     597     -khtml-border-radius: 4px;
    520598     min-width: 110px;
    521599     font: 9pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
     
    527605     color: #eef;
    528606     padding: 5px;
    529      margin: 15px 15px 5px 0px;
     607     margin: 10px;
    530608     border-radius: 4px;
    531609     -moz-border-radius: 4px;
     
    533611     font: 9pt "Lucida Console", "DejaVu Sans Mono", Courier, mono;
    534612     min-height: 100px;
    535      min-width: 100%;
     613     min-width: 97%;
    536614     text-align: left;
    537615     border: 1px solid #99f;
     
    598676     font-size: 9pt;
    599677}
     678
     679.optbox {
     680     min-width: 16px !important;
     681     max-width: 16px !important;     
     682     width: 16px !important;
     683     min-height: 16px;
     684     max-height: 16px;     
     685     height: 16px;
     686     opacity: 1.0;
     687     border: 0;
     688     margin: 5px 5px 5px 10px;
     689     padding: 2px;
     690overflow: hidden;
     691position: relative;
     692}
     693
     694.optbox:hover {
     695     min-width: 16px !important;
     696     max-width: 16px !important;     
     697     width: 16px !important;
     698     min-height: 16px;
     699     max-height: 16px;     
     700     height: 16px;
     701     opacity: 1.0;
     702     border: 0;
     703     margin: 5px 5px 5px 10px;
     704     padding: 2px;
     705}
     706
     707.cells {
     708     border: 1px inset #005;
     709     border-left: 1px outset #002;     
     710}
     711
     712.tablefooter tr, .tablefooter td {
     713     background: #004 url('images/tabletitledark.png') repeat-x !important;
     714     border-top: 1px solid #99f;
     715     border-bottom: 1px solid #99f !important;     
     716     font-size: 7pt;
     717     line-height: 110%;
     718}
     719
     720.formaction {
     721     text-align: right;
     722}
  • installer/resources/themes/console/light/console.css

    r70ae99f r55a8002b  
    2020pre {
    2121     width: 98%;
    22      overflow-x: scroll;
     22     overflow: auto;
    2323     text-align: left;
    2424     font: 8pt "Lucida Console", "DejaVu Sans Mono", Courier, mono;
     
    106106}
    107107
     108div.routersummary input[type=text] {
     109     text-align: right !important;
     110}
     111
     112div.routersummary hr {
     113     color: #eef;
     114     background: #eef;
     115     height: 2px;
     116     border-bottom: 1px solid #eef;
     117     margin: 8px -10px 7px -10px;
     118     -moz-box-shadow: inset 0px 1px 1px 1px #001;
     119}
     120
    108121div.warning {
    109122     margin: 5px 20px 10px 240px;
     
    131144     color: #001;
    132145     width: auto;
    133 /*  overflow-x: scroll; */
    134146}
    135147
     
    228240     border: 1px solid #000022;
    229241     -moz-box-shadow: inset 0px 0px 1px 0px #002;
     242     min-width: 400px;
    230243}
    231244
     
    239252     border: 1px solid #000022;
    240253     -moz-box-shadow: inset 0px 0px 1px 0px #002;
    241 }
    242 
     254     text-align: center !important;
     255}
    243256
    244257div.graphspanel img {
     
    249262     background: #001;
    250263     -moz-box-shadow: inset 0px 0px 1px 1px #99f;
    251      opacity: 0.9;
     264     opacity: 0.8;
    252265}
    253266
     
    262275}
    263276
     277div.graphspanel form {
     278     text-align: left;
     279}
     280
    264281div.messages {
    265282     padding: 10px;
     
    300317     font-size: 7pt;
    301318     background: #b4c8ff url('images/tabletitlelight.png') repeat-x;
     319     font: 7pt/130% "Lucida Sans Unicode", Verdana, Bitstream Vera Sans", Tahoma, Helvetica, sans-serif;
     320}
     321
     322table hr {
     323     padding: 0px 0;
     324     color: #99f;
     325     background: #99f;
     326     border: 0px solid #99f;
     327     margin: 0px 0px;
     328     height: 1px;
     329     display: none;
    302330}
    303331
     
    308336     text-align: center;
    309337     font-size: 9pt;
    310      border-bottom: 1px solid #001;
    311      border-top: 1px solid #001;
     338     line-height: 110%;
     339     border-bottom: 1px solid #001 !important;
     340     border-top: 1px solid #001 !important;
    312341}
    313342
     
    332361*/
    333362td {
    334      padding: 5px;
     363     padding: 5px 3px;
    335364     color: #000;
    336365     vertical-align: middle;
     
    433462     color: #001;
    434463     letter-spacing: 0.05em;
    435      background: #ddf url('images/lightbluetile.png');
     464     background: #ddf url('images/titletile.png');
    436465     text-shadow: 0px 0px 1px rgba(0, 0, 64, 0.5);
    437466     padding: 7px 10px;
     
    474503}
    475504
    476 button {
    477      border: 1px outset #ddddc0;
     505button, button:visited {
     506     font: bold 9pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
     507     border: 1px outset #999;
    478508     padding: 1px 3px;
    479      background: #bbf !important;
     509     background: #ddf !important;
    480510     text-decoration: none;
    481511     border-radius: 4px;
     
    487517     text-align: center;
    488518     min-width: 80px;
     519     -moz-box-shadow: inset 0px 2px 8px 0px #fff;
     520     color: #006;
    489521}
    490522
     
    493525     background: #f60 !important;
    494526     color: #fff;
     527     -moz-box-shadow: inset 0px 0px 0px 1px #fff;
    495528}
    496529
     
    499532     background: #001 !important;
    500533     color: #f60;
     534     -moz-box-shadow: inset 0px 0px 0px 1px #f60;
    501535}
    502536
     
    527561     text-decoration: none;
    528562     min-width: 110px;
    529      opacity: 0.8;
    530 }
     563}
     564
     565input, input:visited {
     566     border: 1px outset #999;
     567     background: #ddf;
     568     color: #001;
     569     margin: 5px;
     570     font: bold 8pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
     571     padding: 1px 2px;
     572     text-decoration: none;
     573     min-width: 110px;
     574     border-radius: 4px;
     575     -moz-border-radius: 4px;
     576     -khtml-border-radius: 4px;
     577     -moz-box-shadow: inset 0px 2px 8px 0px #fff;
     578     color: #006;
     579     opacity: 0.9;
     580}
     581
    531582
    532583input:hover {
     
    534585     color: #fff;
    535586     border: 1px solid #f60;
    536      opacity: 0.9;
     587     opacity: 1.0;
     588     -moz-box-shadow: inset 0px 0px 0px 1px #fff;
     589
    537590}
    538591
     
    542595     border: 1px solid #f60;
    543596     opacity: 1.0;
     597     -moz-box-shadow: inset 0px 0px 0px 1px #f60;
     598}
     599
     600input[type=text] {
     601     background: #eef;
     602     color: #001;
     603     margin: 5px 10px 5px 10px;
     604     padding: 4px 2px;
     605     font: bold 8pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
     606     border: 1px solid #001;
     607     text-decoration: none;
    544608}
    545609
     
    567631     min-width: 110px;
    568632     font: 9pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
     633     border-radius: 4px;
     634     -moz-border-radius: 4px;
     635     -khtml-border-radius: 4px;
     636     text-align: left !important;
    569637}
    570638
    571639textarea {
    572640     padding: 5px;
    573      margin: 15px 15px 5px 0px;
     641     margin: 5px 15px 5px 10px;
    574642     background: #eef;
    575643     color: #003;
     
    579647     font: 8pt "Lucida Console", "DejaVu Sans Mono", Courier, mono;
    580648     min-height: 100px;
    581      min-width: 100%;
     649     min-width: 97%;
    582650     border: 1px solid #001;
    583651}
     
    623691     text-align: justify;
    624692     -moz-box-shadow: inset 0px 0px 1px 0px #002;
    625      overflow-x: scroll;
     693     overflow: auto;
    626694 }
    627695 
     
    643711     font-weight: bold;
    644712}
     713
     714.optbox {
     715     min-width: 16px !important;
     716     max-width: 16px !important;     
     717     width: 16px !important;
     718     min-height: 16px;
     719     max-height: 16px;     
     720     height: 16px;
     721     opacity: 1.0;
     722     border: 0;
     723     margin: 5px 5px 5px 10px;
     724     padding: 2px;
     725}
     726
     727.optbox:hover {
     728     min-width: 16px !important;
     729     max-width: 16px !important;     
     730     width: 16px !important;
     731     min-height: 16px;
     732     max-height: 16px;     
     733     height: 16px;
     734     opacity: 1.0;
     735     border: 0;
     736     margin: 5px 5px 5px 10px;
     737     padding: 2px;
     738}
     739
     740.cells {
     741     border-left: 1px outset #bbf;
     742     border-top: 1px inset #99f !important;
     743     border-bottom: 1px inset #99f !important;
     744}
     745
     746.tablefooter {
     747     background: #b4c8ff url('images/tabletitlelight.png') repeat-x;
     748}
     749
     750.tablefooter tr, .tablefooter td {
     751     background: #b4c8ff url('images/tabletitlelight.png') repeat-x;
     752     border-top: 1px solid #001;
     753     border-bottom: 1px solid #001 !important;     
     754     padding: 8px 2px !important;
     755     font-size: 7pt;
     756     line-height: 110%;
     757}
     758
     759.formaction {
     760     text-align: right;
     761}
  • installer/resources/themes/console/snark.css

    r70ae99f r55a8002b  
    5757  font-weight: bold;
    5858  text-align: left;
    59   margin: 0 0 15px 0;
    60   padding: 0px;
     59  margin: 0 0px 10px 0px;
     60  padding: 0;
    6161  border-spacing: 0px;
    6262  -moz-border-radius: 4px 0 0 0;
     
    6464  border-radius: 4px;
    6565  border: 2px solid #930;
    66   text-align: center;
    67   overflow-x: scroll;           
    68   background: #ddf url('../console/images/orangetile.png');
     66  text-align: left;
     67  overflow: auto;           
     68  background: #f40 url('../console/images/orangetile.png');
    6969  color: #531;
    7070  height: 64px;
     71  width: auto;
    7172}
    7273
     
    8687        border-width: 0px;
    8788        border-spacing: 0px;
     89  border-collapse: collapse;
    8890}
    8991
     
    9395  border-top: 1px outset #001;
    9496  border-bottom: 1px inset #001; 
    95   background: #f91 url('/themes/console/images/tabletitleorange.png') repeat-x;
    96   text-align: left;
     97  background: #f60 url('/themes/console/images/tabletitleorange.png') repeat-x;
     98  text-align: right;
     99  whitespace: nowrap;
    97100}
    98101
     
    105108td {
    106109        padding: 5px;
    107   text-align: left;
     110  text-align: right;
    108111}
    109112.snarkTorrentEven {
     
    135138        background-color: #fff;
    136139        color:#310;
    137   min-width: 700px !important;
    138   max-width: 800px !important;
     140  min-width: 800px !important;
     141/*  max-width: 800px !important; */
    139142  margin: 20px;
    140143  padding: 10px 20px 5px 20px;
     
    174177
    175178a:link{
    176   color: #830;
     179  color: #930;
    177180  text-decoration: none;
    178181  font-weight: bold;
     
    187190
    188191a:hover{
    189   color: #f60;
     192  color: #900;
    190193  font-weight: bold;
    191194}
  • readme.html

    r70ae99f r55a8002b  
    3636      There are many more eepsites - just follow the links from the ones you see,
    3737      bookmark your favorites, and visit them often!
    38     </ul>
     38    </ul></ul>
    3939    <br />
    4040    <br />
  • router/java/src/net/i2p/router/Blocklist.java

    r70ae99f r55a8002b  
    768768        }
    769769        if (_blocklistSize > 0) {
    770             out.write("<table><tr><td align=center colspan=2><b>IPs from Blocklist File</b></td></tr><tr><td align=center><b>From</b></td><td align=center><b>To</b></td></tr>");
     770            out.write("<table><tr><th align=center colspan=2><b>IPs from Blocklist File</b></th></tr><tr><td align=center width=50%><b>From:</b></td><td align=center width=50%><b>To:</b></td></tr>");
    771771            for (int i = 0; i < _blocklistSize; i++) {
    772772                 int from = getFrom(_blocklist[i]);
    773                  out.write("<tr><td align=right>"); out.write(toStr(from)); out.write("</td><td align=right>");
     773                 out.write("<tr><td align=center width=50%>"); out.write(toStr(from)); out.write("</td><td align=center width=50%>");
    774774                 int to = getTo(_blocklist[i]);
    775775                 if (to != from) {
     
    780780            out.write("</table>");
    781781        } else {
    782             out.write("<br>No blocklist file entries");
     782            out.write("<br><i>No blocklist file entries.</i>");
    783783        }
    784784        out.flush();
  • router/java/src/net/i2p/router/JobQueue.java

    r70ae99f r55a8002b  
    608608       
    609609        StringBuilder buf = new StringBuilder(32*1024);
    610         buf.append("<b><div class=\"joblog\"><h3>I2P JobQueue</h3># runners: ").append(numRunners).append(" [states=");
     610        buf.append("<b><div class=\"joblog\"><h3>I2P JobQueue</h3><div class=\"wideload\"># runners: ").append(numRunners).append(" [states=");
    611611        if (states != null)
    612612            for (int i = 0; i < states.length; i++)
     
    668668    /** render the HTML for the job stats */
    669669    private void getJobStats(StringBuilder buf) {
    670         buf.append("<table border=\"1\">\n");
     670        buf.append("<table>\n");
    671671        buf.append("<tr><th>Job</th><th>Runs</th>");
    672672        buf.append("<th>Time</th><th><i>Avg</i></th><th><i>Max</i></th><th><i>Min</i></th>");
     
    735735        buf.append("</tr>\n");
    736736       
    737         buf.append("</table>\n");
     737        buf.append("</table></div>\n");
    738738    }
    739739}
  • router/java/src/net/i2p/router/PersistentKeyRing.java

    r70ae99f r55a8002b  
    6868    public void renderStatusHTML(Writer out) throws IOException {
    6969        StringBuilder buf = new StringBuilder(1024);
    70         buf.append("\n<table border=\"1\"><tr><th align=\"left\">Destination Hash<th align=\"left\">Name or Dest.<th align=\"left\">Session Key</tr>");
     70        buf.append("\n<table><tr><th align=\"left\">Destination Hash<th align=\"left\">Name or Dest.<th align=\"left\">Session Key</tr>");
    7171        for (Entry<Hash, SessionKey> e : entrySet()) {
    7272            buf.append("\n<tr><td>");
  • router/java/src/net/i2p/router/Router.java

    r70ae99f r55a8002b  
    760760        buf.append("\n<hr /><a name=\"logs\"> </a>\n");
    761761        List msgs = _context.logManager().getBuffer().getMostRecentMessages();
    762         buf.append("\n<h2>Most recent console messages:</h2><table border=\"1\">\n");
     762        buf.append("\n<h2>Most recent console messages:</h2><table>\n");
    763763        for (Iterator iter = msgs.iterator(); iter.hasNext(); ) {
    764764            String msg = (String)iter.next();
  • router/java/src/net/i2p/router/RouterVersion.java

    r70ae99f r55a8002b  
    1919    public final static String ID = "Monotone";
    2020    public final static String VERSION = CoreVersion.VERSION;
    21     public final static long BUILD = 0;
     21    public final static long BUILD = 07;
    2222    /** for example "-test" */
    2323    public final static String EXTRA = "";
  • router/java/src/net/i2p/router/peermanager/ProfileOrganizerRenderer.java

    r70ae99f r55a8002b  
    219219        buf.append("</table>");
    220220
    221         buf.append("<p><i>Definitions:<ul>");
     221        buf.append("<h3>Thresholds:</h3>");
     222        buf.append("<b>Speed:</b> ").append(num(_organizer.getSpeedThreshold())).append(" (").append(fast).append(" fast peers)<br />");
     223        buf.append("<b>Capacity:</b> ").append(num(_organizer.getCapacityThreshold())).append(" (").append(reliable).append(" high capacity peers)<br />");
     224        buf.append("<b>Integration:</b> ").append(num(_organizer.getIntegrationThreshold())).append(" (").append(integrated).append(" well integrated peers)");
     225        buf.append("<h3>Definitions:</h3><ul>");
    222226        buf.append("<li><b>groups</b>: as determined by the profile organizer</li>");
    223227        buf.append("<li><b>caps</b>: capabilities in the netDb, not used to determine profiles</li>");
     
    227231        buf.append("<li><b>failing?</b>: is the peer currently swamped (and if possible we should avoid nagging them)?</li>");
    228232        buf.append("</ul></i>");
    229         buf.append("<p><b>Thresholds:</b><br />");
    230         buf.append("<b>Speed:</b> ").append(num(_organizer.getSpeedThreshold())).append(" (").append(fast).append(" fast peers)<br />");
    231         buf.append("<b>Capacity:</b> ").append(num(_organizer.getCapacityThreshold())).append(" (").append(reliable).append(" high capacity peers)<br />");
    232         buf.append("<b>Integration:</b> ").append(num(_organizer.getIntegrationThreshold())).append(" (").append(integrated).append(" well integrated peers)<br />");
    233233        out.write(buf.toString());
    234234        out.flush();
  • router/java/src/net/i2p/router/transport/FIFOBandwidthLimiter.java

    r70ae99f r55a8002b  
    620620        long now = now();
    621621        StringBuilder buf = new StringBuilder(4096);
    622         buf.append("<p><b id=\"bwlim\">Limiter Status:</b><br />").append(getStatus().toString()).append("</p>\n");
    623         buf.append("<p><b>Pending bandwidth requests:</b><ul>");
     622        buf.append("<h3><b id=\"bwlim\">Limiter Status:</b></h3>").append(getStatus().toString()).append("\n");
     623        buf.append("<h3>Pending bandwidth requests:</h3><ul>");
    624624        buf.append("<li>Inbound requests: <ol>");
    625625        synchronized (_pendingInboundRequests) {
     
    644644            }
    645645        }
    646         buf.append("</ol></li></ul></p>\n");
     646        buf.append("</ol></li></ul></p><hr>\n");
    647647        out.write(buf.toString());
    648648        out.flush();
  • router/java/src/net/i2p/router/transport/TransportManager.java

    r70ae99f r55a8002b  
    493493        }
    494494        StringBuilder buf = new StringBuilder(4*1024);
    495         buf.append("<p><b>Router Transport Addresses:</b><br /><pre>\n");
     495        buf.append("<h3>Router Transport Addresses:</h3><pre>\n");
    496496        for (int i = 0; i < _transports.size(); i++) {
    497497            Transport t = (Transport)_transports.get(i);
  • router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java

    r70ae99f r55a8002b  
    640640
    641641        StringBuilder buf = new StringBuilder(512);
    642         buf.append("<p><b id=\"ntcpcon\">NTCP connections: ").append(peers.size());
    643         buf.append(" limit: ").append(getMaxConnections());
    644         buf.append(" timeout: ").append(DataHelper.formatDuration(_pumper.getIdleTimeout()));
    645         buf.append("</b><br />\n");
    646         buf.append("<table>\n");
     642        buf.append("<p><b id=\"ntcpcon\"><h3>NTCP connections: ").append(peers.size());
     643        buf.append(". Limit: ").append(getMaxConnections());
     644        buf.append(". Timeout: ").append(DataHelper.formatDuration(_pumper.getIdleTimeout()));
     645        buf.append(".</b></h3>\n");
     646        buf.append("<div class=\"wideload\"><table>\n");
    647647        buf.append("<tr><th><a href=\"#def.peer\">Peer</a></th>");
    648648        buf.append("<th>Dir</th>");
     
    651651        buf.append("<th align=\"right\"><a href=\"#def.up\">Up</a></th>");
    652652        buf.append("<th align=\"right\"><a href=\"#def.skew\">Skew</a></th>");
    653         buf.append("<th align=\"right\"><a href=\"#def.send\">Send</a></th>");
    654         buf.append("<th align=\"right\"><a href=\"#def.recv\">Recv</a></th>");
     653        buf.append("<th align=\"right\"><a href=\"#def.send\">TX</a></th>");
     654        buf.append("<th align=\"right\"><a href=\"#def.recv\">RX</a></th>");
    655655        buf.append("<th>Out queue</th>");
    656656        buf.append("<th>Backlogged?</th>");
     
    661661        for (Iterator iter = peers.iterator(); iter.hasNext(); ) {
    662662            NTCPConnection con = (NTCPConnection)iter.next();
    663             buf.append("<tr><td align=\"right\" nowrap>");
     663            buf.append("<tr> <td class=\"cells\" align=\"left\" nowrap>");
    664664            buf.append(_context.commSystem().renderPeerHTML(con.getRemotePeer().calculateHash()));
    665665            //byte[] ip = getIP(con.getRemotePeer().calculateHash());
    666666            //if (ip != null)
    667667            //    buf.append(' ').append(_context.blocklist().toStr(ip));
    668             buf.append("</td><td align=\"center\"><code>");
     668            buf.append("</td> <td class=\"cells\" align=\"center\">");
    669669            if (con.isInbound())
    670                 buf.append("in");
     670                buf.append("<img src=\"/themes/console/images/inbound.png\" alt=\"Inbound\" title=\"Inbound\"/>");
    671671            else
    672                 buf.append("out");
    673             buf.append("</code></td><td align=\"right\"><code>");
     672                buf.append("<img src=\"/themes/console/images/outbound.png\" alt=\"Outbound\" title=\"Outbound\"/>");
     673            buf.append("</td> <td class=\"cells\" align=\"right\">");
    674674            buf.append(con.getTimeSinceReceive()/1000);
    675675            buf.append("s/").append(con.getTimeSinceSend()/1000);
    676             buf.append("s</code></td><td align=\"right\"><code>");
     676            buf.append("s</td> <td class=\"cells\" align=\"center\">");
    677677            if (con.getTimeSinceReceive() < 10*1000) {
    678678                buf.append(formatRate(con.getRecvRate()/1024));
     
    688688                buf.append(formatRate(0));
    689689            }
    690             buf.append("KBps");
    691             buf.append("</code></td><td align=\"right\"><code>").append(DataHelper.formatDuration(con.getUptime()));
     690            buf.append("K/s");
     691            buf.append("</td> <td class=\"cells\" align=\"center\">").append(DataHelper.formatDuration(con.getUptime()));
    692692            totalUptime += con.getUptime();
    693693            offsetTotal = offsetTotal + con.getClockSkew();
    694             buf.append("</code></td><td align=\"right\"><code>").append(con.getClockSkew());
    695             buf.append("s</code></td><td align=\"right\"><code>").append(con.getMessagesSent());
     694            buf.append("</td> <td class=\"cells\" align=\"center\">").append(con.getClockSkew());
     695            buf.append("s</td> <td class=\"cells\" align=\"center\">").append(con.getMessagesSent());
    696696            totalSend += con.getMessagesSent();
    697             buf.append("</code></td><td align=\"right\"><code>").append(con.getMessagesReceived());
     697            buf.append("</td> <td class=\"cells\" align=\"center\">").append(con.getMessagesReceived());
    698698            totalRecv += con.getMessagesReceived();
    699699            long outQueue = con.getOutboundQueueSize();
    700700            if (outQueue <= 0) {
    701                 buf.append("</code></td><td align=\"right\"><code>No messages");
     701                buf.append("</td> <td class=\"cells\" align=\"center\">No messages");
    702702            } else {
    703                 buf.append("</code></td><td align=\"right\"><code>").append(outQueue).append(" message");
     703                buf.append("</td> <td class=\"cells\" align=\"center\">").append(outQueue).append(" message");
    704704                if (outQueue > 1)
    705705                    buf.append("s");
    706706            }
    707             buf.append("</code></td><td align=\"center\"><code>").append(con.getConsecutiveBacklog() > 0 ? "true" : "false");
     707            buf.append("</td> <td class=\"cells\" align=\"center\">").append(con.getConsecutiveBacklog() > 0 ? "true" : "false");
    708708            long readTime = con.getReadTime();
    709709            if (readTime <= 0) {
    710                 buf.append("</code></td><td align=\"center\"><code>No");
     710                buf.append("</td> <td class=\"cells\" align=\"center\">No");
    711711            } else {
    712                 buf.append("</code></td><td><code>For ").append(DataHelper.formatDuration(readTime));
    713             }
    714             buf.append("</code></td></tr>\n");
     712                buf.append("</td> <td class=\"cells\">For ").append(DataHelper.formatDuration(readTime));
     713            }
     714            buf.append("</td></tr>\n");
    715715            out.write(buf.toString());
    716716            buf.setLength(0);
     
    718718
    719719        if (peers.size() > 0) {
    720             buf.append("<tr><td colspan=\"11\"><hr /></td></tr>\n");
    721             buf.append("<tr><td>").append(peers.size()).append(" peers</td><td>&nbsp;</td><td>&nbsp;");
    722             buf.append("</td><td align=\"right\">").append(formatRate(bpsRecv/1024)).append("/").append(formatRate(bpsSend/1024)).append("KBps");
    723             buf.append("</td><td align=\"right\">").append(DataHelper.formatDuration(totalUptime/peers.size()));
    724             buf.append("</td><td align=\"right\">").append(peers.size() > 0 ? DataHelper.formatDuration(offsetTotal*1000/peers.size()) : "0ms");
    725             buf.append("</td><td align=\"right\">").append(totalSend).append("</td><td align=\"right\">").append(totalRecv);
    726             buf.append("</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;");
     720//            buf.append("<tr> <td colspan=\"11\"><hr /></td></tr>\n");
     721            buf.append("<tr class=\"tablefooter\"> <td align=\"center\"><b>").append(peers.size()).append(" peers</b></td> <td>&nbsp;</td> <td>&nbsp;");
     722            buf.append("</td> <td align=\"center\"><b>").append(formatRate(bpsRecv/1024)).append("/").append(formatRate(bpsSend/1024)).append("K/s</b>");
     723            buf.append("</td> <td align=\"center\"><b>").append(DataHelper.formatDuration(totalUptime/peers.size()));
     724            buf.append("</b></td> <td align=\"center\"><b>").append(peers.size() > 0 ? DataHelper.formatDuration(offsetTotal*1000/peers.size()) : "0ms");
     725            buf.append("</b></td> <td align=\"center\"><b>").append(totalSend).append("</b></td> <td align=\"center\"><b>").append(totalRecv);
     726            buf.append("</b></td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;");
    727727            buf.append("</td></tr>\n");
    728728        }
    729729
    730         buf.append("</table></p>\n");
     730        buf.append("</table></div></p>\n");
    731731        out.write(buf.toString());
    732732        buf.setLength(0);
  • router/java/src/net/i2p/router/transport/udp/UDPTransport.java

    r70ae99f r55a8002b  
    17641764       
    17651765        StringBuilder buf = new StringBuilder(512);
    1766         buf.append("<p><b id=\"udpcon\">UDP connections: ").append(peers.size());
    1767         buf.append(" limit: ").append(getMaxConnections());
    1768         buf.append(" timeout: ").append(DataHelper.formatDuration(_expireTimeout));
    1769         buf.append("</b><br />\n");
    1770         buf.append("<table>\n");
    1771         buf.append("<tr><th><a href=\"#def.peer\">Peer</a>");
     1766        buf.append("<p><b id=\"udpcon\"><h3>UDP connections: ").append(peers.size());
     1767        buf.append(". Limit: ").append(getMaxConnections());
     1768        buf.append(". Timeout: ").append(DataHelper.formatDuration(_expireTimeout));
     1769        buf.append(".</b></h3>\n");
     1770        buf.append("<div class=\"wideload\"><table>\n");
     1771        buf.append("<tr><th class=\"smallhead\" nowrap><a href=\"#def.peer\">Peer</a>");
    17721772        if (sortFlags != FLAG_ALPHA)
    17731773            buf.append(" <a href=\"").append(urlBase).append("?sort=0\">V</a> ");
    1774         buf.append("</th><th><a href=\"#def.dir\">Dir/Intro</a></th><th><a href=\"#def.idle\">Idle</a>");
     1774        buf.append("</th><th class=\"smallhead\" nowrap><a href=\"#def.dir\" title=\"Direction/Introduction\">Dir</a></th><th class=\"smallhead\" nowrap><a href=\"#def.idle\">Idle</a><br>");
    17751775        appendSortLinks(buf, urlBase, sortFlags, "Sort by idle inbound", FLAG_IDLE_IN);
    17761776        buf.append("/");
    17771777        appendSortLinks(buf, urlBase, sortFlags, "Sort by idle outbound", FLAG_IDLE_OUT);
    17781778        buf.append("</th>");
    1779         buf.append("<th><a href=\"#def.rate\">In/Out</a>");
     1779        buf.append("<th class=\"smallhead\" nowrap><a href=\"#def.rate\">In/Out</a><br>");
    17801780        appendSortLinks(buf, urlBase, sortFlags, "Sort by inbound rate", FLAG_RATE_IN);
    17811781        buf.append("/");
    17821782        appendSortLinks(buf, urlBase, sortFlags, "Sort by outbound rate", FLAG_RATE_OUT);
    17831783        buf.append("</th>\n");
    1784         buf.append("<th><a href=\"#def.up\">Up</a>");
     1784        buf.append("<th class=\"smallhead\" nowrap><a href=\"#def.up\">Up</a><br>");
    17851785        appendSortLinks(buf, urlBase, sortFlags, "Sort by connection uptime", FLAG_UPTIME);
    1786         buf.append("</th><th><a href=\"#def.skew\">skew</a>");
     1786        buf.append("</th><th class=\"smallhead\" nowrap><a href=\"#def.skew\">Skew</a><br>");
    17871787        appendSortLinks(buf, urlBase, sortFlags, "Sort by clock skew", FLAG_SKEW);
    17881788        buf.append("</th>\n");
    1789         buf.append("<th><a href=\"#def.cwnd\">Cwnd</a>");
     1789        buf.append("<th class=\"smallhead\" nowrap><a href=\"#def.cwnd\">Cwnd</a><br>");
    17901790        appendSortLinks(buf, urlBase, sortFlags, "Sort by congestion window", FLAG_CWND);
    1791         buf.append("</th><th><a href=\"#def.ssthresh\">Ssthresh</a>");
     1791        buf.append("</th><th class=\"smallhead\" nowrap><a href=\"#def.ssthresh\">Sst</a><br>");
    17921792        appendSortLinks(buf, urlBase, sortFlags, "Sort by slow start threshold", FLAG_SSTHRESH);
    17931793        buf.append("</th>\n");
    1794         buf.append("<th><a href=\"#def.rtt\">Rtt</a>");
     1794        buf.append("<th class=\"smallhead\" nowrap><a href=\"#def.rtt\">Rtt</a><br>");
    17951795        appendSortLinks(buf, urlBase, sortFlags, "Sort by round trip time", FLAG_RTT);
    1796         buf.append("</th><th><a href=\"#def.dev\">Dev</a>");
     1796        buf.append("</th><th class=\"smallhead\" nowrap><a href=\"#def.dev\">Dev</a><br>");
    17971797        appendSortLinks(buf, urlBase, sortFlags, "Sort by round trip time deviation", FLAG_DEV);
    1798         buf.append("</th><th><a href=\"#def.rto\">Rto</a>");
     1798        buf.append("</th><th class=\"smallhead\" nowrap><a href=\"#def.rto\">Rto</a><br>");
    17991799        appendSortLinks(buf, urlBase, sortFlags, "Sort by retransmission timeout", FLAG_RTO);
    18001800        buf.append("</th>\n");
    1801         buf.append("<th><a href=\"#def.mtu\">Mtu</a>");
     1801        buf.append("<th class=\"smallhead\" nowrap><a href=\"#def.mtu\">Mtu</a><br>");
    18021802        appendSortLinks(buf, urlBase, sortFlags, "Sort by maximum transmit unit", FLAG_MTU);
    1803         buf.append("</th><th><a href=\"#def.send\">Send</a>");
     1803        buf.append("</th><th class=\"smallhead\" nowrap><a href=\"#def.send\">TX</a><br>");
    18041804        appendSortLinks(buf, urlBase, sortFlags, "Sort by packets sent", FLAG_SEND);
    1805         buf.append("</th><th><a href=\"#def.recv\">Recv</a>");
     1805        buf.append("</th><th class=\"smallhead\" nowrap><a href=\"#def.recv\">RX</a><br>");
    18061806        appendSortLinks(buf, urlBase, sortFlags, "Sort by packets received", FLAG_RECV);
    18071807        buf.append("</th>\n");
    1808         buf.append("<th><a href=\"#def.resent\">Resent</a>");
     1808        buf.append("<th class=\"smallhead\" nowrap><a href=\"#def.resent\">ReTX</a><br>");
    18091809        appendSortLinks(buf, urlBase, sortFlags, "Sort by packets retransmitted", FLAG_RESEND);
    1810         buf.append("</th><th><a href=\"#def.dupRecv\">DupRecv</a>");
     1810        buf.append("</th><th class=\"smallhead\" nowrap><a href=\"#def.dupRecv\">DupRX</a><br>");
    18111811        appendSortLinks(buf, urlBase, sortFlags, "Sort by packets received more than once", FLAG_DUP);
    18121812        buf.append("</th>\n");
     
    18201820                continue; // don't include old peers
    18211821           
    1822             buf.append("<tr><td align=\"right\" nowrap>");
     1822            buf.append("<tr> <td class=\"cells\" align=\"left\" nowrap>");
    18231823            buf.append(_context.commSystem().renderPeerHTML(peer.getRemotePeer()));
    18241824            //byte ip[] = peer.getRemoteIP();
    18251825            //if (ip != null)
    18261826            //    buf.append(' ').append(_context.blocklist().toStr(ip));
    1827             buf.append("</td><td><code>");
     1827            buf.append("</td> <td class=\"cells\" nowrap align=\"left\">");
    18281828            if (peer.isInbound())
    1829                 buf.append("in ");
     1829                buf.append("<img src=\"/themes/console/images/inbound.png\" alt=\"Inbound\" title=\"Inbound\"/> ");
    18301830            else
    1831                 buf.append("out ");
     1831                buf.append("<img src=\"/themes/console/images/outbound.png\" alt=\"Outbound\" title=\"Outbound\"/> ");
    18321832            if (peer.getWeRelayToThemAs() > 0)
    18331833                buf.append("^");
     
    18401840            if (_activeThrottle.isChoked(peer.getRemotePeer())) {
    18411841                if (!appended) buf.append("<br />");
    1842                 buf.append(" [choked]");
     1842                buf.append(" <i>Choked</i>");
    18431843                appended = true;
    18441844            }
    18451845            if (peer.getConsecutiveFailedSends() > 0) {
    18461846                if (!appended) buf.append("<br />");
    1847                 buf.append(" [").append(peer.getConsecutiveFailedSends()).append(" failures]");
     1847                buf.append(" <i>").append(peer.getConsecutiveFailedSends()).append(" fail(s)</i>");
    18481848                appended = true;
    18491849            }
    18501850            if (_context.shitlist().isShitlisted(peer.getRemotePeer(), STYLE)) {
    18511851                if (!appended) buf.append("<br />");
    1852                 buf.append(" [shitlisted]");
     1852                buf.append(" <i>Shitlist</i>");
    18531853                appended = true;
    18541854            }
     
    18561856            //if (ip != null)
    18571857            //    buf.append(' ').append(_context.blocklist().toStr(ip));
    1858             buf.append("</code></td>");
     1858            buf.append("</td>");
    18591859           
    18601860            long idleIn = (now-peer.getLastReceiveTime())/1000;
     
    18631863            if (idleOut < 0) idleOut = 0;
    18641864           
    1865             buf.append("<td align=\"right\" ><code>");
     1865            buf.append(" <td class=\"cells\" align=\"right\" >");
    18661866            buf.append(idleIn);
    18671867            buf.append("s/");
    18681868            buf.append(idleOut);
    1869             buf.append("s</code></td>");
     1869            buf.append("s</td>");
    18701870 
    18711871            int recvBps = (idleIn > 2 ? 0 : peer.getReceiveBps());
    18721872            int sendBps = (idleOut > 2 ? 0 : peer.getSendBps());
    18731873           
    1874             buf.append("<td align=\"right\" ><code>");
     1874            buf.append(" <td class=\"cells\" align=\"right\" nowrap>");
    18751875            buf.append(formatKBps(recvBps));
    18761876            buf.append("/");
    18771877            buf.append(formatKBps(sendBps));
    1878             buf.append("KBps ");
     1878            buf.append("K/s ");
    18791879            //buf.append(formatKBps(peer.getReceiveACKBps()));
    1880             //buf.append("KBps/");
     1880            //buf.append("K/s/");
    18811881            //buf.append(formatKBps(peer.getSendACKBps()));
    1882             //buf.append("KBps ");
    1883             buf.append("</code></td>");
     1882            //buf.append("K/s ");
     1883            buf.append("</td>");
    18841884
    18851885            long uptime = now - peer.getKeyEstablishedTime();
    18861886           
    1887             buf.append("<td align=\"right\" ><code>");
     1887            buf.append(" <td class=\"cells\" align=\"center\" >");
    18881888            buf.append(DataHelper.formatDuration(uptime));
    1889             buf.append("</code></td>");
     1889            buf.append("</td>");
    18901890           
    1891             buf.append("<td align=\"right\" ><code>");
     1891            buf.append(" <td class=\"cells\" align=\"center\" >");
    18921892            buf.append(peer.getClockSkew());
    1893             buf.append("s</code></td>");
     1893            buf.append("s</td>");
    18941894            offsetTotal = offsetTotal + peer.getClockSkew();
    18951895
    18961896            long sendWindow = peer.getSendWindowBytes();
    18971897           
    1898             buf.append("<td align=\"right\" ><code>");
     1898            buf.append(" <td class=\"cells\" align=\"right\" >");
    18991899            buf.append(sendWindow/1024);
    19001900            buf.append("K");
     
    19021902            buf.append("/").append(peer.getConcurrentSendWindow());
    19031903            buf.append("/").append(peer.getConsecutiveSendRejections());
    1904             buf.append("</code></td>");
    1905 
    1906             buf.append("<td align=\"right\" ><code>");
     1904            buf.append("</td>");
     1905
     1906            buf.append(" <td class=\"cells\" align=\"center\" >");
    19071907            buf.append(peer.getSlowStartThreshold()/1024);
    1908             buf.append("K</code></td>");
     1908            buf.append("K</td>");
    19091909
    19101910            int rtt = peer.getRTT();
    19111911            int rto = peer.getRTO();
    19121912           
    1913             buf.append("<td align=\"right\" ><code>");
     1913            buf.append(" <td class=\"cells\" align=\"right\" >");
    19141914            buf.append(rtt);
    1915             buf.append("</code></td>");
     1915            buf.append("</td>");
    19161916           
    1917             buf.append("<td align=\"right\" ><code>");
     1917            buf.append(" <td class=\"cells\" align=\"right\" >");
    19181918            buf.append(peer.getRTTDeviation());
    1919             buf.append("</code></td>");
    1920 
    1921             buf.append("<td align=\"right\" ><code>");
     1919            buf.append("</td>");
     1920
     1921            buf.append(" <td class=\"cells\" align=\"right\" >");
    19221922            buf.append(rto);
    1923             buf.append("</code></td>");
     1923            buf.append("</td>");
    19241924           
    1925             buf.append("<td align=\"right\" ><code>");
     1925            buf.append(" <td class=\"cells\" align=\"right\" >");
    19261926            buf.append(peer.getMTU()).append("/").append(peer.getReceiveMTU());
    19271927           
     
    19291929            //buf.append(peer.getMTUIncreases()).append('/');
    19301930            //buf.append(peer.getMTUDecreases());
    1931             buf.append("</code></td>");
     1931            buf.append("</td>");
    19321932       
    19331933            long sent = peer.getPacketsTransmitted();
    19341934            long recv = peer.getPacketsReceived();
    19351935           
    1936             buf.append("<td align=\"right\" ><code>");
     1936            buf.append(" <td class=\"cells\" align=\"center\" >");
    19371937            buf.append(sent);
    1938             buf.append("</code></td>");
     1938            buf.append("</td>");
    19391939           
    1940             buf.append("<td align=\"right\" ><code>");
     1940            buf.append(" <td class=\"cells\" align=\"center\" >");
    19411941            buf.append(recv);
    1942             buf.append("</code></td>");
     1942            buf.append("</td>");
    19431943           
    19441944            //double sent = (double)peer.getPacketsPeriodTransmitted();
     
    19501950            long dupRecv = peer.getPacketsReceivedDuplicate();
    19511951           
    1952             buf.append("<td align=\"right\" ><code>");
     1952            buf.append(" <td class=\"cells\" align=\"center\" >");
    19531953            //buf.append(formatPct(sendLostPct));
    19541954            buf.append(resent); // + "/" + peer.getPacketsPeriodRetransmitted() + "/" + sent);
    19551955            //buf.append(peer.getPacketRetransmissionRate());
    1956             buf.append("</code></td>");
     1956            buf.append("</td>");
    19571957           
    19581958            double recvDupPct = (double)peer.getPacketsReceivedDuplicate()/(double)peer.getPacketsReceived();
    1959             buf.append("<td align=\"right\" ><code>");
     1959            buf.append(" <td class=\"cells\" align=\"center\" >");
    19601960            buf.append(dupRecv); //formatPct(recvDupPct));
    1961             buf.append("</code></td>");
     1961            buf.append("</td>");
    19621962
    19631963            buf.append("</tr>\n");
     
    19811981        }
    19821982       
    1983         buf.append("<tr><td colspan=\"16\"><hr /></td></tr>\n");
    1984         buf.append(" <tr><td colspan=\"3\"><b>Total</b></td>");
    1985         buf.append("     <td align=\"right\">");
     1983//        buf.append("<tr><td colspan=\"16\"><hr /></td></tr>\n");
     1984        buf.append(" <tr class=\"tablefooter\"> <td colspan=\"3\" align=\"right\"><b>Total</b></td>");
     1985        buf.append("      <td align=\"center\" nowrap><b>");
    19861986        buf.append(formatKBps(bpsIn)).append("/").append(formatKBps(bpsOut));
    1987         buf.append("KBps</td>");
    1988         buf.append("     <td align=\"right\">").append(numPeers > 0 ? DataHelper.formatDuration(uptimeMsTotal/numPeers) : "0s");
    1989         buf.append("</td><td align=\"right\">").append(numPeers > 0 ? DataHelper.formatDuration(offsetTotal*1000/numPeers) : "0ms").append("</td>\n");
    1990         buf.append("     <td align=\"right\">");
     1987        buf.append("K/s</b></td>");
     1988        buf.append("      <td align=\"center\"><b>").append(numPeers > 0 ? DataHelper.formatDuration(uptimeMsTotal/numPeers) : "0s");
     1989        buf.append("</b></td> <td align=\"center\"><b>").append(numPeers > 0 ? DataHelper.formatDuration(offsetTotal*1000/numPeers) : "0ms").append("</b></td>\n");
     1990        buf.append("      <td align=\"center\"><b>");
    19911991        buf.append(numPeers > 0 ? cwinTotal/(numPeers*1024) + "K" : "0K");
    1992         buf.append("</td><td>&nbsp;</td>\n");
    1993         buf.append("     <td align=\"right\">");
     1992        buf.append("</b></td> <td>&nbsp;</td>\n");
     1993        buf.append("      <td align=\"center\"><b>");
    19941994        buf.append(numPeers > 0 ? rttTotal/numPeers : 0);
    1995         buf.append("</td><td align=\"right\">&nbsp;</td><td align=\"right\">");
     1995        buf.append("</b></td> <td>&nbsp;</td> <td align=\"center\"><b>");
    19961996        buf.append(numPeers > 0 ? rtoTotal/numPeers : 0);
    1997         buf.append("</td>\n     <td>&nbsp;</td><td align=\"right\">");
    1998         buf.append(sendTotal).append("</td><td align=\"right\">").append(recvTotal).append("</td>\n");
    1999         buf.append("     <td align=\"right\">").append(resentTotal);
    2000         buf.append("</td><td align=\"right\">").append(dupRecvTotal).append("</td>\n");
    2001         buf.append(" </tr></table></p><p>\n");
     1997        buf.append("</b></td>\n      <td>&nbsp;</td> <td align=\"center\"><b>");
     1998        buf.append(sendTotal).append("</td></b> <td align=\"center\"><b>").append(recvTotal).append("</b></td>\n");
     1999        buf.append("      <td align=\"center\"><b>").append(resentTotal);
     2000        buf.append("</b></td> <td align=\"center\"><b>").append(dupRecvTotal).append("</b></td>\n");
     2001        buf.append(" </tr></table></div></p><p>\n");
    20022002        long bytesTransmitted = _context.bandwidthLimiter().getTotalAllocatedOutboundBytes();
    20032003        // NPE here early
     
    20072007        double nondupSent = ((double)bytesTransmitted - ((double)resentTotal)*averagePacketSize);
    20082008        double bwResent = (nondupSent <= 0 ? 0d : ((((double)resentTotal)*averagePacketSize) / nondupSent));
    2009         buf.append("Percentage of bytes retransmitted (lifetime): ").append(formatPct(bwResent));
    2010         buf.append(" <i>(includes retransmission required by packet loss)</i><br /></p>\n");
     2009        buf.append("<h3>Percentage of bytes retransmitted (lifetime): ").append(formatPct(bwResent));
     2010        buf.append("</h3><i>(Includes retransmission required by packet loss)</i><br /></p>\n");
    20112011        out.write(buf.toString());
    20122012        buf.setLength(0);
     
    20272027    }
    20282028   
    2029     private static final String KEY = "<p>" +
    2030         "<b id=\"def.peer\">peer</b>: the remote peer<br />\n" +
    2031         "<b id=\"def.dir\">dir</b>: v means they offer to introduce us, ^ means we offer to introduce them<br />\n" +
    2032         "<b id=\"def.idle\">idle</b>: the idle time is how long since a packet has been received or sent<br />\n" +
    2033         "<b id=\"def.rate\">in/out</b>: the rates show a smoothed inbound and outbound transfer rate (KBytes per second)<br />\n" +
    2034         "<b id=\"def.up\">up</b>: the uptime is how long ago this session was established<br />\n" +
    2035         "<b id=\"def.skew\">skew</b>: the skew says how far off the other user's clock is, relative to your own<br />\n" +
    2036         "<b id=\"def.cwnd\">cwnd</b>: the congestion window is how many bytes in 'in flight' you can send w/out an acknowledgement / <br />\n" +
    2037         "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the number of currently active messages being sent /<br />\n" +
    2038         "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the maximum number of concurrent messages to send /<br />\n"+
    2039         "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the number of consecutive sends which were blocked due to throws message window size<br />\n" +
    2040         "<b id=\"def.ssthresh\">ssthresh</b>: the slow start threshold help make sure the cwnd doesn't grow too fast<br />\n" +
    2041         "<b id=\"def.rtt\">rtt</b>: the round trip time is how long it takes to get an acknowledgement of a packet<br />\n" +
    2042         "<b id=\"def.dev\">dev</b>: the standard deviation of the round trip time, to help control the retransmit timeout<br />\n" +
    2043         "<b id=\"def.rto\">rto</b>: the retransmit timeout controls how frequently an unacknowledged packet will be retransmitted<br />\n" +
    2044         "<b id=\"def.mtu\">mtu</b>: current sending packet size / estimated receiving packet size<br />\n" +
    2045         "<b id=\"def.send\">send</b>: the number of packets sent to the peer<br />\n" +
    2046         "<b id=\"def.recv\">recv</b>: the number of packets received from the peer<br />\n" +
    2047         "<b id=\"def.resent\">resent</b>: the number of packets retransmitted to the peer<br />\n" +
    2048         "<b id=\"def.dupRecv\">dupRecv</b>: the number of duplicate packets received from the peer" +
    2049         "</p>\n";
     2029    private static final String KEY = "<h3>Definitions:</h3><div class=\"configure\">" +
     2030        "<br><b id=\"def.peer\">Peer</b>: the remote peer.<br />\n" +
     2031        "<b id=\"def.dir\">Dir</b>: v means they offer to introduce us, ^ means we offer to introduce them.<br />\n" +
     2032        "<b id=\"def.idle\">Idle</b>: the idle time is how long since a packet has been received or sent.<br />\n" +
     2033        "<b id=\"def.rate\">In/out</b>: the rates show a smoothed inbound and outbound transfer rate (KBytes per second).<br />\n" +
     2034        "<b id=\"def.up\">Up</b>: the uptime is how long ago this session was established.<br />\n" +
     2035        "<b id=\"def.skew\">Skew</b>: the skew says how far off the other user's clock is, relative to your own.<br />\n" +
     2036        "<b id=\"def.cwnd\">Cwnd</b>: the congestion window is how many bytes in 'in flight' you can send w/out an acknowledgement, / <br />\n" +
     2037        "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the number of currently active messages being sent, /<br />\n" +
     2038        "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the maximum number of concurrent messages to send, /<br />\n"+
     2039        "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the number of consecutive sends which were blocked due to throws message window size.<br />\n" +
     2040        "<b id=\"def.ssthresh\">Sst</b>: the slow start threshold helps make sure the cwnd doesn't grow too fast.<br />\n" +
     2041        "<b id=\"def.rtt\">Rtt</b>: the round trip time is how long it takes to get an acknowledgement of a packet.<br />\n" +
     2042        "<b id=\"def.dev\">Dev</b>: the standard deviation of the round trip time, to help control the retransmit timeout.<br />\n" +
     2043        "<b id=\"def.rto\">Rto</b>: the retransmit timeout controls how frequently an unacknowledged packet will be retransmitted.<br />\n" +
     2044        "<b id=\"def.mtu\">Mtu</b>: current sending packet size / estimated receiving packet size.<br />\n" +
     2045        "<b id=\"def.send\">TX</b>: the number of packets sent to the peer.<br />\n" +
     2046        "<b id=\"def.recv\">RX</b>: the number of packets received from the peer.<br />\n" +
     2047        "<b id=\"def.resent\">ReTX</b>: the number of packets retransmitted to the peer.<br />\n" +
     2048        "<b id=\"def.dupRecv\">DupRX</b>: the number of duplicate packets received from the peer." +
     2049        "</div>\n";
    20502050   
    20512051    /**
  • router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java

    r70ae99f r55a8002b  
    406406   
    407407    public void renderStatusHTML(Writer out) throws IOException {
    408         out.write("<h2><a name=\"exploratory\" ></a>Exploratory tunnels (<a href=\"/configtunnels.jsp#exploratory\">config</a>):</h2>\n");
     408        out.write("<div class=\"wideload\"><h2><a name=\"exploratory\" ></a>Exploratory tunnels (<a href=\"/configtunnels.jsp#exploratory\">config</a>):</h2>\n");
    409409        renderPool(out, _inboundExploratory, _outboundExploratory);
    410410       
     
    456456            out.write("<tr>");
    457457            if (cfg.getReceiveTunnel() != null)
    458                 out.write("<td align=\"center\">" + cfg.getReceiveTunnel().getTunnelId() +"</td>");
    459             else
    460                 out.write("<td align=\"center\">n/a</td>");
     458                out.write(" <td class=\"cells\" align=\"center\">" + cfg.getReceiveTunnel().getTunnelId() +"</td>");
     459            else
     460                out.write(" <td class=\"cells\" align=\"center\">n/a</td>");
    461461            if (cfg.getReceiveFrom() != null)
    462                 out.write("<td align=\"right\">" + netDbLink(cfg.getReceiveFrom()) +"</td>");
    463             else
    464                 out.write("<td align=\"center\">&nbsp;</td>");
     462                out.write(" <td class=\"cells\" align=\"right\">" + netDbLink(cfg.getReceiveFrom()) +"</td>");
     463            else
     464                out.write(" <td class=\"cells\" align=\"center\">&nbsp;</td>");
    465465            if (cfg.getSendTunnel() != null)
    466                 out.write("<td align=\"center\">" + cfg.getSendTunnel().getTunnelId() +"</td>");
    467             else
    468                 out.write("<td align=\"center\">&nbsp;</td>");
     466                out.write(" <td class=\"cells\" align=\"center\">" + cfg.getSendTunnel().getTunnelId() +"</td>");
     467            else
     468                out.write(" <td class=\"cells\" align=\"center\">&nbsp;</td>");
    469469            if (cfg.getSendTo() != null)
    470                 out.write("<td align=\"center\">" + netDbLink(cfg.getSendTo()) +"</td>");
    471             else
    472 //                out.write("<td align=\"center\">&nbsp;</td>");
    473                 out.write("<td align=\"center\">&nbsp;</td>");
     470                out.write(" <td class=\"cells\" align=\"center\">" + netDbLink(cfg.getSendTo()) +"</td>");
     471            else
     472//                out.write(" <td class=\"cells\" align=\"center\">&nbsp;</td>");
     473                out.write(" <td class=\"cells\" align=\"center\">&nbsp;</td>");
    474474            long timeLeft = cfg.getExpiration()-_context.clock().now();
    475475            if (timeLeft > 0)
    476                 out.write("<td align=\"center\">" + DataHelper.formatDuration(timeLeft) + "</td>");
    477             else
    478                 out.write("<td align=\"center\">(grace period)</td>");
    479             out.write("<td align=\"center\">" + cfg.getProcessedMessagesCount() + "KB</td>");
     476                out.write(" <td class=\"cells\" align=\"center\">" + DataHelper.formatDuration(timeLeft) + "</td>");
     477            else
     478                out.write(" <td class=\"cells\" align=\"center\">(grace period)</td>");
     479            out.write(" <td class=\"cells\" align=\"center\">" + cfg.getProcessedMessagesCount() + "KB</td>");
    480480            int lifetime = (int) ((_context.clock().now() - cfg.getCreation()) / 1000);
    481481            if (lifetime <= 0)
     
    484484                lifetime = 10*60;
    485485            int bps = 1024 * (int) cfg.getProcessedMessagesCount() / lifetime;
    486             out.write("<td align=\"center\">" + bps + "Bps</td>");
     486            out.write(" <td class=\"cells\" align=\"center\">" + bps + "Bps</td>");
    487487            if (cfg.getSendTo() == null)
    488                 out.write("<td align=\"center\">Outbound Endpoint</td>");
     488                out.write(" <td class=\"cells\" align=\"center\">Outbound Endpoint</td>");
    489489            else if (cfg.getReceiveFrom() == null)
    490                 out.write("<td align=\"center\">Inbound Gateway</td>");
    491             else
    492                 out.write("<td align=\"center\">Participant</td>");
     490                out.write(" <td class=\"cells\" align=\"center\">Inbound Gateway</td>");
     491            else
     492                out.write(" <td class=\"cells\" align=\"center\">Participant</td>");
    493493            out.write("</tr>\n");
    494494            processed += cfg.getProcessedMessagesCount();
     
    544544            live++;
    545545            if (info.isInbound())
    546                 out.write("<tr><td align=\"center\"><img src=\"/themes/console/images/inbound.png\" alt=\"Inbound\" title=\"Inbound\"/></td>");
    547             else
    548                 out.write("<tr><td align=\"center\"><img src=\"/themes/console/images/outbound.png\" alt=\"Outbound\" title=\"Outbound\"/></td>");
    549             out.write("<td align=\"center\">" + DataHelper.formatDuration(timeLeft) + "</td>\n");
    550             out.write("<td align=\"center\">" + info.getProcessedMessagesCount() + "KB</td>\n");
     546                out.write("<tr> <td class=\"cells\" align=\"center\"><img src=\"/themes/console/images/inbound.png\" alt=\"Inbound\" title=\"Inbound\"/></td>");
     547            else
     548                out.write("<tr> <td class=\"cells\" align=\"center\"><img src=\"/themes/console/images/outbound.png\" alt=\"Outbound\" title=\"Outbound\"/></td>");
     549            out.write(" <td class=\"cells\" align=\"center\">" + DataHelper.formatDuration(timeLeft) + "</td>\n");
     550            out.write(" <td class=\"cells\" align=\"center\">" + info.getProcessedMessagesCount() + "KB</td>\n");
    551551            for (int j = 0; j < info.getLength(); j++) {
    552552                Hash peer = info.getPeer(j);
    553553                TunnelId id = (info.isInbound() ? info.getReceiveTunnelId(j) : info.getSendTunnelId(j));
    554554                if (_context.routerHash().equals(peer)) {
    555                     out.write("<td align=\"center\">" + (id == null ? "" : "" + id) + "</td>");
     555                    out.write(" <td class=\"cells\" align=\"center\">" + (id == null ? "" : "" + id) + "</td>");
    556556                } else {
    557557                    String cap = getCapacity(peer);
    558                     out.write("<td align=\"center\">" + netDbLink(peer) + (id == null ? "" : " " + id) + cap + "</td>");               
     558                    out.write(" <td class=\"cells\" align=\"center\">" + netDbLink(peer) + (id == null ? "" : " " + id) + cap + "</td>");               
    559559                }
    560560                if (info.getLength() < maxLength && (info.getLength() == 1 || j == info.getLength() - 2)) {
    561561                    for (int k = info.getLength(); k < maxLength; k++)
    562                         out.write("<td align=\"center\">&nbsp</td>");
     562                        out.write(" <td class=\"cells\" align=\"center\">&nbsp</td>");
    563563                }
    564564            }
     
    584584        }
    585585        if (live <= 0)
    586             out.write("<div class=\"statusnotes\"><center>N<b>No tunnels; waiting for the grace period to end.</center></b></div>\n");
    587         out.write("<div class=\"statusnotes\"><center><b>Lifetime bandwidth usage: " + DataHelper.formatSize(processedIn*1024) + "<B in, " +
     586            out.write("<div class=\"statusnotes\"><center><b>No tunnels; waiting for the grace period to end.</center></b></div>\n");
     587        out.write("<div class=\"statusnotes\"><center><b>Lifetime bandwidth usage: " + DataHelper.formatSize(processedIn*1024) + "B in, " +
    588588                  DataHelper.formatSize(processedOut*1024) + "B out</b></center></div>");
    589589    }
     
    606606        out.write("<table><tr><th>Peer</th><th>Expl. + Client</th><th>% of total</th><th>Part. from + to</th><th>% of total</th></tr>\n");
    607607        for (Hash h : peerList) {
    608              out.write("<tr><td align=\"center\">");
     608             out.write("<tr> <td class=\"cells\" align=\"center\">");
    609609             out.write(netDbLink(h));
    610              out.write("<td align=\"center\">" + lc.count(h));
    611              out.write("<td align=\"center\">");
     610             out.write(" <td class=\"cells\" align=\"center\">" + lc.count(h));
     611             out.write(" <td class=\"cells\" align=\"center\">");
    612612             if (tunnelCount > 0)
    613613                 out.write("" + (lc.count(h) * 100 / tunnelCount));
    614614             else
    615615                 out.write('0');
    616              out.write("<td align=\"center\">" + pc.count(h));
    617              out.write("<td align=\"center\">");
     616             out.write(" <td class=\"cells\" align=\"center\">" + pc.count(h));
     617             out.write(" <td class=\"cells\" align=\"center\">");
    618618             if (partCount > 0)
    619619                 out.write("" + (pc.count(h) * 100 / partCount));
     
    622622             out.write('\n');
    623623        }
    624         out.write("<tr><td align=\"center\"><b>Tunnels</b><td align=\"center\"><b>" + tunnelCount);
    625         out.write("</b><td>&nbsp;</td><td align=\"center\"><b>" + partCount);
    626         out.write("</b><td>&nbsp;</td></tr></table>\n");
     624        out.write("<tr class=\"tablefooter\"> <td align=\"center\"><b>Tunnels</b> <td align=\"center\"><b>" + tunnelCount);
     625        out.write("</b> <td>&nbsp;</td> <td align=\"center\"><b>" + partCount);
     626        out.write("</b> <td>&nbsp;</td></tr></table></div>\n");
    627627    }
    628628
Note: See TracChangeset for help on using the changeset viewer.