Tidy up jobs.jsp a little and other to various ui elements.
This commit is contained in:
@ -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>
|
||||
|
@ -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
|
||||
|
||||
|
@ -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 |
BIN
installer/resources/themes/console/images/olivegreentile.png
Normal file
BIN
installer/resources/themes/console/images/olivegreentile.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
@ -117,6 +117,7 @@ table {
|
||||
padding: 0px;
|
||||
border-width: 0px;
|
||||
border-spacing: 0px;
|
||||
background-color: #f9f;
|
||||
}
|
||||
|
||||
th {
|
||||
|
@ -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();
|
||||
|
@ -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;
|
||||
|
@ -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 {
|
||||
|
Reference in New Issue
Block a user