- Add spans to /stats page to avoid summary info breaking mid-sentence, and to
  aid presentation
- Adjust /stats CSS so information isn't over-dense
- Set graph size for generated graphs on /stats to 600x200
- Fix netdb leaseset tables
  - Ensure we only iconify add to addressbook links and not b32 dests
- Individual icons for I2PSnark and I2P Plugins on /home
- Add div to upnpstatus on peers to comply with layout
- Fix various unclosed/erroneous tags
This commit is contained in:
str4d
2017-06-03 13:59:20 +00:00
parent 5361571c15
commit d50c12dc7d
10 changed files with 278 additions and 169 deletions

View File

@@ -35,7 +35,7 @@ public class HomeHelper extends HelperBase {
_x("Help") + S + _x("I2P Router Help") + S + "/help" + S + I + "support.png" + S +
_x("Manage Plugins") + S + _x("Install and configure I2P plugins") + S + "/configplugins" + S + I + "plugin.png" + S +
_x("Router Console") + S + _x("I2P Router Console") + S + "/console" + S + I + "info/console.png" + S +
_x("Torrents") + S + _x("Built-in anonymous BitTorrent Client") + S + "/i2psnark/" + S + I + "magnet.png" + S +
_x("Torrents") + S + _x("Built-in anonymous BitTorrent Client") + S + "/i2psnark/" + S + I + "i2psnark.png" + S +
_x("Web Server") + S + _x("Local web server for hosting your own content on I2P") + S + "http://127.0.0.1:7658/" + S + I + "server_32x32.png" + S +
"";
@@ -61,7 +61,7 @@ public class HomeHelper extends HelperBase {
_x("Open4You") + S + _x("Free eepsite hosting with PHP and MySQL") + S + "http://open4you.i2p/" + S + I + "open4you-logo.png" + S +
_x("Pastebin") + S + _x("Encrypted I2P Pastebin") + S + "http://zerobin.i2p/" + S + I + "paste_plain.png" + S +
_x("Planet I2P") + S + _x("I2P News") + S + "http://planet.i2p/" + S + I + "world.png" + S +
_x("I2P Plugins") + S + _x("Add-on directory") + S + "http://i2pwiki.i2p/index.php?title=Plugins" + S + I + "plugin.png" + S +
_x("I2P Plugins") + S + _x("Add-on directory") + S + "http://i2pwiki.i2p/index.php?title=Plugins" + S + I + "info/plugin_link.png" + S +
_x("Postman's Tracker") + S + _x("Bittorrent tracker") + S + "http://tracker2.postman.i2p/" + S + I + "magnet.png" + S +
_x("Project Website") + S + _x("I2P home page") + S + "http://i2p-projekt.i2p/" + S + I + "info_rhombus.png" + S +
//_x("lenta news [ru]") + S + _x("Russian News Feed") + S + "http://lenta.i2p/" + S + I + "lenta_main_logo.png" + S +

View File

@@ -309,7 +309,7 @@ class NetDbRenderer {
buf.append("<table class=\"leaseset\">\n")
.append("<tr><th><b>").append(_t("LeaseSet")).append(":</b>&nbsp;<code>").append(key.toBase64()).append("</code></th>");
if (_context.clientManager().isLocal(dest)) {
buf.append("<th><b><a href=\"tunnels#" + key.toBase64().substring(0,4) + "\">" + _t("Local") + "</a> ");
buf.append("<th><a href=\"tunnels#" + key.toBase64().substring(0,4) + "\">" + _t("Local") + "</a> ");
boolean unpublished = ! _context.clientManager().shouldPublishLeaseSet(key);
if (unpublished)
buf.append(_t("Unpublished") + ' ');
@@ -319,13 +319,13 @@ class NetDbRenderer {
buf.append(in.getDestinationNickname());
else
buf.append(dest.toBase64().substring(0, 6));
buf.append("</th></tr>\n<tr><td>");
buf.append("</th></tr>\n<tr><td colspan=\"2\">");
String b32 = dest.toBase32();
buf.append("<a href=\"http://").append(b32).append("\">").append(b32).append("</a></td>");
if (!unpublished) {
String host = _context.namingService().reverseLookup(dest);
if (host == null) {
buf.append("<td>").append("<a title=\"").append(_t("Add to addressbook"))
buf.append("<td class=\"addtobook\" colspan=\"2\">").append("<a title=\"").append(_t("Add to addressbook"))
.append("\" href=\"/susidns/addressbook.jsp?book=private&amp;destination=")
.append(dest.toBase64()).append("#add\">").append(_t("Add to local addressbook")).append("</a></td>");
}
@@ -340,7 +340,7 @@ class NetDbRenderer {
buf.append("<code>").append(dest.toBase64().substring(0, 6)).append("</code></th>")
.append("</tr>\n<tr>")
.append("<td><a href=\"http://").append(b32).append("\">").append(b32).append("</a></td>\n")
.append("<td><a title=\"").append(_t("Add to addressbook"))
.append("<td class=\"addtobook\"><a title=\"").append(_t("Add to addressbook"))
.append("\" href=\"/susidns/addressbook.jsp?book=private&amp;destination=")
.append(dest.toBase64()).append("#add\">").append(_t("Add to local addressbook")).append("</a></td>");
}
@@ -361,7 +361,7 @@ class NetDbRenderer {
if (c++ == medianCount)
median = dist;
}
buf.append(" <b>Distance: </b><span id=\"distance\">").append(fmt.format(biLog2(dist))).append("</span></b>");
buf.append(" <b>Distance: </b><span id=\"distance\">").append(fmt.format(biLog2(dist))).append("</span>");
buf.append("</td></tr>\n<tr><td colspan=\"2\">");
//buf.append(dest.toBase32()).append("<br>");
buf.append("<b>Signature type:</b> ").append(dest.getSigningPublicKey().getType());

View File

@@ -82,7 +82,7 @@ public class StatsGenerator {
out.write(buf.toString());
buf.setLength(0);
for (String stat : stats) {
buf.append("<li><b><a name=\"");
buf.append("<li class=\"statsName\"><b><a name=\"");
buf.append(stat);
buf.append("\">");
buf.append(stat);
@@ -152,9 +152,9 @@ public class StatsGenerator {
RateStat rate = _context.statManager().getRate(name);
String d = rate.getDescription();
if (! "".equals(d)) {
buf.append("<i>");
buf.append("<span class=\"statsLongName\"><i>");
buf.append(d);
buf.append("</i><br>");
buf.append("</i></span><br>");
}
if (rate.getLifetimeEventCount() <= 0) {
buf.append("<ul><li class=\"noevents\">").append(_t("No lifetime events")).append("</li></ul>\n");
@@ -177,14 +177,14 @@ public class StatsGenerator {
buf.append(_t("Highest average"));
buf.append(": ");
buf.append(num(curRate.getExtremeAverageValue()));
buf.append("; ");
buf.append(". ");
// This is rarely interesting
// Don't bother to translate
if (showAll) {
buf.append("Highest total in a period: ");
buf.append(num(curRate.getExtremeTotalValue()));
buf.append("; ");
buf.append(". ");
}
// Saturation stats, which nobody understands, even when it isn't meaningless
@@ -198,32 +198,34 @@ public class StatsGenerator {
buf.append(pct(curRate.getExtremeEventSaturation()));
buf.append("; Peak saturated limit: ");
buf.append(num(curRate.getExtremeSaturationLimit()));
buf.append("; ");
buf.append(". ");
}
buf.append("<span class=\"nowrap\">");
buf.append(ngettext("There was 1 event in this period.", "There were {0} events in this period.", (int)curRate.getLastEventCount()));
buf.append(' ');
buf.append("</span> <span class=\"nowrap\">");
buf.append(_t("The period ended {0} ago.", DataHelper.formatDuration2(now - curRate.getLastCoalesceDate())));
buf.append("</span>");
} else {
buf.append(" <i>").append(_t("No events")).append("</i> ");
buf.append(" <i>").append(_t("No events")).append(" </i>");
}
long numPeriods = curRate.getLifetimePeriods();
if (numPeriods > 0) {
double avgFrequency = curRate.getLifetimeEventCount() / (double)numPeriods;
buf.append(" (").append(_t("Average event count")).append(": ");
buf.append("&nbsp;<span class=\"nowrap\">(").append(_t("Average event count")).append(": ");
buf.append(num(avgFrequency));
buf.append("; ").append(_t("Events in peak period")).append(": ");
// This isn't really the highest event count, but the event count during the period with the highest total value.
buf.append(curRate.getExtremeEventCount());
buf.append(")");
buf.append(")</span>");
}
if (curRate.getSummaryListener() != null) {
buf.append("<br><a href=\"graph?stat=").append(name)
buf.append("<br><span class=\"statsViewGraphs\"><a href=\"graph?stat=").append(name)
.append('.').append(periods[i]);
buf.append("\">").append(_t("Graph Data")).append("</a> - ");
buf.append("&amp;w=600&amp;h=200\">").append(_t("Graph Data")).append("</a> - ");
buf.append(" <a href=\"graph?stat=").append(name)
.append('.').append(periods[i]);
buf.append("&amp;showEvents=true\">").append(_t("Graph Event Count")).append("</a>");
buf.append("&amp;w=600&amp;h=200&amp;showEvents=true\">").append(_t("Graph Event Count")).append("</a></span>");
// This can really blow up your browser if you click on it
//buf.append(" - <a href=\"viewstat.jsp?stat=").append(name);
//buf.append("&amp;period=").append(periods[i]);

View File

@@ -1,3 +1,15 @@
2017-06-03 str4d
* Console:
- Add spans to /stats page to avoid summary info breaking mid-sentence, and
to aid presentation
- Adjust /stats CSS so information isn't over-dense
- Set graph size for generated graphs on /stats to 600x200
- Fix netdb leaseset tables
- Ensure we only iconify add to addressbook links and not b32 dests
- Individual icons for I2PSnark and I2P Plugins on /home
- Add div to upnpstatus on peers to comply with layout
- Fix various unclosed/erroneous tags
2017-05-25 zzz
* Crypto: Fix AES NPE on 4-core RPi 2nd try (ticket #1989)

View File

@@ -3084,7 +3084,6 @@ div.joblog li {
div.joblog ul {
word-wrap: break-word !important;
text-align: justify;
}
div.joblog li:first-child {
@@ -4236,12 +4235,12 @@ a.viewfullentry:hover {
width: 10px;
}
table.leaseset {
.leaseset {
font-size: 9pt;
margin: 5px 0 10px;
}
table.leaseset:last-child {
.leaseset:last-child {
margin-bottom: 5px;
}
@@ -4256,19 +4255,23 @@ table.leaseset:last-child {
padding-right: 5px;
}
.leaseset tr:nth-child(2) td:last-child a:not(old) {
.addtobook {
text-align: right;
}
.addtobook a:not(old) {
font-size: 0;
}
.leaseset tr:nth-child(2) td:last-child a::after {
.addtobook a::after {
content: url(/themes/console/images/buttons/add_address.png);
}
.leaseset tr:nth-child(2) td:last-child a:hover {
.addtobook a:hover {
filter: drop-shadow(0 0 1px #f60);
}
div#noleasesets {
#noleasesets {
border: 1px solid #89f;
padding: 20px;
font-weight: bold;
@@ -4277,14 +4280,14 @@ div#noleasesets {
text-align: center;
}
div#sybilnav, div#sybils_summary {
#sybilnav, #sybils_summary {
border: 1px solid #89f;
padding: 10px;
margin-bottom: 10px;
background: #fff;
}
div#sybilnav {
#sybilnav {
padding: 5px 5px 0;
}
@@ -4303,11 +4306,11 @@ div#sybilnav {
line-height: 100%;
}
table.sybil_routerinfo {
.sybil_routerinfo {
margin-bottom: 10px;
}
table.sybil_routerinfo:last-child {
.sybil_routerinfo:last-child {
margin-bottom: 5px;
}
@@ -4315,7 +4318,7 @@ table.sybil_routerinfo:last-child {
padding: 1px 1px 1px 6px !important;
}
table.sybil_routerinfo:first-of-type th {
.sybil_routerinfo:first-of-type th {
padding: 6px !important;
}
@@ -4351,7 +4354,7 @@ table.sybil_routerinfo:first-of-type th {
font-weight: normal;
}
div#sybilnav {
#sybilnav {
background: #eff1ff;
-moz-columns: 4 200px;
-webkit-columns: 4 200px;
@@ -4490,7 +4493,7 @@ h3.stats {
border-radius: 0;
}
ul.statlist {
.statlist {
border: 1px solid #89f;
padding: 0 10px 0 0;
margin-left: 0 !important;
@@ -4498,11 +4501,11 @@ ul.statlist {
background: #eff1ff;
}
ul.statlist:last-of-type {
.statlist:last-of-type {
margin-bottom: -22px !important;
}
ul.statlist a[name], ul.statlist b, ul.statlist li b, ul.statlist a[name]:hover {
.statlist a[name], .statlist b, .statlist li b, .statlist a[name]:hover {
text-decoration: none;
letter-spacing: normal;
font-size: 9pt;
@@ -4513,35 +4516,33 @@ ul.statlist a[name], ul.statlist b, ul.statlist li b, ul.statlist a[name]:hover
display: none !important;
}
ul.statlist li b, ul.statlist b a:hover, h3.stats a:hover {
.statlist li b, .statlist b a:hover, h3.stats a:hover {
color: #0c153d !important;
}
ul.statlist li::before {
.statlist li::before {
content: "\2B26\00A0";
margin-left: 5px;
font-size: 14pt;
line-height: 60%;
vertical-align: baseline;
color: #0c153d;
filter: drop-shadow(0 0 1px #ccc);
}
ul.statlist li {
.statlist li {
margin-left: 5px;
padding: 2px;
list-style: none;
}
ul.statlist li li {
.statlist li li {
margin-left: 16px;
margin-right: -20px;
margin-top: 2px;
line-height: 130% !important;
line-height: 150% !important;
list-style: none;
padding: 2px 0;
border-top: 1px dotted #89f;
text-align: justify;
padding: 2px 0 2px 5px;
text-align: left;
}
.statlist li li:first-child {
@@ -4550,7 +4551,7 @@ ul.statlist li li {
padding-top: 2px;
}
ul.statlist li li::before {
.statlist li li::before {
content: "\279F\00A0";
vertical-align: baseline;
margin-left: 3px;
@@ -4561,7 +4562,6 @@ ul.statlist li li::before {
color: #33a;
font-size: 14pt;
margin-left: 4px;
filter: drop-shadow(0 0 1px #ccc);
}
.main#stats a[href^="graph?"]:hover::before {
@@ -4572,27 +4572,33 @@ ul.statlist li li::before {
display: none;
}
ul.statlist li li:last-child {
.statlist li li:last-child {
padding-bottom: 2px;
border: 1px dotted #89f;
padding-left: 5px;
border: 1px solid rgba(136, 153, 255, 0.3);
background: #fff;
background: linear-gradient(to right, #fff 0%, #eef 70%, #ddf 100%);
box-shadow: inset 0 0 0 1px #fff;
}
ul.statlist li:last-child {
.statlist li li.noevents {
margin-top: 15px !important;
}
.statlist li:last-child {
padding-bottom: 15px;
margin-top: 2px;
}
ul.statlist li:first-child {
.statlist li:first-child {
margin-top: -5px;
}
ul.statlist li li:last-child::before {
.statlist li li:last-child::before {
content: "\27A1\00A0";
margin-left: 2px;
vertical-align: text-top;
vertical-align: calc(20% - 3px);
}
.statlist a[href*="graph"] {
@@ -4607,6 +4613,15 @@ ul.statlist li li:last-child::before {
content: "\00A0";
}
.statsViewGraphs {
margin-left: 20px;
}
.nowrap {
display: inline-block;
white-space: nowrap;
}
#gatherstats + form {
background: #fff;
}
@@ -5625,8 +5640,8 @@ table.sybil_routerinfo:last-child {
@media screen and (min-width: 1500px) {
body, .main, .main td, .news p, #news p, .tab, .tab2, .main li b, div.joblog li, .themelabel, .ui_lang, .applabel a, .statusnotes, .routersummary button.download,
#peerdefs, #profile_defs, #thresholds, #configinfo, .infohelp, .infowarn, button, input, select, textarea, code, tt, pre, .netdbentry th, .configtable th, ul.statlist a[name],
ul.statlist b, ul.statlist li b, ul.statlist a[name]:hover, div.messages, th {
#peerdefs, #profile_defs, #thresholds, #configinfo, .infohelp, .infowarn, button, input, select, textarea, code, tt, pre, .netdbentry th, .configtable th, .statlist a[name],
.statlist b, .statlist li b, .statlist a[name]:hover, div.messages, th {
font-size: 10pt !important;
}

View File

@@ -2040,7 +2040,6 @@ h3.stats {
div.joblog li {
word-wrap: break-word !important;
text-align: justify !important;
line-height: 120% !important;
margin: 2px 0 2px 30px;
padding: 2px 20px 2px 0;
@@ -2048,7 +2047,6 @@ div.joblog li {
div.joblog ul {
word-wrap: break-word !important;
text-align: justify;
margin: 5px 0 -10px;
}
@@ -2145,6 +2143,15 @@ ul.statlist li li:last-child::before {
display: none;
}
.nowrap {
white-space: nowrap;
}
.statsLongName {
color: #dd0;
font-weight: bold;
}
.main#stats form {
background: #000;
border: 1px solid #494;
@@ -4787,34 +4794,38 @@ div.debugcontainer {
filter: none;
}
table#leasesetdebug, table#leasesetsummary {
#leasesetdebug, #leasesetsummary {
margin-bottom: 10px;
}
table.leaseset th {
.leaseset th {
font-weight: normal;
padding: 5px;
text-align: left;
}
table.leaseset th:last-child, table.leaseset td:nth-child(2) {
.leaseset th:last-child, .leaseset td:nth-child(2) {
text-align: right;
padding-right: 5px;
}
.leaseset tr:nth-child(2) td:last-child a:not(old) {
.addtobook {
text-align: right;
}
.addtobook a:not(old) {
font-size: 0;
}
.leaseset tr:nth-child(2) td:last-child a::after {
.addtobook a::after {
content: url(/themes/console/images/buttons/add_address.png);
}
.leaseset tr:nth-child(2) td:last-child a:hover {
.addtobook a:hover {
filter: drop-shadow(0 0 1px #f60);
}
table#leasesetdebug th, table#leasesetsummary th {
#leasesetdebug th, #leasesetsummary th {
font-weight: bold;
text-transform: uppercase;
font-size: 10pt;
@@ -4823,7 +4834,7 @@ table#leasesetdebug th, table#leasesetsummary th {
padding: 5px 5px 5px 10px;
}
table#leasesetdebug th a, table#leasesetsummary a {
#leasesetdebug th a, #leasesetsummary a {
font-size: 9pt;
text-transform: capitalize;
letter-spacing: normal;
@@ -4836,33 +4847,33 @@ table#leasesetdebug th a, table#leasesetsummary a {
padding-left: 10px;
}
table#leasesetdebug th:first-child, table#leasesetsummary th:first-child {
#leasesetdebug th:first-child, #leasesetsummary th:first-child {
text-align:left;
white-space: nowrap;
}
table#leasesetdebug th:last-child, table#leasesetsummary th:last-child {
#leasesetdebug th:last-child, #leasesetsummary th:last-child {
text-align:right;
white-space: nowrap;
}
table#leasesetdebug td:nth-child(odd) {
#leasesetdebug td:nth-child(odd) {
width: 200px;
white-space: nowrap;
text-align: right;
border-right: 1px inset #131;
}
table#leasesetdebug td:nth-child(even) {
#leasesetdebug td:nth-child(even) {
text-align: left;
white-space: nowrap;
}
table#leasesetdebug td:nth-child(2) {
#leasesetdebug td:nth-child(2) {
width: 10px;
}
div#noleasesets {
#noleasesets {
background: #000 url(images/infohelp.png) 12px center no-repeat;
padding: 15px 15px 15px 50px;
border: 1px solid #494;
@@ -4870,7 +4881,7 @@ div#noleasesets {
text-align: left;
}
div#sybilnav, div#sybils_summary {
#sybilnav, #sybils_summary {
border: 1px solid #494;
padding: 10px;
margin-bottom: 10px;
@@ -4878,7 +4889,7 @@ div#sybilnav, div#sybils_summary {
background: #000;
}
div#sybilnav {
#sybilnav {
-moz-columns: 4 200px;
-webkit-columns: 4 200px;
columns: 4 200px;
@@ -4941,7 +4952,7 @@ div#sybilnav {
padding-bottom: 2px;
}
table.sybil_routerinfo {
.sybil_routerinfo {
margin-bottom: 10px;
}
@@ -4954,7 +4965,7 @@ table.sybil_routerinfo {
white-space: nowrap;
}
table.sybil_routerinfo:first-of-type th {
.sybil_routerinfo:first-of-type th {
padding: 8px 6px !important;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -574,12 +574,22 @@ div.logo {
box-shadow: inset 0 0 0 1px #bbf;
}
div.logo:not(old) {
background: linear-gradient(to bottom, rgba(255,255,255,0.8), rgba(255,255,255,0.3)), url(images/noise.png) #fff;
background-size: 100% 100%, 50px 50px;
}
.logo hr {
margin: 8px -10px;
background: #7789bf;
height: 1px
}
.warning hr {
background: #7789bf;
background: linear-gradient(to right, #7789bf, #c2c4ef);
}
.logo a {
display: inline-block !important;
width: 100%;
@@ -606,7 +616,7 @@ div.warning {
}
.warning:not(old) {
background: url("/themes/console/images/itoopie_sm.png") no-repeat scroll 10px center, linear-gradient(to bottom, rgba(255,255,255,0.8), rgba(255,255,255,0.3)), url(images/noise.png) #fff;
background: url("/themes/console/images/itoopie_sm.png") no-repeat scroll 10px center, linear-gradient(to bottom, rgba(255,255,255,0.8), rgba(255,255,255,0.3)), url(images/noise.png) #fff;
background-size: 54px auto, 100% 100%, 50px 50px;
background-position: 10px calc(50% + 16px);
}
@@ -615,7 +625,7 @@ div.warning {
text-align: left;
margin: -9px -24px 20px !important;
border: none;
border-bottom: 1px solid #7789bf;
border-bottom: 1px solid #447;
border-radius: 2px 2px 0 0;
padding: 10px 10px 8px;
font-size: 10.5pt;
@@ -793,8 +803,9 @@ div.warning {
letter-spacing: 0;
word-spacing: 0;
background: none;
border-radius: 0;
border: none;
border-bottom: 1px solid #7778bf;
border-bottom: 1px solid #447 !important;
padding-left: 0;
margin-bottom: -5px;
}
@@ -2544,6 +2555,8 @@ p#enablefullstats, p#gatherstats {
background-size: 28px 28px !important;
}
/* stats page */
p#gatherstats + form, ul.statlist {
border: 1px solid #7778bf;
padding: 10px;
@@ -2571,6 +2584,13 @@ ul.statlist {
box-shadow: inset 0 0 0 1px #fff;
}
.joblog .statlist li {
line-height: 140% !important;
padding-top: 6px;
padding-bottom: 0;
margin-right: 5px;
}
.statlist li:not(old) {
list-style: none !important;
}
@@ -2578,18 +2598,18 @@ ul.statlist {
.statlist li::before, .statlist li a[href^="graph"]::before {
content: "";
display: inline-block;
height: 5px;
width: 5px;
box-shadow: inset 0 0 0 1px #fff;
margin-left: -35px;
height: 4px !important;
width: 4px !important;
margin-left: -17px;
margin-right: 10px;
margin-top: -2px;
margin-top: -4px;
transform: rotate(45deg);
vertical-align: middle;
opacity: 0.8;
}
.statlist li::before {
background: #335;
background: #779;
border: 1px solid #335;
}
@@ -2598,7 +2618,7 @@ ul.statlist {
border: 1px solid #3b6bbf;
}
.statlist li a[href*="&"]::before {
.statlist li a[href$="&showEvents=true"]::before {
display: none;
}
@@ -2609,12 +2629,51 @@ ul.statlist {
vertical-align: middle;
}
.statlist li.statsName::before {
background: #446;
box-shadow: inset 0 0 0 1px #fff !important;
height: 6px !important;
width: 6px !important;
opacity: 1;
}
.statlist li li:last-child::before {
background: #335;
}
.statsName i {
color: #050;
font-weight: bold;
}
.statsName li i {
color: inherit;
font-weight: normal;
}
.statsViewGraphs {
display: inline-block;
margin: 0 0 -5px 18px;
}
.statsLongName {
display: inline-block;
}
.statsLongName::first-letter {
text-transform: uppercase;
}
.nowrap {
display: inline-block;
white-space: nowrap;
}
.statlist > li::after {
content: "";
display: block;
width: 100%;
height: 1px;
margin-top: -5px;
border-top: 1px dotted #ddf;
}
@@ -2629,10 +2688,12 @@ li.noevents::after {
}
li.noevents {
margin: 5px 0 5px 15px !important;
margin: 0 0 5px 40px !important;
font-style: italic;
}
/* end stats page */
h1 {
text-align: left;
color: #31334f;
@@ -3568,11 +3629,6 @@ h3 + .statusnotes {
div.joblog {
border: 0;
margin-top: 5px;
}
div.joblog i {
color: #050;
font-weight: bold;
}
div.joblog ul {
@@ -4329,7 +4385,7 @@ table#leasesetdebug th a:hover, table#leasesetsummary th a:hover {
text-transform: none;
letter-spacing: normal;
word-spacing: normal;
background: linear-gradient(to bottom, #fff 50%, #eef 50%) !important;
background: linear-gradient(to bottom, #fff 50%, rgba(255, 255, 255, 0.6) 50%, rgba(240, 240, 240, 0.4)) #eef !important;
background-size: 100% 100%;
padding: 8px 5px;
font-size: 9pt;
@@ -4366,11 +4422,11 @@ table#leasesetdebug th a:hover, table#leasesetsummary th a:hover {
white-space: nowrap;
}
table#leasesetdebug, table.leaseset, table#leasesetsummary {
#leasesetdebug, table.leaseset, #leasesetsummary {
font-size: 9pt;
}
table#leasesetdebug td, table.leaseset td {
#leasesetdebug td, table.leaseset td {
padding: 5px !important;
}
@@ -4378,19 +4434,19 @@ table#leasesetdebug td, table.leaseset td {
margin-bottom: 10px;
}
table.leaseset th {
.leaseset th {
font-weight: normal;
padding: 5px;
text-align: left;
font-size: 10pt;
}
table.leaseset th:last-child, table.leaseset td:nth-child(2) {
.leaseset th:last-child, .leaseset td:nth-child(2) {
text-align: right;
padding-right: 5px;
}
table#leasesetdebug, table#leasesetsummary {
#leasesetdebug, #leasesetsummary {
margin-bottom: 14px !important;
}
@@ -4398,7 +4454,7 @@ table#leasesetdebug, table#leasesetsummary {
margin-bottom: 5px;
}
table#leasesetdebug th, table#leasesetsummary th {
#leasesetdebug th, #leasesetsummary th {
font-weight: bold;
padding: 8px;
text-align: left;
@@ -4408,49 +4464,52 @@ table#leasesetdebug th, table#leasesetsummary th {
word-spacing: 0.1em;
}
table#leasesetdebug th a {
#leasesetdebug th a {
font-size: 9pt;
text-transform: capitalize;
letter-spacing: normal;
word-spacing: normal;
}
table#leasesetdebug th:last-child, table#leasesetsummary th:last-child {
#leasesetdebug th:last-child, #leasesetsummary th:last-child {
text-align:right;
white-space: nowrap;
font-size: 9pt;
}
table#leasesetdebug td:nth-child(odd) {
#leasesetdebug td:nth-child(odd) {
width: 200px;
white-space: nowrap;
text-align: right;
border-right: 1px inset #cfd1ff;
}
table#leasesetdebug td:nth-child(even) {
#leasesetdebug td:nth-child(even) {
text-align: left;
white-space: nowrap;
}
table#leasesetdebug td:nth-child(2) {
#leasesetdebug td:nth-child(2) {
width: 10px;
}
.leaseset tr:nth-child(2) td:last-child a:not(old) {
.addtobook {
text-align: right;
}
.addtobook a:not(old) {
font-size: 0;
}
.leaseset tr:nth-child(2) td:last-child a::after {
.addtobook a::after {
content: url(/themes/console/images/buttons/add_address.png);
filter: drop-shadow(0 0 1px #999);
}
.leaseset tr:nth-child(2) td:last-child a:hover {
.addtobook a:hover {
filter: drop-shadow(0 0 1px #f60);
}
div#noleasesets {
#noleasesets {
border: 1px solid #7778bf;
padding: 20px;
font-weight: bold;
@@ -4460,7 +4519,7 @@ div#noleasesets {
text-align: center;
}
div#sybilnav {
#sybilnav {
-moz-columns: 4;
-webkit-columns: 4;
columns: 4;
@@ -4470,7 +4529,7 @@ div#sybilnav {
border-radius: 2px;
}
div#sybilnav, div#sybils_summary {
#sybilnav, #sybils_summary {
border: 1px solid #7778bf;
padding: 10px;
margin-bottom: 10px;
@@ -4507,7 +4566,7 @@ h3.sybils {
display: inline-block;
}
table.sybil_routerinfo {
.sybil_routerinfo {
margin-bottom: 10px;
}
@@ -4515,7 +4574,7 @@ table.sybil_routerinfo {
padding: 1px 1px 1px 6px !important;
}
table.sybil_routerinfo:first-of-type th {
.sybil_routerinfo:first-of-type th {
padding: 6px !important;
}

View File

@@ -1588,7 +1588,7 @@ div.sorry hr {
.main#news {
background: #000 url(images/earth.jpg) no-repeat scroll bottom right !important;
background-size: auto 200px !important;
background-size: auto 180px !important;
padding-bottom: 0;
}
@@ -1605,14 +1605,6 @@ div.sorry hr {
min-width: 600px;
}
/*
.newsentry font[size="-2"] {
letter-spacing: 0.15em;
font-style: italic;
text-transform: capitalize;
}
*/
.main#news .newscontent {
border: 1px solid #443da0;
margin: -11px 0 10px;
@@ -1720,7 +1712,6 @@ div.sorry hr {
.messages #newsDisplay {
display: inline-block;
white-space: normal;
margin-left: 45px;
}
@@ -2453,7 +2444,6 @@ fieldset {
div.joblog {
border-radius: 2px 2px 0 0;
text-align: justify !important;
overflow-y: hidden !important;
margin-top: 10px !important;
}
@@ -2472,7 +2462,6 @@ div.main li:last-child {
div.joblog li {
word-wrap: break-word !important;
text-align: justify !important;
line-height: 120% !important;
margin: 2px 0 2px 30px;
padding: 2px 20px 2px 0;
@@ -2480,7 +2469,6 @@ div.joblog li {
div.joblog ul {
word-wrap: break-word !important;
text-align: justify;
margin: 5px 0 -10px;
}
@@ -3643,7 +3631,7 @@ h3.stats {
border-radius: 0;
}
ul.statlist {
.statlist {
border: 1px solid #443da0;
margin-bottom: -21px !important;
margin-top: -11px !important;
@@ -3651,62 +3639,61 @@ ul.statlist {
background: #000;
}
ul.statlist:last-of-type {
div.main .statlist li:not(old) {
list-style: none !important;
}
.statlist:last-of-type {
margin-bottom: -1px !important;
}
@media screen and (-webkit-min-device-pixel-ratio:0) {
ul.statlist {
.statlist {
margin-bottom: -25px !important;
}
ul.statlist:last-of-type {
.statlist:last-of-type {
margin-bottom: -6px !important;
}
}
ul.statlist a[name], ul.statlist b, ul.statlist li b, ul.statlist a[name]:hover {
color: #f3e8fc !important;
.statlist a[name], .statlist b, .statlist li b, .statlist a[name]:hover {
text-decoration: none;
letter-spacing: normal;
}
ul.statlist li::before {
content: "\1F6C8\00A0";
.statlist li::before {
content: "\2B26\00A0";
font-size: 14pt;
line-height: 50%;
vertical-align: baseline;
color: #f3e8fc;
}
ul.statlist li {
line-height: 120% !important;
.statlist li {
list-style: none;
margin-bottom: -3px;
}
ul.statlist li li {
.statlist li li {
margin-left: 16px;
margin-right: -20px;
line-height: 120% !important;
line-height: 140% !important;
list-style: none;
}
ul.statlist li li::before {
.statlist li li::before {
content: "\279F\00A0";
vertical-align: baseline;
}
ul.statlist li li:last-child::before {
.statlist li li:last-child::before {
content: "\27A1\00A0";
}
ul.statlist li li:last-child {
.statlist li li:last-child {
padding-bottom: 5px !important;
}
.statlist a[href*="graph"]::before {
.statlist a[href^="graph"]::before {
content: "\27A1\00A0";
font-size: 14pt;
}
@@ -3725,11 +3712,34 @@ ul.statlist li li:last-child {
margin-top: 10px;
}
.statlist li li b {
margin-right: 3px;
}
li.noevents {
margin-top: 0 !important;
margin-bottom: 10px !important;
}
.nowrap {
white-space: nowrap;
}
.statsViewGraphs {
display: inline-block;
margin: 5px 5px 0 20px;
}
.statsLongName {
color: #37a3df;
font-weight: bold;
}
p#gatherstats {
margin-top: 1px;
margin-bottom: 25px;
}
/* end stats */
h3#exploratorytunnels {
@@ -3985,7 +3995,7 @@ table#externali2cp {
}
.infowarn#clientconf {
margin-bottom: -2px;
margin-bottom: 11px;
}
/* end /configclients */
@@ -5225,7 +5235,7 @@ span#distance {
font-weight: bold;
}
table#leasesetdebug, table#leasesetsummary {
#leasesetdebug, #leasesetsummary {
margin-top: -4px;
margin-bottom: 10px;
}
@@ -5241,7 +5251,7 @@ table#leasesetdebug, table#leasesetsummary {
padding-right: 5px;
}
table#leasesetdebug th, table#leasesetsummary th {
#leasesetdebug th, #leasesetsummary th {
font-weight: bold;
text-transform: uppercase;
font-size: 10pt;
@@ -5250,7 +5260,7 @@ table#leasesetdebug th, table#leasesetsummary th {
padding: 8px 10px;
}
table#leasesetdebug th a, table#leasesetsummary a {
#leasesetdebug th a, #leasesetsummary a {
font-size: 9pt;
text-transform: capitalize;
letter-spacing: normal;
@@ -5263,47 +5273,51 @@ table#leasesetdebug th a, table#leasesetsummary a {
padding-left: 10px;
}
table#leasesetdebug th:first-child, table#leasesetsummary th:first-child {
#leasesetdebug th:first-child, #leasesetsummary th:first-child {
text-align:left;
white-space: nowrap;
}
table#leasesetdebug th:last-child, table#leasesetsummary th:last-child {
#leasesetdebug th:last-child, #leasesetsummary th:last-child {
text-align:right;
white-space: nowrap;
}
table#leasesetdebug td:nth-child(odd) {
#leasesetdebug td:nth-child(odd) {
width: 200px;
white-space: nowrap;
text-align: right;
border-right: 1px inset #120f35;
}
table#leasesetdebug td:nth-child(even) {
#leasesetdebug td:nth-child(even) {
text-align: left;
white-space: nowrap;
}
table#leasesetdebug td:nth-child(2) {
#leasesetdebug td:nth-child(2) {
width: 10px;
}
table#leasesetdebug th a:not(old), table#leasesetsummary th a:not(old) {
#leasesetdebug th a:not(old), #leasesetsummary th a:not(old) {
font-size: 0;
}
table#leasesetdebug th a::after, table#leasesetsummary th a::after {
#leasesetdebug th a::after, #leasesetsummary th a::after {
content: url(/themes/console/images/buttons/floodfill.png);
vertical-align: text-top;
padding-right: 0;
}
.leaseset tr:nth-child(2) td:last-child a:not(old) {
.addtobook {
text-align: right;
}
.addtobook a:not(old) {
font-size: 0;
}
.leaseset tr:nth-child(2) td:last-child a::after {
.addtobook a::after {
content: url(/themes/console/images/buttons/add_address.png);
}
@@ -5316,7 +5330,7 @@ a.viewfullentry::after {
vertical-align: text-top;
}
div#noleasesets {
#noleasesets {
background: #000 url(/themes/console/images/info/infohelp.png) 12px center no-repeat !important;
padding: 15px 15px 15px 50px !important;
border: 1px solid #443da0;
@@ -5324,13 +5338,13 @@ div#noleasesets {
text-align: left;
}
div#sybilnav, div#sybils_summary {
#sybilnav, #sybils_summary {
border: 1px solid #443da0;
padding: 10px;
margin-bottom: 10px;
}
div#sybilnav {
#sybilnav {
-moz-columns: 4 200px;
-webkit-columns: 4 200px;
columns: 4 200px;
@@ -5405,7 +5419,7 @@ div#sybilnav {
/* end sybilnav */
table.sybil_routerinfo {
.sybil_routerinfo {
margin-bottom: 10px;
}
@@ -5417,7 +5431,7 @@ table.sybil_routerinfo {
text-align: left;
}
table.sybil_routerinfo:first-of-type th {
.sybil_routerinfo:first-of-type th {
padding: 6px !important;
}
@@ -5560,10 +5574,6 @@ p#debugmode, p#sybilinfo {
margin-top: -4px;
}
p#gatherstats {
margin-top: 1px;
}
td.optionsave {
text-align: right;
border-top: 1px solid #443da0;
@@ -5621,7 +5631,7 @@ h3#webappconfig {
}
p#webappconfigtext {
margin: 1px 0 -2px 0;
margin: 1px 0 15px 0;
background: #000 url(/themes/console/images/info/java_edit.png) 12px center no-repeat !important;
background-size: 28px 28px !important;
}
@@ -6191,7 +6201,7 @@ div.app {
min-width: 138px;
}
.app:hover {
div.app:hover {
cursor: pointer;
}

View File

@@ -676,7 +676,7 @@ public class UPnP extends ControlPoint implements DeviceChangeListener, EventLis
/** warning - slow */
public String renderStatusHTML() {
final StringBuilder sb = new StringBuilder();
sb.append("<h3><a name=\"upnp\"></a>").append(_t("UPnP Status")).append("</h3>");
sb.append("<h3 id=\"upnp\">").append(_t("UPnP Status")).append("</h3><div id=\"upnpscan\">");
synchronized(_otherUDNs) {
if (!_otherUDNs.isEmpty()) {
@@ -727,7 +727,7 @@ public class UPnP extends ControlPoint implements DeviceChangeListener, EventLis
}
}
sb.append("</p>");
sb.append("</p></div>");
return sb.toString();
}