Changeset 24e83398


Ignore:
Timestamp:
Jul 31, 2009 7:15:35 PM (11 years ago)
Author:
z3d <z3d@…>
Branches:
master
Children:
219af360
Parents:
2f4c428
Message:

UI fixes: text boxes, buttons, radio/checkbox width. Enhanced /peers.jsp.

Files:
11 edited

Legend:

Unmodified
Added
Removed
  • apps/routerconsole/jsp/configstats.jsp

    r2f4c428 r24e83398  
    8282 <% while (statshelper.hasMoreStats()) {
    8383      while (statshelper.groupRequired()) { %>
    84  <tr><td align="left" colspan="3">
     84 <tr class="tablefooter"><td align="left" colspan="3">
    8585     <b><%=statshelper.getCurrentGroupName()%></b>
    8686     (<a href="javascript: void(null);" onclick="toggleAll('<%=statshelper.getCurrentGroupName()%>')">toggle all</a>)
    87      </td></tr><tr><td><b>Log</b></td><td><b>Graph</b></td><td></td></tr><%
     87     </td></tr><tr class="tablefooter"><td align="center"><b>Log</b></td><td align="center"><b>Graph</b></td><td></td></tr><%
    8888     } // end iterating over required groups for the current stat %>
    89  <tr><td align="left">
     89 <tr><td align="center">
    9090     <a name="<%=statshelper.getCurrentStatName()%>"></a>
    9191     <input id="<%=statshelper.getCurrentGroupName()%>" type="checkbox" class="optbox" name="statList" value="<%=statshelper.getCurrentStatName()%>" <%
    9292     if (statshelper.getCurrentIsLogged()) { %>checked="true" <% } %>/></td>
    93      <td align="left">
     93     <td align="center">
    9494     <% if (statshelper.getCurrentCanBeGraphed()) { %>
    9595       <input id="<%=statshelper.getCurrentGroupName()%>" type="checkbox" class="optbox" name="graphList" value="<%=statshelper.getCurrentGraphName()%>" <%
     
    9898     <%=statshelper.getCurrentStatDescription()%></td></tr><%
    9999    } // end iterating over all stats %>
    100  <tr><td colspan="3"><hr /></td></tr>
    101  <tr><td><input type="checkbox" class="optbox" name="explicitFilter" /></td>
     100 <tr><td colspan="3"></td></tr>
     101 <tr><td align="center"><input type="checkbox" class="optbox" name="explicitFilter" /></td>
    102102     <td colspan="2">Advanced filter:
    103103     <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>
     104 <tr><td colspan="3"></td></tr>
     105 <tr class="tablefooter"><td><input type="submit" name="shouldsave" value="Save changes" /> </td>
    106106     <td><input type="reset" value="Cancel" /></td><td></td></tr></form>
    107107 </table>
  • apps/routerconsole/jsp/summaryframe.jsp

    r2f4c428 r24e83398  
    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 {
  • history.txt

    r2f4c428 r24e83398  
     12009-07-31 dr|z3d
     2    * Resolve anomalous buttons and text fields in console ui.
     3    * Enhance presentation of data in /peers.jsp.
     4    * Fix themes issue with horizontal width of radio/checkbox icons.
     5      (Radioboxes currently non-functional in Opera).
     6    * Other cosmetic UI enhancements.
     7
    18* 2009-07-31  0.7.6 released
    29
  • installer/resources/themes/console/dark/console.css

    r2f4c428 r24e83398  
    6666
    6767div.toolbar a:hover, button:hover{
    68      border: 1px solid #eeeeff;
     68     border: 1px solid #f60;
    6969     background: #003;
    7070     color: #f60;
     
    256256
    257257th {
    258      padding: 6px 3px;
    259      color: #eef;
    260      text-align: center;
    261      font-size: 8pt;
     258     padding: 6px 2px;
     259     color: #eef;
     260     text-align: center;
     261     font-size: 9pt;
    262262     background: #004 url('images/tabletitledark.png') repeat-x;
    263263     border-top: 1px solid #99f;
    264      border-bottom: 1px solid #99f;     
     264     border-bottom: 1px solid #99f !important;     
     265     line-height: 110%;
    265266}
    266267
     
    286287*/
    287288td {
    288      padding: 6px 4px;
     289     padding: 6px 3px;
    289290     color: #eef;
    290291     vertical-align: middle;
     
    436437
    437438button {
     439     font: bold 9pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
    438440     border: 1px outset #ddddc0;
    439441     padding: 1px 3px;
     
    487489
    488490input {
     491     border: 1px outset #bbf;
    489492     background: #bbf;
    490493     color: #002;
    491494     margin: 5px;
    492495     font: bold 9pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
    493      border: 1px solid #99f;
    494496     padding: 1px 2px;
    495497     text-decoration: none;
    496498     min-width: 110px;
    497      opacity: 0.8;
     499     border-radius: 4px;
     500     -moz-border-radius: 4px;
     501     -khtml-border-radius: 4px;
    498502}
    499503
    500504input:hover {
    501      background: #eef;
    502      color: #001;
     505     background: #003;
     506     color: #f60;
    503507     border: 1px solid #f60;
    504508}
     
    506510input:active {
    507511     background: #002;
     512     color: #f30;
     513     border: 1px solid #f30;
     514}
     515
     516input:active {
     517     border: 1px inset #f60;
     518     background: #f60;
    508519     color: #fff;
    509      border: 1px solid #f60;
     520}
     521
     522input[type=text] {
     523     background: #002;
     524     color: #eef;
     525     margin: 5px 10px;
     526     padding: 4px 2px;
     527     font: bold 8pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
     528     border: 1px solid #bbf;
     529     text-decoration: none;
     530     border-radius: 4px;
     531     -moz-border-radius: 4px;
     532     -khtml-border-radius: 4px;
     533}
     534
     535input[type=text]:active, input[type=text]:hover {
     536     background: #001;
    510537}
    511538
     
    513540     background: #002;
    514541     color: #eef;
    515      margin: 5px;
    516      border: 1px solid #99f;
    517      border-radius: 0;
    518      -moz-border-radius: 0;
    519      -khtml-border-radius: 0;
     542     margin: 5px 10px;
     543     border: 1px solid #bbf;
     544     border-radius: 4px;
     545     -moz-border-radius: 4px;
     546     -khtml-border-radius: 4px;
    520547     min-width: 110px;
    521548     font: 9pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
     
    527554     color: #eef;
    528555     padding: 5px;
    529      margin: 15px 15px 5px 0px;
     556     margin: 10px;
    530557     border-radius: 4px;
    531558     -moz-border-radius: 4px;
     
    533560     font: 9pt "Lucida Console", "DejaVu Sans Mono", Courier, mono;
    534561     min-height: 100px;
    535      min-width: 100%;
     562     min-width: 97%;
    536563     text-align: left;
    537564     border: 1px solid #99f;
     
    598625     font-size: 9pt;
    599626}
     627
     628.optbox {
     629     min-width: 16px !important;
     630     max-width: 16px !important;     
     631     width: 16px !important;
     632     min-height: 16px;
     633     max-height: 16px;     
     634     height: 16px;
     635     opacity: 1.0;
     636     border: 0;
     637     margin: 0 0 0 10px;
     638}
     639
     640.optbox:hover {
     641     min-width: 16px !important;
     642     max-width: 16px !important;     
     643     width: 16px !important;
     644     min-height: 16px;
     645     max-height: 16px;     
     646     height: 16px;
     647     opacity: 1.0;
     648     border: 0;
     649     margin: 0 0 0 10px;
     650}
     651
     652.cells {
     653     border: 1px inset #005;
     654     border-left: 1px outset #002;     
     655}
     656
     657.tablefooter tr, .tablefooter td {
     658     background: #004 url('images/tabletitledark.png') repeat-x !important;
     659     border-top: 1px solid #99f;
     660     border-bottom: 1px solid #99f !important;     
     661     font-size: 8pt;
     662     line-height: 110%;
     663}
  • installer/resources/themes/console/light/console.css

    r2f4c428 r24e83398  
    300300     font-size: 7pt;
    301301     background: #b4c8ff url('images/tabletitlelight.png') repeat-x;
     302     font: 7pt/130% "Lucida Sans Unicode", Verdana, Bitstream Vera Sans", Tahoma, Helvetica, sans-serif;
    302303}
    303304
     
    308309     text-align: center;
    309310     font-size: 9pt;
    310      border-bottom: 1px solid #001;
    311      border-top: 1px solid #001;
     311     line-height: 110%;
     312     border-bottom: 1px solid #001 !important;
     313     border-top: 1px solid #001 !important;
    312314}
    313315
     
    332334*/
    333335td {
    334      padding: 5px;
     336     padding: 5px 3px;
    335337     color: #000;
    336338     vertical-align: middle;
     
    474476}
    475477
    476 button {
     478button, button:visited {
     479     font: bold 9pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
    477480     border: 1px outset #ddddc0;
    478481     padding: 1px 3px;
     
    527530     text-decoration: none;
    528531     min-width: 110px;
    529      opacity: 0.8;
    530 }
     532}
     533
     534input, input:visited {
     535     border: 1px outset #bbf;
     536     background: #bbf;
     537     color: #001;
     538     margin: 5px;
     539     font: bold 8pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
     540     padding: 1px 2px;
     541     text-decoration: none;
     542     min-width: 110px;
     543     border-radius: 4px;
     544     -moz-border-radius: 4px;
     545     -khtml-border-radius: 4px;
     546}
     547
    531548
    532549input:hover {
     
    542559     border: 1px solid #f60;
    543560     opacity: 1.0;
     561}
     562
     563input[type=text] {
     564     background: #eef;
     565     color: #001;
     566     margin: 5px 10px 5px 10px;
     567     padding: 4px 2px;
     568     font: bold 8pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
     569     border: 1px solid #001;
     570     text-decoration: none;
    544571}
    545572
     
    567594     min-width: 110px;
    568595     font: 9pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
     596     border-radius: 4px;
     597     -moz-border-radius: 4px;
     598     -khtml-border-radius: 4px;
    569599}
    570600
    571601textarea {
    572602     padding: 5px;
    573      margin: 15px 15px 5px 0px;
     603     margin: 5px 15px 5px 10px;
    574604     background: #eef;
    575605     color: #003;
     
    579609     font: 8pt "Lucida Console", "DejaVu Sans Mono", Courier, mono;
    580610     min-height: 100px;
    581      min-width: 100%;
     611     min-width: 97%;
    582612     border: 1px solid #001;
    583613}
     
    665695     border: 0;
    666696}
     697
     698.cells {
     699     border-left: 1px outset #bbf;
     700     border-top: 1px inset #99f !important;
     701     border-bottom: 1px inset #99f !important;
     702}
     703
     704.tablefooter {
     705     background: #b4c8ff url('images/tabletitlelight.png') repeat-x;
     706}
     707
     708.tablefooter tr, .tablefooter td {
     709     background: #b4c8ff url('images/tabletitlelight.png') repeat-x;
     710     border-top: 1px solid #001;
     711     border-bottom: 1px solid #001 !important;     
     712     padding: 8px 2px !important;
     713     font-size: 8pt;
     714     line-height: 110%;
     715}
  • readme.html

    r2f4c428 r24e83398  
    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/RouterVersion.java

    r2f4c428 r24e83398  
    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 = 02;
    2222    /** for example "-test" */
    23     public final static String EXTRA = "";
     23    public final static String EXTRA = "-zed";
    2424    public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA;
    2525    public static void main(String args[]) {
  • router/java/src/net/i2p/router/peermanager/ProfileOrganizerRenderer.java

    r2f4c428 r24e83398  
    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/ntcp/NTCPTransport.java

    r2f4c428 r24e83398  
    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\">");
     668            buf.append("</td> <td class=\"cells\" align=\"center\">");
    669669            if (con.isInbound())
    670670                buf.append("<img src=\"/themes/console/images/inbound.png\" alt=\"Inbound\" title=\"Inbound\"/>");
    671671            else
    672672                buf.append("<img src=\"/themes/console/images/outbound.png\" alt=\"Outbound\" title=\"Outbound\"/>");
    673             buf.append("</td><td align=\"right\">");
     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</td><td align=\"right\">");
     676            buf.append("s</td> <td class=\"cells\" align=\"center\">");
    677677            if (con.getTimeSinceReceive() < 10*1000) {
    678678                buf.append(formatRate(con.getRecvRate()/1024));
     
    689689            }
    690690            buf.append("K/s");
    691             buf.append("</td><td align=\"right\">").append(DataHelper.formatDuration(con.getUptime()));
     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("</td><td align=\"right\">").append(con.getClockSkew());
    695             buf.append("s</td><td align=\"right\">").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("</td><td align=\"right\">").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("</td><td align=\"right\">No messages");
     701                buf.append("</td> <td class=\"cells\" align=\"center\">No messages");
    702702            } else {
    703                 buf.append("</td><td align=\"right\">").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("</td><td align=\"center\">").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("</td><td align=\"center\">No");
     710                buf.append("</td> <td class=\"cells\" align=\"center\">No");
    711711            } else {
    712                 buf.append("</td><td>For ").append(DataHelper.formatDuration(readTime));
     712                buf.append("</td> <td class=\"cells\">For ").append(DataHelper.formatDuration(readTime));
    713713            }
    714714            buf.append("</td></tr>\n");
     
    718718
    719719        if (peers.size() > 0) {
    720             buf.append("<tr><td colspan=\"11\"><hr /></td></tr>\n");
    721             buf.append("<tr><td align=\"center\"><b>").append(peers.size()).append(" peers</b></td><td>&nbsp;</td><td>&nbsp;");
    722             buf.append("</td><td align=\"right\"><b>").append(formatRate(bpsRecv/1024)).append("/").append(formatRate(bpsSend/1024)).append("K/s</b>");
    723             buf.append("</td><td align=\"right\"><b>").append(DataHelper.formatDuration(totalUptime/peers.size()));
    724             buf.append("</b></td><td align=\"right\"><b>").append(peers.size() > 0 ? DataHelper.formatDuration(offsetTotal*1000/peers.size()) : "0ms");
    725             buf.append("</b></td><td align=\"right\"><b>").append(totalSend).append("</b></td><td align=\"right\"><b>").append(totalRecv);
    726             buf.append("</b></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        }
  • router/java/src/net/i2p/router/transport/udp/UDPTransport.java

    r2f4c428 r24e83398  
    17721772        if (sortFlags != FLAG_ALPHA)
    17731773            buf.append(" <a href=\"").append(urlBase).append("?sort=0\">V</a> ");
    1774         buf.append("</th><th class=\"smallhead\" nowrap><a href=\"#def.dir\">Dir/Intro</a></th><th class=\"smallhead\" nowrap><a href=\"#def.idle\">Idle</a><br>");
     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("/");
     
    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 nowrap>");
     1827            buf.append("</td> <td class=\"cells\" nowrap align=\"left\">");
    18281828            if (peer.isInbound())
    18291829                buf.append("<img src=\"/themes/console/images/inbound.png\" alt=\"Inbound\" title=\"Inbound\"/> ");
     
    18631863            if (idleOut < 0) idleOut = 0;
    18641864           
    1865             buf.append("<td align=\"right\" >");
     1865            buf.append(" <td class=\"cells\" align=\"right\" >");
    18661866            buf.append(idleIn);
    18671867            buf.append("s/");
     
    18721872            int sendBps = (idleOut > 2 ? 0 : peer.getSendBps());
    18731873           
    1874             buf.append("<td align=\"right\" nowrap>");
     1874            buf.append(" <td class=\"cells\" align=\"right\" nowrap>");
    18751875            buf.append(formatKBps(recvBps));
    18761876            buf.append("/");
     
    18851885            long uptime = now - peer.getKeyEstablishedTime();
    18861886           
    1887             buf.append("<td align=\"right\" >");
     1887            buf.append(" <td class=\"cells\" align=\"center\" >");
    18881888            buf.append(DataHelper.formatDuration(uptime));
    18891889            buf.append("</td>");
    18901890           
    1891             buf.append("<td align=\"right\" >");
     1891            buf.append(" <td class=\"cells\" align=\"center\" >");
    18921892            buf.append(peer.getClockSkew());
    18931893            buf.append("s</td>");
     
    18961896            long sendWindow = peer.getSendWindowBytes();
    18971897           
    1898             buf.append("<td align=\"right\" >");
     1898            buf.append(" <td class=\"cells\" align=\"right\" >");
    18991899            buf.append(sendWindow/1024);
    19001900            buf.append("K");
     
    19041904            buf.append("</td>");
    19051905
    1906             buf.append("<td align=\"right\" >");
     1906            buf.append(" <td class=\"cells\" align=\"center\" >");
    19071907            buf.append(peer.getSlowStartThreshold()/1024);
    19081908            buf.append("K</td>");
     
    19111911            int rto = peer.getRTO();
    19121912           
    1913             buf.append("<td align=\"right\" >");
     1913            buf.append(" <td class=\"cells\" align=\"right\" >");
    19141914            buf.append(rtt);
    19151915            buf.append("</td>");
    19161916           
    1917             buf.append("<td align=\"right\" >");
     1917            buf.append(" <td class=\"cells\" align=\"right\" >");
    19181918            buf.append(peer.getRTTDeviation());
    19191919            buf.append("</td>");
    19201920
    1921             buf.append("<td align=\"right\" >");
     1921            buf.append(" <td class=\"cells\" align=\"right\" >");
    19221922            buf.append(rto);
    19231923            buf.append("</td>");
    19241924           
    1925             buf.append("<td align=\"right\" >");
     1925            buf.append(" <td class=\"cells\" align=\"right\" >");
    19261926            buf.append(peer.getMTU()).append("/").append(peer.getReceiveMTU());
    19271927           
     
    19341934            long recv = peer.getPacketsReceived();
    19351935           
    1936             buf.append("<td align=\"right\" >");
     1936            buf.append(" <td class=\"cells\" align=\"center\" >");
    19371937            buf.append(sent);
    19381938            buf.append("</td>");
    19391939           
    1940             buf.append("<td align=\"right\" >");
     1940            buf.append(" <td class=\"cells\" align=\"center\" >");
    19411941            buf.append(recv);
    19421942            buf.append("</td>");
     
    19501950            long dupRecv = peer.getPacketsReceivedDuplicate();
    19511951           
    1952             buf.append("<td align=\"right\" >");
     1952            buf.append(" <td class=\"cells\" align=\"center\" >");
    19531953            //buf.append(formatPct(sendLostPct));
    19541954            buf.append(resent); // + "/" + peer.getPacketsPeriodRetransmitted() + "/" + sent);
     
    19571957           
    19581958            double recvDupPct = (double)peer.getPacketsReceivedDuplicate()/(double)peer.getPacketsReceived();
    1959             buf.append("<td align=\"right\" >");
     1959            buf.append(" <td class=\"cells\" align=\"center\" >");
    19601960            buf.append(dupRecv); //formatPct(recvDupPct));
    19611961            buf.append("</td>");
     
    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\" nowrap><b>");
     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));
    19871987        buf.append("K/s</b></td>");
    1988         buf.append("     <td align=\"right\"><b>").append(numPeers > 0 ? DataHelper.formatDuration(uptimeMsTotal/numPeers) : "0s");
    1989         buf.append("</b></td><td align=\"right\"><b>").append(numPeers > 0 ? DataHelper.formatDuration(offsetTotal*1000/numPeers) : "0ms").append("</b></td>\n");
    1990         buf.append("     <td align=\"right\"><b>");
     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("</b></td><td>&nbsp;</td>\n");
    1993         buf.append("     <td align=\"right\"><b>");
     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("</b></td><td align=\"right\">&nbsp;</td><td align=\"right\"><b>");
     1995        buf.append("</b></td> <td>&nbsp;</td> <td align=\"center\"><b>");
    19961996        buf.append(numPeers > 0 ? rtoTotal/numPeers : 0);
    1997         buf.append("</b></td>\n     <td>&nbsp;</td><td align=\"right\"><b>");
    1998         buf.append(sendTotal).append("</td></b><td align=\"right\"><b>").append(recvTotal).append("</b></td>\n");
    1999         buf.append("     <td align=\"right\"><b>").append(resentTotal);
    2000         buf.append("</b></td><td align=\"right\"><b>").append(dupRecvTotal).append("</b></td>\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");
    20012001        buf.append(" </tr></table></p><p>\n");
    20022002        long bytesTransmitted = _context.bandwidthLimiter().getTotalAllocatedOutboundBytes();
     
    20272027    }
    20282028   
    2029     private static final String KEY = "<h3>Explanation of abbreviated terms used.</h3><div class=\"configure\">" +
     2029    private static final String KEY = "<h3>Definitions:</h3><div class=\"configure\">" +
    20302030        "<br><b id=\"def.peer\">Peer</b>: the remote peer.<br />\n" +
    20312031        "<b id=\"def.dir\">Dir</b>: v means they offer to introduce us, ^ means we offer to introduce them.<br />\n" +
     
    20352035        "<b id=\"def.skew\">Skew</b>: the skew says how far off the other user's clock is, relative to your own.<br />\n" +
    20362036        "<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" +
     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" +
    20402040        "<b id=\"def.ssthresh\">Sst</b>: the slow start threshold helps make sure the cwnd doesn't grow too fast.<br />\n" +
    20412041        "<b id=\"def.rtt\">Rtt</b>: the round trip time is how long it takes to get an acknowledgement of a packet.<br />\n" +
  • router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java

    r2f4c428 r24e83398  
    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            }
     
    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>\n");
    627627    }
    628628
Note: See TracChangeset for help on using the changeset viewer.