From e60e29b70f00ff647c2a26bc62c9867c52846cff Mon Sep 17 00:00:00 2001 From: z3d Date: Fri, 24 Jul 2009 00:08:08 +0000 Subject: [PATCH] Tidy up jobs.jsp a little and other to various ui elements. --- build.xml | 8 +- history.txt | 5 + .../resources/themes/console/dark/console.css | 40 +++++++- .../console/dark/images/darkbluetile.png | Bin 298 -> 1680 bytes .../themes/console/images/olivegreentile.png | Bin 0 -> 1515 bytes .../themes/console/light/console.css | 44 +++++++- .../themes/console/light/default.css | 94 +++++++++++++++++- installer/resources/themes/console/snark.css | 1 + router/java/src/net/i2p/router/JobQueue.java | 14 +-- .../src/net/i2p/router/RouterVersion.java | 2 +- .../router/tunnel/pool/TunnelPoolManager.java | 16 +-- 11 files changed, 200 insertions(+), 24 deletions(-) create mode 100644 installer/resources/themes/console/images/olivegreentile.png diff --git a/build.xml b/build.xml index a4a78f2b7..dc8529194 100644 --- a/build.xml +++ b/build.xml @@ -325,8 +325,10 @@ + @@ -342,7 +344,11 @@ - + + + + + diff --git a/history.txt b/history.txt index 98b76bdfa..892668197 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,8 @@ +2009-07-23 dr|z3d + * Include additional tile graphics and I2PSnark header logo in /console/images/ + * Tidy up some layout irks; add some last minute 0.7.6 pre-release sparkle! + * Ongoing overhaul of the I2PSnark UI. + 2009-07-23 sponge * Add bob.i2p and sponge.i2p keys to hosts.txt diff --git a/installer/resources/themes/console/dark/console.css b/installer/resources/themes/console/dark/console.css index a53722edf..6ce921bd4 100644 --- a/installer/resources/themes/console/dark/console.css +++ b/installer/resources/themes/console/dark/console.css @@ -222,7 +222,7 @@ table { } th { - padding: 8px; + padding: 6px 3px; color: #eef; text-align: center; font-size: 8pt; @@ -250,7 +250,7 @@ tr:last-child { } */ td { - padding: 5px 10px; + padding: 6px 3px 5px 3px; color: #eef; vertical-align: middle; } @@ -509,4 +509,38 @@ form {} -khtml-border-radius: 4px; border: 1px solid #001; display: none; -} \ No newline at end of file +} + +.statusnotes { + font-style: italic; + font-size: 8pt; + font-color: #700; + text-align: center; + border-radius: 4px; + -moz-border-radius: 4px; + -khtml-border-radius: 4px; + border: 0 !important; +} + +.joblog { + margin: 25px 0 25px 0; + padding: 20px 40px 20px 40px !important; + border: 1px solid #eef; + background-color: #004; + background: url("images/lightbluetile.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; + } + + div.joblog:li { + word-wrap: break-word !important; +} + + .joblog:ul { + word-wrap: break-word !important; +} \ No newline at end of file diff --git a/installer/resources/themes/console/dark/images/darkbluetile.png b/installer/resources/themes/console/dark/images/darkbluetile.png index 89df70b960574329efe68890e5c3303e8bbefef4..5f7d1a01ffdb0f1923f280ab2fcd04cb3e6159e4 100644 GIT binary patch literal 1680 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yv7|ftIx;Y9?C1WI$O_~e1o(uw zGBCI>FoZBLI5RK+*(MAOp$rVh3=F0W3~mezP7DmeA*>sLa-l36n}Hm*jc!fNKy?h9 z1s;*b3=Dh+L6~vJ#O${W46NTgT^vIy;@;jl*ehZvzNne{J+1d{tdEEbkbj&!bP$g#@e(kd%N3#J0b<7NS8JU;maJjkTX4M3qj3iGn zZ?#;G4%H;jN}ZV{T6Z42a6FP@+aZ?{^ycNB^-LL60*2B2i`X|loRDh)HG`u$CHgPV zAq6N(QVXe?He2e#oTEaU=N>)Ppf)XKW6Gtrh6tr;Q;rLzZ#*Kj@yUd{_G}+FRNs(n zaa21x&+jqFq>l2>w|ZaNDA{Fx?{}1F0V5UbydyAkC&gAK2(TqWk?}*t!a0G3n?e&jfMrBa=Qw7`;?mcJLx7Yz1sjEV*&{=Qc@5Pz%_0@V4h1 zZiIUj?kJGcj2B+o3^G$^+Kjh4VQeNFRk~Fto3Q{xZi&q_i*D6v9jfhb{uy?(-#vUz zfyYSmTZvRV$Rx4jy*z!JfezUmaW1L!*rap6rFL(B#Q1i?T?w|6ebT^a@3_gcNN}D= zb=mP%zt6Lq*mlfV%YG4*7-n$hT1)}P+82eSZE`Na7(SV_4IE>WJoy*HywD-1(tWdG z8N1--uL_bEtfZrDU9SbdiIW6IBPg&^zWZ2z{S4)_6dHk}6&Ro=LX>eSa-4J2NO;$u zP+$@)mUlT5cO<9zutHcIB$|yCfvIAq!EDau-$ZuT^8-U2Bs1Zz@!Kos_0Q+5TUjNc zZmRYetP#kuy)%~O0C+uV-kynnXU)aqsFg1Oq(u*44X<o4V(T<4+3&p(8l!={=TyrksQe}Md_pm?y3u^yqr~UZ9II`#X&c_cQ z8d%yK$(elcaY{nLJDx|!3*UKt+^_PLJ)=&hPUd^`!8-o)``OtN4GgOVH}moVlUDbP z+yV)gGykqO|IrSUnsfBQi6{EzhW@6Ukg_N3(EZ-eE43Ye{RJkGBROn^bB>*w_%#Na znI@%uxEwAA&EJ-_svi68Ve#fsW-uL^Q7-Y+{W=8;@8#=RUVewg19A}0Eit@3_sbd; zA@5BQlbU|$_HBnI<@K9QEubaXOp$7<`)16rP_FD|co)NY>HT?lag+NMS{QiDI_Mu? y2`vqte3`27_aD3fxOvbU>SRyjA2+qn^9$Es*rGp~V==H=VDNPHb6Mw<&;$Vg$0V;MYM{an^LB{Ts5vJgcM diff --git a/installer/resources/themes/console/images/olivegreentile.png b/installer/resources/themes/console/images/olivegreentile.png new file mode 100644 index 0000000000000000000000000000000000000000..e63010c9d6d355a991044d2fd0f659c229900843 GIT binary patch literal 1515 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvEiGhJ})y~t$fE>;OkH}&M2EM}}%y>M1MG6B0 z>s(J4$B>FSZ*QN^3n`U2_R-R~)p5h+Rop&XbWeyXtP^!9Q`=<_*C75tw8C{=$LUU}tQg7v)OSu-t{7q^vL>25rBe)Er~FCTuHzFq%*jrtPBpTBf z-o^zAVj@SHnj!)OxVe%X9d$H1SXt>II7z>LpT+MFch9z3w|?Gzv;BSVoayG`dExWk zw%%TQvG{FKb>aIz+qRae+TYLDzb7@%dwbMs;d$oKtHZgUv%g&`9X$7XH2=D-=X>qL z*Z0JFAyLI1`v&L^; ze!iMGKl<)GZJ^p?4}Ul3%uDp2KVSRH=bJW%=h^L-|90-q-*aF7#;MOvzYu-tOL{jP;?s=l;u;`g1uZ`uOY+1tP9?cevpY~EbEzds(m>)gNX+`lXDqaXk7?@dqt z^v~qI{`B9sgTEVB)?2+$|9nsPyL;yU&3C3t-wnHGzWUeFp!__$+S;8LEo<`o-VCcdZ~4mluRH&Gmigb3fBW_6p7>jp zFHc^(xn;lEE$R8Se=;TKK2I=lNPnGi(Q+^UT;b3cHtSr{zcIYnQ_vG6^6b1&nHaG2X7F_Nb6Mw<&;$SofRa!E literal 0 HcmV?d00001 diff --git a/installer/resources/themes/console/light/console.css b/installer/resources/themes/console/light/console.css index e0814b9ff..d876cc7b3 100644 --- a/installer/resources/themes/console/light/console.css +++ b/installer/resources/themes/console/light/console.css @@ -268,7 +268,7 @@ table { } th { - padding: 8px; + padding: 6px 2px; color: #000; background: #b4c8ff url('images/tabletitlelight.png') repeat-x; text-align: center; @@ -354,6 +354,12 @@ a:hover{ font-weight: bold; } +a:active{ + color: #f93; + text-decoration: underline; + font-weight: bold; +} + .links { list-style: url(images/link.png); margin: 10px 5px 0 0px; @@ -550,4 +556,38 @@ form {} -khtml-border-radius: 4px; border: 1px solid #001; display: none; -} \ No newline at end of file +} + +.statusnotes { + font-style: italic; + font-size: 8pt; + font-color: #700 !important; + text-align: center; + border-radius: 4px; + -moz-border-radius: 4px; + -khtml-border-radius: 4px; + border: 0; +} + +.joblog { + margin: 25px 0 25px 0; + padding: 20px 40px 20px 40px !important; + border: 1px solid #003; + background-color: #004; + background: url("/themes/console/images/olivegreentile.png"); + color: #001; + 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; + } + + div.joblog:li { + word-wrap: break-word !important; +} + + .joblog:ul { + word-wrap: break-word !important; +} \ No newline at end of file diff --git a/installer/resources/themes/console/light/default.css b/installer/resources/themes/console/light/default.css index 47589e3b1..57e5c2739 100644 --- a/installer/resources/themes/console/light/default.css +++ b/installer/resources/themes/console/light/default.css @@ -73,6 +73,7 @@ textarea, input, select, button, a { button { float: none; + text-decoration: none; } textarea { @@ -172,18 +173,21 @@ hr { border-radius: 4px; margin-top: 8px; background: url(images/tabletitlelight.png) 0 0 repeat: x !important; + text-decoration: none; } .control:active { border: 1px inset; background-color: #003; color: #ff6600; + text-decoration: none; } .control:hover { border: 1px solid #eeeeff; background-color: #f60; color: #fff !important; + text-decoration: none; } .panel { @@ -199,6 +203,7 @@ hr { border-radius: 4px; border: 1px solid #002; padding: 10px 20px; + -moz-box-shadow: inset 0px 0px 1px 0px #002; } .panel .footer { @@ -239,15 +244,75 @@ hr { #globalOperationsPanel { background-color: #ddddff; - border: 1px solid #f22; - -moz-box-shadow: inset 0px 0px 4px 0px #f00; + border: 1px solid #003; padding: 5px 20px 11px 10px; + background: url("/themes/console/images/yellowtile.png") !important; + -moz-box-shadow: inset 0px 0px 1px 0px #fff; } #globalOperationsPanel .control { min-width: 120px; } +#globalOperationsPanel .control:link { + min-width: 120px; +} + + +globalOperationsPanel .control:link { + min-width: 120px; + margin: 4px 0 0 4px !important; + padding: 2px; + overflow: hidden; + font-weight: bold; + background-color: #bbbbff; + color: black; + border: 1px outset #ddddc0; + text-align: center; + white-space: nowrap; + -moz-border-radius: 4px; + -khtml-border-radius: 4px; + border-radius: 4px; + margin-top: 8px; + background: url(images/tabletitlelight.png) 0 0 repeat: x !important; +} + + +globalOperationsPanel .control:visited { + min-width: 120px; + margin: 4px 0 0 4px !important; + padding: 2px; + overflow: hidden; + font-weight: bold; + background-color: #bbbbff; + color: black; + border: 1px outset #ddddc0; + text-align: center; + white-space: nowrap; + -moz-border-radius: 4px; + -khtml-border-radius: 4px; + border-radius: 4px; + margin-top: 8px; + background: url(images/tabletitlelight.png) 0 0 repeat: x !important; +} + +globalOperationsPanel .control:hover { + min-width: 120px; + margin: 4px 0 0 4px !important; + padding: 2px; + overflow: hidden; + font-weight: bold; + background-color: #003; + color: #f60; + border: 1px outset #fff; + text-align: center; + white-space: nowrap; + -moz-border-radius: 4px; + -khtml-border-radius: 4px; + border-radius: 4px; + margin-top: 8px; + background: url(images/tabletitlelight.png) 0 0 repeat: x !important; +} .header { -moz-border-radius: 4px; -khtml-border-radius: 4px; @@ -265,4 +330,29 @@ select { min-width: 270px; font-size: 8pt; max-height: 24px; +} + +a:link{ + color: #007; + text-decoration: none; + font-weight: bold; + word-wrap: break-word; +} + +a:visited{ + color: #606; + text-decoration: none; + font-weight: bold; +} + +a:hover{ + color: #f60; + text-decoration: underline; + font-weight: bold; +} + +a:active{ + color: #f93; + text-decoration: underline; + font-weight: bold; } \ No newline at end of file diff --git a/installer/resources/themes/console/snark.css b/installer/resources/themes/console/snark.css index b0f30c627..bbac3f940 100644 --- a/installer/resources/themes/console/snark.css +++ b/installer/resources/themes/console/snark.css @@ -117,6 +117,7 @@ table { padding: 0px; border-width: 0px; border-spacing: 0px; + background-color: #f9f; } th { diff --git a/router/java/src/net/i2p/router/JobQueue.java b/router/java/src/net/i2p/router/JobQueue.java index f14cb5146..43659a4d2 100644 --- a/router/java/src/net/i2p/router/JobQueue.java +++ b/router/java/src/net/i2p/router/JobQueue.java @@ -608,29 +608,29 @@ public class JobQueue { StringBuilder buf = new StringBuilder(32*1024); buf.append("

JobQueue

"); - buf.append("# runners: ").append(numRunners).append(" [states="); + buf.append("
# runners: ").append(numRunners).append(" [states="); if (states != null) for (int i = 0; i < states.length; i++) buf.append(states[i]).append(" "); - buf.append("]
\n"); + buf.append("]

