diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java index 426ff5c74..21d1edc27 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java +++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java @@ -97,7 +97,7 @@ public class I2PSnarkServlet extends HttpServlet { out.write("" + name + ""); } out.write("\n"); - out.write("
");
+        out.write("
\n" + - " \n" + + " \n" + " \n" + - " \n" + - " \n" + - " \n" + - " \n" + + " \n" + + " \n" + + " \n" + + " \n" + " \n" + "\n"); } @@ -486,9 +486,9 @@ public class I2PSnarkServlet extends HttpServlet { String rowClass = (row % 2 == 0 ? "snarkTorrentEven" : "snarkTorrentOdd"); out.write(""); - out.write("\n\t"); - out.write("\n\t"); - out.write("\n\t"); - out.write("\n\t"); - out.write("\n\t"); - out.write("\n\t"); - out.write(""); out.write("\n\t"); - out.write("\n\t"); out.write("\n\t"); - out.write("\n\t"); out.write("\n\t"); - out.write("\n\t"); - out.write("
");
         List msgs = _manager.getMessages();
         for (int i = msgs.size()-1; i >= 0; i--) {
             String msg = (String)msgs.get(i);
@@ -115,7 +115,7 @@ public class I2PSnarkServlet extends HttpServlet {
                 out.write("(Show Peers)
\n"); } out.write(TABLE_HEADER2); - out.write("
"); + out.write(""); if (_manager.util().connected()) out.write("Stop All"); @@ -135,12 +135,12 @@ public class I2PSnarkServlet extends HttpServlet { out.write(TABLE_EMPTY); } else if (snarks.size() > 1) { out.write("
Totals (" + snarks.size() + " torrents, " + stats[4] + " connected peers)Totals (" + snarks.size() + " torrents, " + stats[4] + " connected peers) " + formatSize(stats[0]) + "" + formatSize(stats[1]) + "" + formatSize(stats[2]) + "ps" + formatSize(stats[3]) + "ps" + formatSize(stats[0]) + "" + formatSize(stats[1]) + "" + formatSize(stats[2]) + "ps" + formatSize(stats[3]) + "ps 
"); + out.write(""); out.write(statusString + ""); + out.write(""); if (remaining == 0) out.write("\n\t"); - out.write(""); + out.write(""); if(isRunning && remainingSeconds > 0) out.write(DataHelper.formatDuration(remainingSeconds*1000)); // (eta 6h) out.write(""); + out.write(""); if (remaining > 0) out.write(formatSize(total-remaining) + "/" + formatSize(total)); // 18MB/3GB else out.write(formatSize(total)); // 3GB out.write("" + formatSize(uploaded) + ""); + out.write(""); if(isRunning && remaining > 0) out.write(formatSize(downBps) + "ps"); out.write(""); + out.write(""); if(isRunning) out.write(formatSize(upBps) + "ps"); out.write(""); + out.write(""); String parameters = "&nonce=" + _nonce + "&torrent=" + Base64.encode(snark.meta.getInfoHash()); if (showPeers) parameters = parameters + "&p=1"; @@ -567,7 +567,7 @@ public class I2PSnarkServlet extends HttpServlet { out.write("
"); out.write(""); + out.write(""); String ch = peer.toString().substring(0, 4); String client; if ("AwMD".equals(ch)) @@ -592,7 +592,7 @@ public class I2PSnarkServlet extends HttpServlet { out.write(""); out.write(""); + out.write(""); float pct = (float) (100.0 * (float) peer.completed() / snark.meta.getPieces()); if (pct == 100.0) out.write("Seed"); @@ -605,7 +605,7 @@ public class I2PSnarkServlet extends HttpServlet { out.write(""); out.write(""); + out.write(""); if (remaining > 0) { if (peer.isInteresting() && !peer.isChoked()) { out.write(""); @@ -620,7 +620,7 @@ public class I2PSnarkServlet extends HttpServlet { } } out.write(""); + out.write(""); if (pct != 100.0) { if (peer.isInterested() && !peer.isChoking()) { out.write(""); @@ -789,19 +789,19 @@ public class I2PSnarkServlet extends HttpServlet { private static final String TABLE_HEADER = "\n" + "\n" + - "\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n"; + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n"; private static final String TABLE_EMPTY = "" + "\n"; + " colspan=\"8\">No torrents loaded.\n"; private static final String TABLE_FOOTER = "
Status \n"; + "
Status \n"; private static final String TABLE_HEADER2 = "TorrentETADownloadedUploadedDown RateUp RateTorrentETADownloadedUploadedDown RateUp Rate
No torrents loaded.
\n"; diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigTunnelsHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigTunnelsHelper.java index 5c1462b57..aa2b6a1b0 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigTunnelsHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigTunnelsHelper.java @@ -14,7 +14,7 @@ public class ConfigTunnelsHelper extends HelperBase { public String getForm() { StringBuilder buf = new StringBuilder(1024); - buf.append("\n"); + buf.append("
\n"); TunnelPoolSettings exploratoryIn = _context.tunnelManager().getInboundSettings(); TunnelPoolSettings exploratoryOut = _context.tunnelManager().getOutboundSettings(); @@ -80,7 +80,7 @@ buf.append("\n"); // tunnel depth - buf.append("\n"); + buf.append("\n"); buf.append("\n"); + buf.append("\n"); buf.append("\n"); + buf.append("\n"); buf.append("\n"); + buf.append("\n"); buf.append("\n"); + buf.append("\n"); buf.append("\n"); - buf.append("\n"); + buf.append("\n"); buf.append("
InboundOutbound
Depth
Depth:
\n"); // tunnel depth variance - buf.append("
Randomization
Randomization:
\n"); // tunnel quantity - buf.append("
Quantity
Quantity:
\n"); // tunnel backup quantity - buf.append("
Backup quantity
Backup quantity:
\n"); // custom options - buf.append("
Inbound options:
Inbound options:
Outbound options:
Outbound options:

I2P Router Logs

+

Version:

Please include this information in bug reports.

@@ -31,6 +32,6 @@ jbigi <%=net.i2p.util.NativeBigInteger.loadStatus()%>

Service (Wrapper) logs:

- +
diff --git a/history.txt b/history.txt index 95c70541d..65095b60f 100644 --- a/history.txt +++ b/history.txt @@ -12,7 +12,7 @@ 2009-07-25 dr|z3d * Enhance the layout of /graphs.jsp * Fix some of the irks in I2PSnark UI. - * Ongoing tweaks and fiddles the the theme css. Not finished by any means! + * Ongoing tweaks and fiddles to the themes' css. Not finished by any means! 2009-07-24 zzz * Eepsite: Add Deutsch index page and css (thanks sperrbezirk!) diff --git a/installer/resources/themes/console/dark/console.css b/installer/resources/themes/console/dark/console.css index 651f534de..3709ef0b5 100644 --- a/installer/resources/themes/console/dark/console.css +++ b/installer/resources/themes/console/dark/console.css @@ -260,6 +260,8 @@ th { text-align: center; font-size: 8pt; background: #004 url('images/tabletitledark.png') repeat-x; + border-top: 1px solid #99f; + border-bottom: 1px solid #99f; } tr { @@ -283,15 +285,21 @@ tr:last-child { } */ td { - padding: 6px 3px 5px 3px; + padding: 6px 4px; color: #eef; vertical-align: middle; + border-top: 1px inset #006; + border-bottom: 1px outset #006; +} + +td img { + padding: 0 1px 0 2px; } tt { - font: bold 9pt "Lucida Console", "DejaVu Sans Mono", Courier, mono; + font: bold 8pt "Lucida Console", "DejaVu Sans Mono", Courier, mono; color: #FF0; - padding: 10px; + padding: 0 5px 2px 0; } div.main li { @@ -559,23 +567,33 @@ form {} .joblog { margin: 25px 0 25px 0; - padding: 20px 40px 20px 40px !important; + padding: 20px 30px 20px 30px !important; border: 1px solid #99f; background-color: #004; - background: url("images/lightbluetile.png"); + background: url("images/darkbluebg.png"); color: #dfd; border-radius: 4px; -moz-border-radius: 4px; -khtml-border-radius: 4px; text-align: justify; -moz-box-shadow: inset 0px 0px 1px 0px #eef; - overflow-x: scroll; + overflow-x: scroll; /* Opera fix */ } div.joblog:li { word-wrap: break-word !important; + text-align: justify; } .joblog:ul { word-wrap: break-word !important; + text-align: justify; +} + +.smallhead { + font-size: 8pt +} + +.mediumtags { + font-size: 9pt; } \ No newline at end of file diff --git a/installer/resources/themes/console/light/console.css b/installer/resources/themes/console/light/console.css index 82db53b56..6834d10ff 100644 --- a/installer/resources/themes/console/light/console.css +++ b/installer/resources/themes/console/light/console.css @@ -307,10 +307,13 @@ th { background: #b4c8ff url('images/tabletitlelight.png') repeat-x; text-align: center; font-size: 9pt; + border-bottom: 1px solid #001; + border-top: 1px solid #001; } tr { vertical-align: middle !important; + align: center; } tr:nth-child(even) { @@ -331,6 +334,8 @@ td { padding: 5px; color: #000; vertical-align: middle; + border-top: 1px inset #001; + border-bottom: 1px outset #99f; } tt { @@ -626,4 +631,14 @@ form {} .joblog:ul { word-wrap: break-word !important; +} + +.smallhead { + font-size: 7pt +} + +.mediumtags { + font-size: 8pt; + font-style: italic; + font-weight: bold; } \ No newline at end of file diff --git a/router/java/src/net/i2p/router/Router.java b/router/java/src/net/i2p/router/Router.java index c45dfb8ed..a79e2242a 100644 --- a/router/java/src/net/i2p/router/Router.java +++ b/router/java/src/net/i2p/router/Router.java @@ -762,7 +762,7 @@ public class Router { buf.append("\n

Most recent console messages:

\n"); for (Iterator iter = msgs.iterator(); iter.hasNext(); ) { String msg = (String)iter.next(); - buf.append("\n"); } diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 9314b6e7f..96204e4aa 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -18,7 +18,7 @@ public class RouterVersion { /** deprecated */ public final static String ID = "Monotone"; public final static String VERSION = CoreVersion.VERSION; - public final static long BUILD = 28; + public final static long BUILD = 29; /** for example "-test" */ public final static String EXTRA = "-rc"; public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA; diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java index 28dcd74e3..14fb279a5 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java @@ -1037,11 +1037,11 @@ public class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacade { } } - buf.append("
");
+            buf.append("
");
             appendLogMessage(buf, msg);
             buf.append("
"); + buf.append("
"); List versionList = new ArrayList(versions.objects()); if (versionList.size() > 0) { Collections.sort(versionList, Collections.reverseOrder()); - buf.append("\n"); + buf.append("
\n"); buf.append("\n"); for (String routerVersion : versionList) { int num = versions.count(routerVersion); @@ -1050,14 +1050,14 @@ public class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacade { } buf.append("
VersionCount
\n"); } - buf.append("
"); + buf.append(""); out.write(buf.toString()); buf.setLength(0); List countryList = new ArrayList(countries.objects()); if (countryList.size() > 0) { Collections.sort(countryList); - buf.append("\n"); + buf.append("
\n"); buf.append("\n"); for (String country : countryList) { int num = countries.count(country); diff --git a/router/java/src/net/i2p/router/peermanager/ProfileOrganizerRenderer.java b/router/java/src/net/i2p/router/peermanager/ProfileOrganizerRenderer.java index 57c85095f..ebb9d61c0 100644 --- a/router/java/src/net/i2p/router/peermanager/ProfileOrganizerRenderer.java +++ b/router/java/src/net/i2p/router/peermanager/ProfileOrganizerRenderer.java @@ -59,7 +59,7 @@ class ProfileOrganizerRenderer { StringBuilder buf = new StringBuilder(16*1024); buf.append("

Peer Profiles

\n"); buf.append("

Showing ").append(order.size()).append(" recent profiles, hiding ").append(peers.size()-order.size()).append(" older profiles

"); - buf.append("
CountryCount
"); + buf.append("
"); buf.append(""); buf.append(""); buf.append(""); @@ -98,9 +98,9 @@ class ProfileOrganizerRenderer { buf.append("\n"); prevTier = tier; - buf.append(""); - buf.append("\n"); + buf.append("\n"); buf.append(""); } buf.append("
PeerGroups (Caps)

"); + buf.append("
"); buf.append(_context.commSystem().renderPeerHTML(peer)); - buf.append(""); + buf.append(""); switch (tier) { case 1: buf.append("Fast, High Capacity"); break; @@ -137,7 +137,7 @@ class ProfileOrganizerRenderer { buf.append(bonus).append(')'); } buf.append("").append(num(prof.getIntegrationValue())); - buf.append(""); + buf.append(""); if (_context.shitlist().isShitlisted(peer)) buf.append("Shitlist"); if (prof.getIsFailing()) buf.append(" Failing"); if (_context.commSystem().wasUnreachable(peer)) buf.append(" Unreachable"); @@ -150,37 +150,41 @@ class ProfileOrganizerRenderer { buf.append(' ').append(fails).append('/').append(total).append(" Test Fails"); } buf.append(" profile"); - buf.append("/+-profile"); + buf.append(" +-
"); buf.append("

Floodfill and Integrated Peers

\n"); - buf.append(""); + buf.append("
"); buf.append(""); - buf.append(""); - buf.append(""); - buf.append(""); - buf.append(""); - buf.append(""); - buf.append(""); - buf.append(""); - buf.append(""); - buf.append(""); - buf.append(""); - buf.append(""); - buf.append(""); - buf.append(""); - buf.append(""); - buf.append(""); - buf.append(""); + buf.append(""); + buf.append(""); + buf.append(""); + buf.append(""); + buf.append(""); +// buf.append(""); + buf.append(""); +// buf.append(""); + buf.append(""); + buf.append(""); + buf.append(""); + buf.append(""); +// buf.append(""); + buf.append(""); +// buf.append(""); + buf.append(""); + buf.append(""); + buf.append(""); + buf.append(""); + buf.append(""); buf.append(""); for (Iterator iter = integratedPeers.iterator(); iter.hasNext();) { PeerProfile prof = (PeerProfile)iter.next(); Hash peer = prof.getPeer(); - buf.append(""); RouterInfo info = _context.netDb().lookupRouterInfoLocally(peer); diff --git a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java index 749d3df00..910db5e78 100644 --- a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java +++ b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java @@ -643,7 +643,7 @@ public class NTCPTransport extends TransportImpl { buf.append(" limit: ").append(getMaxConnections()); buf.append(" timeout: ").append(DataHelper.formatDuration(_pumper.getIdleTimeout())); buf.append("
\n"); - buf.append("
PeerCapsInteg. ValueLast Heard AboutLast Heard FromLast Successful SendLast Failed Send10m Resp. Time1h Resp. Time1d Resp. TimeSuccessful LookupsFailed LookupsNew StoresOld Stores1h Fail Rate1d Fail RatePeerCapsInteg. ValueLast Heard AboutLast Heard FromLast Successful SendLast Good SendLast Failed SendLast Bad Send10m Resp. Time1h Resp. Time1d Resp. TimeSuccessful LookupsGood LookupsFailed LookupsBad LookupsNew StoresOld Stores1h Fail Rate1d Fail Rate
"); + buf.append("
"); buf.append(_context.commSystem().renderPeerHTML(peer)); buf.append("
\n"); + buf.append("
\n"); buf.append(""); buf.append(""); buf.append(""); diff --git a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java index fbb68e6af..eae5b9c11 100644 --- a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java +++ b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java @@ -1767,7 +1767,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority buf.append(" limit: ").append(getMaxConnections()); buf.append(" timeout: ").append(DataHelper.formatDuration(_expireTimeout)); buf.append("
\n"); - buf.append("
PeerDirIdle
\n"); + buf.append("
\n"); buf.append(""); - buf.append(""); offsetTotal = offsetTotal + peer.getClockSkew(); long sendWindow = peer.getSendWindowBytes(); - buf.append(""); - buf.append(""); int rtt = peer.getRTT(); int rto = peer.getRTO(); - buf.append(""); - buf.append(""); - buf.append(""); - buf.append(""); - buf.append(""); @@ -1949,14 +1949,14 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority long resent = peer.getPacketsRetransmitted(); long dupRecv = peer.getPacketsReceivedDuplicate(); - buf.append(""); double recvDupPct = (double)peer.getPacketsReceivedDuplicate()/(double)peer.getPacketsReceived(); - buf.append(""); diff --git a/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java b/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java index dad07d282..99b1e58a3 100644 --- a/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java +++ b/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java @@ -438,7 +438,7 @@ public class TunnelPoolManager implements TunnelManagerFacade { List participating = _context.tunnelDispatcher().listParticipatingTunnels(); Collections.sort(participating, new TunnelComparator()); - out.write("

Participating tunnels:

Peer"); if (sortFlags != FLAG_ALPHA) buf.append(" V "); @@ -1862,7 +1862,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority if (idleIn < 0) idleIn = 0; if (idleOut < 0) idleOut = 0; - buf.append(""); + buf.append(""); buf.append(idleIn); buf.append("s/"); buf.append(idleOut); @@ -1871,7 +1871,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority int recvBps = (idleIn > 2 ? 0 : peer.getReceiveBps()); int sendBps = (idleOut > 2 ? 0 : peer.getSendBps()); - buf.append(""); + buf.append(""); buf.append(formatKBps(recvBps)); buf.append("/"); buf.append(formatKBps(sendBps)); @@ -1884,18 +1884,18 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority long uptime = now - peer.getKeyEstablishedTime(); - buf.append(""); + buf.append(""); buf.append(DataHelper.formatDuration(uptime)); buf.append(""); + buf.append(""); buf.append(peer.getClockSkew()); buf.append("s"); + buf.append(""); buf.append(sendWindow/1024); buf.append("K"); buf.append("/").append(peer.getConcurrentSends()); @@ -1903,26 +1903,26 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority buf.append("/").append(peer.getConsecutiveSendRejections()); buf.append(""); + buf.append(""); buf.append(peer.getSlowStartThreshold()/1024); buf.append("K"); + buf.append(""); buf.append(rtt); buf.append(""); + buf.append(""); buf.append(peer.getRTTDeviation()); buf.append(""); + buf.append(""); buf.append(rto); buf.append(""); + buf.append(""); buf.append(peer.getMTU()).append("/").append(peer.getReceiveMTU()); //.append('/'); @@ -1933,11 +1933,11 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority long sent = peer.getPacketsTransmitted(); long recv = peer.getPacketsReceived(); - buf.append(""); + buf.append(""); buf.append(sent); buf.append(""); + buf.append(""); buf.append(recv); buf.append(""); + buf.append(""); //buf.append(formatPct(sendLostPct)); buf.append(resent); // + "/" + peer.getPacketsPeriodRetransmitted() + "/" + sent); //buf.append(peer.getPacketRetransmissionRate()); buf.append(""); + buf.append(""); buf.append(dupRecv); //formatPct(recvDupPct)); buf.append("
\n"); + out.write("

Participating tunnels:

\n"); out.write("" + "\n"); @@ -524,7 +524,7 @@ public class TunnelPoolManager implements TunnelManagerFacade { if (info.getLength() > maxLength) maxLength = info.getLength(); } - out.write("
Receive onFrom" + "Send onToExpirationUsageRateRole
"); + out.write("
In/OutExpiryUsageGateway
"); if (maxLength > 3) { out.write(""); @@ -603,7 +603,7 @@ public class TunnelPoolManager implements TunnelManagerFacade { Collections.sort(peerList, new HashComparator()); out.write("

Tunnel Counts By Peer:

\n"); - out.write("
In/OutExpiryUsageGatewayParticipants
\n"); + out.write("
PeerExpl. + Client% of totalPart. from + to% of total
\n"); for (Hash h : peerList) { out.write("
PeerExpl. + Client% of totalPart. from + to% of total
"); out.write(netDbLink(h));