Tidy up jobs.jsp a little and other to various ui elements.

This commit is contained in:
z3d
2009-07-24 00:08:08 +00:00
parent d84352896f
commit e60e29b70f
11 changed files with 200 additions and 24 deletions

View File

@ -325,8 +325,10 @@
<!-- Add extricated I2PSnark css here, for now --> <!-- Add extricated I2PSnark css here, for now -->
<copy file="installer/resources/themes/console/snark.css" todir="pkg-temp/docs/themes/console/" /> <copy file="installer/resources/themes/console/snark.css" todir="pkg-temp/docs/themes/console/" />
<!-- these files now in docs/, not in the .war --> <!-- these files now in docs/, not in the .war -->
<!-- No need to copy these individually, we're copying the whole dir below..
<copy file="installer/resources/themes/console/images/favicon.ico" todir="pkg-temp/docs/themes/console/images/" /> <copy file="installer/resources/themes/console/images/favicon.ico" todir="pkg-temp/docs/themes/console/images/" />
<copy file="installer/resources/themes/console/images/i2plogo.png" todir="pkg-temp/docs/themes/console/images/" /> <copy file="installer/resources/themes/console/images/i2plogo.png" todir="pkg-temp/docs/themes/console/images/" />
-->
<!-- Since the logo moved, we have to update the error pages --> <!-- Since the logo moved, we have to update the error pages -->
<copy todir="pkg-temp/docs/" > <copy todir="pkg-temp/docs/" >
<fileset dir="installer/resources/" includes="*-header.ht" /> <fileset dir="installer/resources/" includes="*-header.ht" />
@ -343,6 +345,10 @@
<copy todir="pkg-temp/docs/themes/console/light/" > <copy todir="pkg-temp/docs/themes/console/light/" >
<fileset dir="installer/resources/themes/console/light/" /> <fileset dir="installer/resources/themes/console/light/" />
</copy> </copy>
<!-- Add shared images.. these are subject to flux and change! -->
<copy todir="pkg-temp/docs/themes/console/images/" >
<fileset dir="installer/resources/themes/console/images/" />
</copy>
<copy todir="pkg-temp/docs/" > <copy todir="pkg-temp/docs/" >
<fileset dir="." includes="readme*.html" /> <fileset dir="." includes="readme*.html" />
</copy> </copy>

View File

@ -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 2009-07-23 sponge
* Add bob.i2p and sponge.i2p keys to hosts.txt * Add bob.i2p and sponge.i2p keys to hosts.txt

View File

@ -222,7 +222,7 @@ table {
} }
th { th {
padding: 8px; padding: 6px 3px;
color: #eef; color: #eef;
text-align: center; text-align: center;
font-size: 8pt; font-size: 8pt;
@ -250,7 +250,7 @@ tr:last-child {
} }
*/ */
td { td {
padding: 5px 10px; padding: 6px 3px 5px 3px;
color: #eef; color: #eef;
vertical-align: middle; vertical-align: middle;
} }
@ -510,3 +510,37 @@ form {}
border: 1px solid #001; border: 1px solid #001;
display: none; display: none;
} }
.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;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 298 B

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -268,7 +268,7 @@ table {
} }
th { th {
padding: 8px; padding: 6px 2px;
color: #000; color: #000;
background: #b4c8ff url('images/tabletitlelight.png') repeat-x; background: #b4c8ff url('images/tabletitlelight.png') repeat-x;
text-align: center; text-align: center;
@ -354,6 +354,12 @@ a:hover{
font-weight: bold; font-weight: bold;
} }
a:active{
color: #f93;
text-decoration: underline;
font-weight: bold;
}
.links { .links {
list-style: url(images/link.png); list-style: url(images/link.png);
margin: 10px 5px 0 0px; margin: 10px 5px 0 0px;
@ -551,3 +557,37 @@ form {}
border: 1px solid #001; border: 1px solid #001;
display: none; display: none;
} }
.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;
}

View File