\n"); long now = _context.clock().now(); - buf.append("# active jobs: ").append(activeJobs.size()).append("
    \n"); + buf.append("
    # active jobs: ").append(activeJobs.size()).append("
      \n"); for (int i = 0; i < activeJobs.size(); i++) { Job j = (Job)activeJobs.get(i); buf.append("
    1. [started ").append(now-j.getTiming().getStartAfter()).append("ms ago]: "); buf.append(j.toString()).append("
    2. \n"); } buf.append("
    \n"); - buf.append("# just finished jobs: ").append(justFinishedJobs.size()).append("
      \n"); + buf.append("
      # just finished jobs: ").append(justFinishedJobs.size()).append("
        \n"); for (int i = 0; i < justFinishedJobs.size(); i++) { Job j = (Job)justFinishedJobs.get(i); buf.append("
      1. [finished ").append(now-j.getTiming().getActualEnd()).append("ms ago]: "); buf.append(j.toString()).append("
      2. \n"); } buf.append("
      \n"); - buf.append("# ready/waiting jobs: ").append(readyJobs.size()).append(" (lots of these mean there's likely a big problem)
        \n"); + buf.append("
        # ready/waiting jobs: ").append(readyJobs.size()).append(" (lots of these mean there's likely a big problem)
          \n"); for (int i = 0; i < readyJobs.size(); i++) { Job j = (Job)readyJobs.get(i); buf.append("
        1. [waiting "); @@ -641,7 +641,7 @@ public class JobQueue { buf.append("
        \n"); out.flush(); - buf.append("# timed jobs: ").append(timedJobs.size()).append("
          \n"); + buf.append("
          # timed jobs: ").append(timedJobs.size()).append("
            \n"); TreeMap ordered = new TreeMap(); for (int i = 0; i < timedJobs.size(); i++) { Job j = (Job)timedJobs.get(i); @@ -653,7 +653,7 @@ public class JobQueue { buf.append("
          1. ").append(j.getName()).append(" in "); buf.append(DataHelper.formatDuration(time)).append("
          2. \n"); } - buf.append("
          \n"); + buf.append("
\n"); out.write("\n"); out.flush(); diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 40028c0e0..67b9de3fe 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 = 19; + public final static long BUILD = 20; /** for example "-test" */ public final static String EXTRA = ""; public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA; 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 1c164188f..dad07d282 100644 --- a/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java +++ b/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java @@ -494,8 +494,8 @@ public class TunnelPoolManager implements TunnelManagerFacade { processed += cfg.getProcessedMessagesCount(); } out.write("\n"); - out.write("
Inactive participating tunnels: " + inactive + "
\n"); - out.write("Lifetime bandwidth usage: " + DataHelper.formatSize(processed*1024) + "B

\n"); + out.write("
Inactive participating tunnels: " + inactive + "
\n"); + out.write("
Lifetime bandwidth usage: " + DataHelper.formatSize(processed*1024) + "B
\n"); renderPeers(out); } @@ -524,7 +524,7 @@ public class TunnelPoolManager implements TunnelManagerFacade { if (info.getLength() > maxLength) maxLength = info.getLength(); } - out.write(""); + out.write("
DirectionExpirationUsageGateway
"); if (maxLength > 3) { out.write(""); @@ -573,19 +573,19 @@ public class TunnelPoolManager implements TunnelManagerFacade { if (in != null) { List pending = in.listPending(); if (pending.size() > 0) - out.write("
Build in progress: " + pending.size() + " inbound

\n"); + out.write("
Build in progress: " + pending.size() + " inbound
\n"); live += pending.size(); } if (outPool != null) { List pending = outPool.listPending(); if (pending.size() > 0) - out.write("
Build in progress: " + pending.size() + " outbound

\n"); + out.write("
Build in progress: " + pending.size() + " outbound
\n"); live += pending.size(); } if (live <= 0) - out.write("
No tunnels, waiting for the grace period to end.

\n"); - out.write("
Lifetime bandwidth usage: " + DataHelper.formatSize(processedIn*1024) + "B in, " + - DataHelper.formatSize(processedOut*1024) + "B out

"); + out.write("
NNo tunnels; waiting for the grace period to end.
\n"); + out.write("
Lifetime bandwidth usage: " + DataHelper.formatSize(processedIn*1024) + "
"); } private void renderPeers(Writer out) throws IOException {
In/OutExpiryUsageGatewayParticipants