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 -->
<copy file="installer/resources/themes/console/snark.css" todir="pkg-temp/docs/themes/console/" />
<!-- 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/i2plogo.png" todir="pkg-temp/docs/themes/console/images/" />
-->
<!-- Since the logo moved, we have to update the error pages -->
<copy todir="pkg-temp/docs/" >
<fileset dir="installer/resources/" includes="*-header.ht" />
@ -342,7 +344,11 @@
<!-- Add light theme -->
<copy todir="pkg-temp/docs/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/" >
<fileset dir="." includes="readme*.html" />
</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
* Add bob.i2p and sponge.i2p keys to hosts.txt

View File

@ -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;
}
}
.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 {
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;
}
}
.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 {
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;
}

View File

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

View File

@ -608,29 +608,29 @@ public class JobQueue {
StringBuilder buf = new StringBuilder(32*1024);
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)
for (int i = 0; i < states.length; i++)
buf.append(states[i]).append(" ");
buf.append("]<br />\n");
buf.append("]</b><br />\n");
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++) {
Job j = (Job)activeJobs.get(i);
buf.append("<li> [started ").append(now-j.getTiming().getStartAfter()).append("ms ago]: ");
buf.append(j.toString()).append("</li>\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++) {
Job j = (Job)justFinishedJobs.get(i);
buf.append("<li> [finished ").append(now-j.getTiming().getActualEnd()).append("ms ago]: ");
buf.append(j.toString()).append("</li>\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++) {
Job j = (Job)readyJobs.get(i);
buf.append("<li> [waiting ");
@ -641,7 +641,7 @@ public class JobQueue {
buf.append("</ol>\n");
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();
for (int i = 0; i < timedJobs.size(); i++) {
Job j = (Job)timedJobs.get(i);
@ -653,7 +653,7 @@ public class JobQueue {
buf.append("<li>").append(j.getName()).append(" in ");
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.flush();

View File

@ -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;

View File

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