@ -73,6 +73,7 @@ textarea, input, select, button, a {
button { button {
float: none; float: none;
text-decoration: none;
} }
textarea { textarea {
@ -172,18 +173,21 @@ hr {
border-radius: 4px; border-radius: 4px;
margin-top: 8px; margin-top: 8px;
background: url(images/tabletitlelight.png) 0 0 repeat: x !important; background: url(images/tabletitlelight.png) 0 0 repeat: x !important;
text-decoration: none;
} }
.control:active { .control:active {
border: 1px inset; border: 1px inset;
background-color: #003; background-color: #003;
color: #ff6600; color: #ff6600;
text-decoration: none;
} }
.control:hover { .control:hover {
border: 1px solid #eeeeff; border: 1px solid #eeeeff;
background-color: #f60; background-color: #f60;
color: #fff !important; color: #fff !important;
text-decoration: none;
} }
.panel { .panel {
@ -199,6 +203,7 @@ hr {
border-radius: 4px; border-radius: 4px;
border: 1px solid #002; border: 1px solid #002;
padding: 10px 20px; padding: 10px 20px;
-moz-box-shadow: inset 0px 0px 1px 0px #002;
} }
.panel .footer { .panel .footer {
@ -239,15 +244,75 @@ hr {
#globalOperationsPanel { #globalOperationsPanel {
background-color: #ddddff; background-color: #ddddff;
border: 1px solid #f22; border: 1px solid #003;
-moz-box-shadow: inset 0px 0px 4px 0px #f00;
padding: 5px 20px 11px 10px; padding: 5px 20px 11px 10px;
background: url("/themes/console/images/yellowtile.png") !important;
-moz-box-shadow: inset 0px 0px 1px 0px #fff;
} }
#globalOperationsPanel .control { #globalOperationsPanel .control {
min-width: 120px; 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 { .header {
-moz-border-radius: 4px; -moz-border-radius: 4px;
-khtml-border-radius: 4px; -khtml-border-radius: 4px;
@ -266,3 +331,28 @@ select {
font-size: 8pt; font-size: 8pt;
max-height: 24px; 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;
}

View File

@ -117,6 +117,7 @@ table {
padding: 0px; padding: 0px;
border-width: 0px; border-width: 0px;
border-spacing: 0px; border-spacing: 0px;
background-color: #f9f;
} }
th { th {

View File

@ -608,29 +608,29 @@ public class JobQueue {
StringBuilder buf = new StringBuilder(32*1024); StringBuilder buf = new StringBuilder(32*1024);
buf.append("<h2>JobQueue</h2>"); buf.append("<h2>JobQueue</h2>");
buf.append("# runners: ").append(numRunners).append(" [states="); buf.append("<b><div class=\"joblog\"># runners: ").append(numRunners).append(" [states=");
if (states != null) if (states != null)
for (int i = 0; i < states.length; i++) for (int i = 0; i < states.length; i++)
buf.append(states[i]).append(" "); buf.append(states[i]).append(" ");
buf.append("]<br />\n"); buf.append("]</b><br />\n");
long now = _context.clock().now(); long now = _context.clock().now();
buf.append("# active jobs: ").append(activeJobs.size()).append("<ol>\n"); buf.append("<hr><b># active jobs: ").append(activeJobs.size()).append("</b><ol>\n");
for (int i = 0; i < activeJobs.size(); i++) { for (int i = 0; i < activeJobs.size(); i++) {
Job j = (Job)activeJobs.get(i); Job j = (Job)activeJobs.get(i);
buf.append("<li> [started ").append(now-j.getTiming().getStartAfter()).append("ms ago]: "); buf.append("<li> [started ").append(now-j.getTiming().getStartAfter()).append("ms ago]: ");
buf.append(j.toString()).append("</li>\n"); buf.append(j.toString()).append("</li>\n");
} }
buf.append("</ol>\n"); buf.append("</ol>\n");
buf.append("# just finished jobs: ").append(justFinishedJobs.size()).append("<ol>\n"); buf.append("<hr><b># just finished jobs: ").append(justFinishedJobs.size()).append("</b><ol>\n");
for (int i = 0; i < justFinishedJobs.size(); i++) { for (int i = 0; i < justFinishedJobs.size(); i++) {
Job j = (Job)justFinishedJobs.get(i); Job j = (Job)justFinishedJobs.get(i);
buf.append("<li> [finished ").append(now-j.getTiming().getActualEnd()).append("ms ago]: "); buf.append("<li> [finished ").append(now-j.getTiming().getActualEnd()).append("ms ago]: ");
buf.append(j.toString()).append("</li>\n"); buf.append(j.toString()).append("</li>\n");
} }
buf.append("</ol>\n"); buf.append("</ol>\n");
buf.append("# ready/waiting jobs: ").append(readyJobs.size()).append(" <i>(lots of these mean there's likely a big problem)</i><ol>\n"); buf.append("<hr><b># ready/waiting jobs: ").append(readyJobs.size()).append(" </b><i>(lots of these mean there's likely a big problem)</i><ol>\n");
for (int i = 0; i < readyJobs.size(); i++) { for (int i = 0; i < readyJobs.size(); i++) {
Job j = (Job)readyJobs.get(i); Job j = (Job)readyJobs.get(i);
buf.append("<li> [waiting "); buf.append("<li> [waiting ");
@ -641,7 +641,7 @@ public class JobQueue {
buf.append("</ol>\n"); buf.append("</ol>\n");
out.flush(); out.flush();
buf.append("# timed jobs: ").append(timedJobs.size()).append("<ol>\n"); buf.append("<hr><b># timed jobs: ").append(timedJobs.size()).append("</b><ol>\n");
TreeMap ordered = new TreeMap(); TreeMap ordered = new TreeMap();
for (int i = 0; i < timedJobs.size(); i++) { for (int i = 0; i < timedJobs.size(); i++) {
Job j = (Job)timedJobs.get(i); Job j = (Job)timedJobs.get(i);
@ -653,7 +653,7 @@ public class JobQueue {
buf.append("<li>").append(j.getName()).append(" in "); buf.append("<li>").append(j.getName()).append(" in ");
buf.append(DataHelper.formatDuration(time)).append("</li>\n"); buf.append(DataHelper.formatDuration(time)).append("</li>\n");
} }
buf.append("</ol>\n"); buf.append("</ol></div>\n");
out.write("<!-- jobQueue rendering: after main buffer, before stats -->\n"); out.write("<!-- jobQueue rendering: after main buffer, before stats -->\n");
out.flush(); out.flush();

View File

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

View File

@ -494,8 +494,8 @@ public class TunnelPoolManager implements TunnelManagerFacade {
processed += cfg.getProcessedMessagesCount(); processed += cfg.getProcessedMessagesCount();
} }
out.write("</table>\n"); out.write("</table>\n");
out.write("<center>Inactive participating tunnels: " + inactive + "<br />\n"); out.write("<div class=\"statusnotes\"><center><b>Inactive participating tunnels: " + inactive + "</b></div>\n");
out.write("Lifetime bandwidth usage: " + DataHelper.formatSize(processed*1024) + "B</center><br />\n"); out.write("<div class=\"statusnotes\"><b>Lifetime bandwidth usage: " + DataHelper.formatSize(processed*1024) + "B</b></center></div>\n");
renderPeers(out); renderPeers(out);
} }
@ -524,7 +524,7 @@ public class TunnelPoolManager implements TunnelManagerFacade {
if (info.getLength() > maxLength) if (info.getLength() > maxLength)
maxLength = info.getLength(); maxLength = info.getLength();
} }
out.write("<table border=\"1\"><tr><th>Direction</th><th>Expiration</th><th>Usage</th><th>Gateway</th>"); out.write("<table border=\"1\"><tr><th>In/Out</th><th>Expiry</th><th>Usage</th><th>Gateway</th>");
if (maxLength > 3) { if (maxLength > 3) {
out.write("<th align=\"center\" colspan=\"" + (maxLength - 2)); out.write("<th align=\"center\" colspan=\"" + (maxLength - 2));
out.write("\">Participants</th>"); out.write("\">Participants</th>");
@ -573,19 +573,19 @@ public class TunnelPoolManager implements TunnelManagerFacade {
if (in != null) { if (in != null) {
List pending = in.listPending(); List pending = in.listPending();
if (pending.size() > 0) if (pending.size() > 0)
out.write("<center>Build in progress: " + pending.size() + " inbound</center><br />\n"); out.write("<div class=\"statusnotes\"><center><b>Build in progress: " + pending.size() + " inbound</b></center></div>\n");
live += pending.size(); live += pending.size();
} }
if (outPool != null) { if (outPool != null) {
List pending = outPool.listPending(); List pending = outPool.listPending();
if (pending.size() > 0) if (pending.size() > 0)
out.write("<center>Build in progress: " + pending.size() + " outbound</center><br />\n"); out.write("<div class=\"statusnotes\"><center><b>Build in progress: " + pending.size() + " outbound</b></center></div>\n");
live += pending.size(); live += pending.size();
} }
if (live <= 0) if (live <= 0)
out.write("<b><center>No tunnels, waiting for the grace period to end.</center></b><br />\n"); out.write("<div class=\"statusnotes\"><center>N<b>No tunnels; waiting for the grace period to end.</center></b></div>\n");
out.write("<center>Lifetime bandwidth usage: " + DataHelper.formatSize(processedIn*1024) + "B in, " + out.write("<div class=\"statusnotes\"><center><b>Lifetime bandwidth usage: " + DataHelper.formatSize(processedIn*1024) + "<B in, " +
DataHelper.formatSize(processedOut*1024) + "B out</center><br />"); DataHelper.formatSize(processedOut*1024) + "B out</b></center></div>");
} }
private void renderPeers(Writer out) throws IOException { private void renderPeers(Writer out) throws IOException {