diff --git a/apps/routerconsole/java/src/net/i2p/router/web/NetDbHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/NetDbHelper.java
index 9936a1f77..402cf6b7e 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/NetDbHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/NetDbHelper.java
@@ -233,7 +233,7 @@ public class NetDbHelper extends HelperBase {
}
if (!span)
buf.append("");
- buf.append("");
+ buf.append("\n");
_out.write(buf.toString());
}
@@ -241,23 +241,25 @@ public class NetDbHelper extends HelperBase {
* @since 0.9.28
*/
private void renderLookupForm() throws IOException {
- _out.write("
| " + _t("Addresses") + ": | ");
String country = _context.commSystem().getCountry(info.getIdentity().getHash());
if(country != null) {
+ buf.append("");
buf.append(" ");
+ buf.append(" src=\"/flags.jsp?c=").append(country).append("\"> ").append("");
}
for (RouterAddress addr : info.getAddresses()) {
String style = addr.getTransportStyle();
@@ -921,7 +922,7 @@ class SybilRenderer {
return;
final DecimalFormat fmt = new DecimalFormat("#0.00");
XORComparator xor = new XORComparator(Hash.FAKE_HASH);
- out.write("Group Distances| Hash | Distance from previous | \n");
+ out.write("Group Distances| Hash | Distance from previous | \n");
Collections.sort(sybils, xor);
Hash prev = null;
for (Hash h : sybils) {
@@ -952,8 +953,8 @@ class SybilRenderer {
prev = null;
final int limit = Math.min(10, sybils.size());
for (int i = start; i <= days; i++) {
- out.write("Distance for " + new Date(now) +
- "| Hash | Distance | Distance from previous | \n");
+ out.write("Distance for " + new Date(now) +
+ "| Hash | Distance | Distance from previous | \n");
Hash rkey = rkgen.getRoutingKey(from, now);
xor = new XORComparator(rkey);
Collections.sort(sybils, xor);
diff --git a/core/java/src/net/i2p/kademlia/KBucketSet.java b/core/java/src/net/i2p/kademlia/KBucketSet.java
index 34fa516b7..96803d1b1 100644
--- a/core/java/src/net/i2p/kademlia/KBucketSet.java
+++ b/core/java/src/net/i2p/kademlia/KBucketSet.java
@@ -765,7 +765,7 @@ public class KBucketSet {
@Override
public String toString() {
StringBuilder buf = new StringBuilder(1024);
- buf.append("Bucket set rooted on: ").append(_us.toString())
+ buf.append(" Bucket set rooted on: ").append(_us.toString())
.append(" K=").append(BUCKET_SIZE)
.append(" B=").append(B_VALUE)
.append(" with ").append(size())
@@ -775,7 +775,7 @@ public class KBucketSet {
int len = _buckets.size();
for (int i = 0; i < len; i++) {
KBucket b = _buckets.get(i);
- buf.append("* Bucket ").append(i).append("/").append(len).append(": ");
+ buf.append("Bucket ").append(i).append("/").append(len).append(": ");
buf.append(b.toString()).append(" \n");
}
} finally { releaseReadLock(); }
diff --git a/installer/resources/themes/console/classic/console.css b/installer/resources/themes/console/classic/console.css
index 6eb7380e4..5ae478ea1 100644
--- a/installer/resources/themes/console/classic/console.css
+++ b/installer/resources/themes/console/classic/console.css
@@ -251,7 +251,7 @@ div.routersummary input[type=text] {
.routersummary button[type="submit"] {
min-width: 87px;
margin: 2px 2px 1px;
- padding: 5px 2px !important;
+/* padding: 5px 2px !important;*/
}
#xhr {
@@ -380,6 +380,15 @@ div.routersummary td {
padding: 2px 2px 1px;
}
+.sb_notice {
+ background: #fff;
+ border: 1px solid #89f;
+ border-radius: 2px;
+ box-shadow: 0 0 1px #bbb;
+ margin: 7px 5px -2px;
+ padding: 5px 3px;
+}
+
div.routersummary form {
margin: -2px 0;
}
@@ -546,6 +555,7 @@ input[type="radio"], input[type="checkbox"] {
min-width: 16px !important;
min-height: 16px !important;
vertical-align: middle;
+ background: none;
}
input[type="file"] {
@@ -1035,22 +1045,56 @@ button::-moz-focus-inner, input[type="submit"]::-moz-focus-inner, input[type="re
.routersummary .download {
background: url(/themes/console/images/buttons/download.png) 3px center no-repeat, linear-gradient(to bottom, #fff 0%, #ddd 100%);
background-size: 16px 16px, 100% 100% !important;
- padding: 5px 3px 5px 17px !important;
+ padding: 5px 3px 5px 21px !important;
/* margin-top: -4px;*/
}
+/* Show text on context specific buttons (eg deferred shutdown) */
+
+.routersummary .reload[value="restartImmediate"], .routersummary .stop[value="shutdownImmediate"], .routersummary .reload[value="Reseed"] {
+ text-indent: 0;
+ text-align: left;
+ min-width: 0 !important;
+ padding-left: 21px !important;
+}
+
+.routersummary .reload[value="restartImmediate"] {
+ background: url(/themes/console/images/buttons/restart.png) center left 4px no-repeat, linear-gradient(to bottom, #fff 0%, #ddd 100%) !important;
+}
+
+.routersummary .reload[value="restartImmediate"]:hover, .routersummary .reload[value="restartImmediate"]:focus, .routersummary .reload[value="restartImmediate"]:active {
+ background: url(/themes/console/images/buttons/restart_hover.png) center left 4px no-repeat, linear-gradient(to bottom, #ddd 0%, #fff 100%) !important;
+}
+
+.routersummary .stop[value="shutdownImmediate"] {
+ background: url(/themes/console/images/buttons/shutdown.png) center left 4px no-repeat, linear-gradient(to bottom, #fff 0%, #ddd 100%) !important;
+}
+
+.routersummary .stop[value="shutdownImmediate"]:hover, .routersummary .stop[value="shutdownImmediate"]:focus, .routersummary .stop[value="shutdownImmediate"]:active {
+ background: url(/themes/console/images/buttons/shutdown_hover.png) center left 4px no-repeat, linear-gradient(to bottom, #ddd 0%, #fff 100%) !important;
+}
+
+.routersummary .reload[value="Reseed"] {
+ background: url(/themes/console/images/buttons/download.png) center left 4px no-repeat, linear-gradient(to bottom, #fff 0%, #ddd 100%) !important;
+}
+
+.routersummary .reload[value="Reseed"]:hover, .routersummary .reload[value="Reseed"]:focus, .routersummary .reload[value="Reseed"]:active {
+ background: url(/themes/console/images/buttons/download.png) center left 4px no-repeat !important, linear-gradient(to bottom, #ddd 0%, #fff 100%);
+}
+
+.routersummary .download:hover, .routersummary .download:focus, .routersummary .download:active {
+ background: url(/themes/console/images/buttons/download.png) 4px center no-repeat, linear-gradient(to bottom, #ddd 0%, #fff 100%);
+ background-size: 16px 16px, 100% 100% !important;
+ padding: 5px 3px 5px 21px !important;
+}
+
+/*
@media screen and (-webkit-min-device-pixel-ratio:0) {
.routersummary .download, .routersummary .download:hover, .routersummary .download:focus, .routersummary .download:active {
padding-left: 19px !important;
}
}
-
-.routersummary .download:hover, .routersummary .download:focus, .routersummary .download:active {
- background: url(/themes/console/images/buttons/download.png) 3px center no-repeat, linear-gradient(to bottom, #ddd 0%, #fff 100%);
- background-size: 16px 16px, 100% 100% !important;
- padding: 5px 3px 5px 17px !important;
- border: 1px solid #f60;
-}
+*/
/* end sidebar buttons */
/* end buttons & inputs */
@@ -1193,7 +1237,7 @@ div.news {
border-right: 1px solid #89f;
text-align: right;
color: #331e0c;
- min-width: 500px;
+ min-width: 520px;
padding: 3px 10px 3px 10px;
font-size: 8pt;
}
@@ -2701,10 +2745,10 @@ p#enablefullstats {
}
.langbox {
- margin: 5px 5px 0 5px;
+ margin: 4px 4px 0;
color: #001;
font-size: 7pt;
- width: 312px;
+ width: 360px;
text-align: right;
float: right;
padding: 1px;
@@ -3664,7 +3708,7 @@ div#sybilnav {
vertical-align: middle;
}
-p.sybil_floodfill, p.family, p.threatpoints, p.hashdist {
+p.sybil_info, p.family, p.threatpoints, p.hashdist {
border: 1px solid #89f;
padding: 5px 5px 5px 30px;
margin: 3px 0;
@@ -3674,11 +3718,11 @@ p.sybil_floodfill, p.family, p.threatpoints, p.hashdist {
background: url(images/eye.png) 8px center no-repeat, linear-gradient(to right, #fff 0%, #dde1ff 70%);
}
-p.family + p.family, p.sybil_floodfill + p.sybil_floodfill {
+p.family + p.family, p.sybil_info + p.sybil_info {
margin-top: -4px;
}
-p.sybil_floodfill + a[name] + table.sybil_routerinfo, p.hashdist + a[name] + table.sybil_routerinfo {
+p.sybil_info + a[name] + table.sybil_routerinfo, p.hashdist + a[name] + table.sybil_routerinfo {
margin-top: 10px !important;
}
@@ -3712,6 +3756,40 @@ p:empty { /* empty paragraph nuke */
display: none;
}
+/* Advanced lookup */
+
+#netdblookup {
+ margin-bottom: -8px;
+}
+
+#netdblookup th {
+ font-size: 11pt;
+ text-align: left;
+ padding: 10px;
+}
+
+#netdblookup td:first-child {
+ text-align: right;
+ width: 100px;
+ white-space: nowrap;
+ font-weight: bold;
+}
+
+#netdblookup td:nth-child(2) {
+ width: 100px;
+}
+
+.subheading {
+ text-align: left !important;
+ background: #fff;
+ padding: 10px;
+ border: 1px solid #89f;
+}
+
+.subheading b {
+ font-size: 10pt !important;
+}
+
/* end netdb */
/* /stats */
@@ -3879,6 +3957,25 @@ table#netdboverview {
padding: 5px;
}
+#netdbcountrylist img {
+ margin-right: 5px;
+ text-align: right;
+}
+
+.sybil_distance th {
+ text-align: left;
+ padding: 5px;
+}
+
+.sybil_distance th:last-child, .sybil_distance td:last-child {
+ text-align: right;
+}
+
+.sybil_distance tr:nth-child(n+2):hover {
+ background: #ffe;
+ font-weight: bold;
+}
+
/* /help */
div#volunteer, div#sidebarhelp, div#configurationhelp, div#reachabilityhelp, div#legal, div#changelog {
@@ -4288,7 +4385,7 @@ div.news {
}
.routersummary button[value="cancelShutdown"] {
- padding-left: 20px !important;
+ padding-left: 21px !important;
}
div.app {
@@ -4359,4 +4456,8 @@ div.news {
div.joblog h3 {
margin-top: 8px;
}
+
+.subheading b {
+ font-size: 10.5pt !important;
+}
}
diff --git a/installer/resources/themes/console/classic/mobile.css b/installer/resources/themes/console/classic/mobile.css
index d2f46085a..92866533e 100644
--- a/installer/resources/themes/console/classic/mobile.css
+++ b/installer/resources/themes/console/classic/mobile.css
@@ -14,6 +14,16 @@ div.routersummary {
margin: 0 auto -6px;
}
+@media screen and (min-width: 1500px) {
+div.routersummary {
+ width: 600px !important;
+}
+
+.routersummary table[id^="sb_"] {
+ width: 600px !important;
+}
+}
+
#xhr {
margin-top: 9px !important;
}
@@ -105,7 +115,7 @@ h1 {
}
div.news {
- margin: 0 0 -10px;
+ margin: 0 0 -1px;
min-width: 500px;
}
@@ -114,5 +124,25 @@ div.main {
min-width: 500px;
}
-.confignav {
+.sorry {
+ margin: -1px 0 0 !important;
+}
+
+@media screen and (min-width: 1500px) {
+
+h1 {
+ margin: 9px 0 -1px !important;
+}
+
+div.news {
+ margin: -1px 0 0 !important;
+}
+
+div.main {
+ margin: -1px 0 !important;
+}
+
+.sorry {
+ margin: -1px 0 0 !important;
+}
}
diff --git a/installer/resources/themes/console/dark/console.css b/installer/resources/themes/console/dark/console.css
index e367c8715..18063a899 100644
--- a/installer/resources/themes/console/dark/console.css
+++ b/installer/resources/themes/console/dark/console.css
@@ -397,6 +397,19 @@ div.routersummary table {
line-height: 140%;
}
+.sb_notice {
+ background: #010;
+ border: 1px solid #262;
+ border-radius: 2px;
+ box-shadow: inset 0 0 0 1px #000;
+ margin: 10px -4px -2px;
+ padding: 5px 3px;
+}
+
+hr + .sb_notice {
+ margin-top: 7px;
+}
+
div.routersummary tr {
background-image: none !important;
background-color: transparent !important;
@@ -1440,6 +1453,7 @@ input[type="checkbox"], .optbox {
filter: invert(100%) sepia(100%) hue-rotate(70deg) saturate(200%); /* colorize radios and checkboxes */
-webkit-filter: invert(100%) sepia(100%) hue-rotate(70deg) saturate(200%);
vertical-align: middle;
+ background: none;
}
input[type="checkbox"]:hover, .optbox:hover, input[type="checkbox"]:focus, .optbox:focus {
@@ -3237,6 +3251,11 @@ table#netdboverview {
margin-bottom: 0;
}
+#netdbcountrylist img {
+ margin-right: 5px;
+ text-align: right;
+}
+
#netdbtransports {
border-left: 1px solid transparent !important;
border-right: 1px solid transparent !important;
@@ -3287,6 +3306,74 @@ th > img[src^="/imagegen"] { /* scale down header images */
border: 1px solid #000;
}
+/* Advanced lookup */
+
+#netdblookup {
+ margin-bottom: -4px;
+}
+
+#netdblookup th {
+ text-align: left;
+ font-size: 11pt;
+ letter-spacing: 0.08em;
+ padding: 10px;
+ text-transform: uppercase;
+}
+
+#netdblookup td:first-child {
+ text-align: right;
+ width: 100px;
+ white-space: nowrap;
+ font-weight: bold;
+}
+
+#netdblookup td:nth-child(2) {
+ width: 100px;
+ padding-left: 0;
+}
+
+.subheading {
+ text-align: left !important;
+ background: #000;
+ padding: 10px;
+ border: 1px solid #494;
+}
+
+.subheading b {
+ font-size: 10pt !important;
+}
+
+#netdblookup .optbox {
+ margin: 10px ;
+}
+
+#netdblookup .optionsave {
+ padding: 10px !important;
+}
+
+#netdb .tabletitle {
+ margin-bottom: -2px !important;
+}
+
+.sybil_distance th {
+ text-align: left;
+ padding: 5px;
+}
+
+.sybil_distance th:last-child, .sybil_distance td:last-child {
+ text-align: right;
+}
+
+.sybil_distance tr:nth-child(n+2):hover {
+ background: #000;
+}
+
+.sybil_distance:last-child {
+ margin-bottom: 8px;
+}
+
+/* end netdb */
+
/* logs */
#criticallogs ul { /* tidy router logs ul */
@@ -4117,6 +4204,10 @@ table#leasesetdebug th a:hover, table#leasesetsummary th a:hover {
font-size: 10pt;
}
+.main#debug h2 + hr {
+ display: none;
+}
+
div.debugcontainer {
border: 1px solid #f00;
}
@@ -4412,7 +4503,7 @@ table.sybil_routerinfo:first-of-type th {
font-size: 9pt;
}
-p.sybil_floodfill, p.family, p.threatpoints, p.hashdist, p#sybil_totals {
+p.sybil_info, p.family, p.threatpoints, p.hashdist, p#sybil_totals {
border: 1px solid #494;
padding: 5px 5px 5px 30px;
margin: 3px 0;
@@ -4424,7 +4515,7 @@ p.sybil_floodfill, p.family, p.threatpoints, p.hashdist, p#sybil_totals {
box-shadow: inset 0 0 0 1px #300;
}
-p.family + p.family, p.sybil_floodfill + p.sybil_floodfill {
+p.family + p.family, p.sybil_info + p.sybil_info {
margin-top: -4px;
}
@@ -4432,7 +4523,7 @@ p#sybilinfo {
line-height: 140%;
}
-p.sybil_floodfill + a[name] + table.sybil_routerinfo, p.hashdist + a[name] + table.sybil_routerinfo {
+p.sybil_info + a[name] + table.sybil_routerinfo, p.hashdist + a[name] + table.sybil_routerinfo {
margin-top: 10px !important;
}
@@ -5028,7 +5119,7 @@ ul.statlist a[name], ul.statlist b, ul.statlist li b, ul.statlist a[name]:hover
}
.routersummary td, .routersummary a, .routersummary button, .routersummary h4, .routersummary h4 a,
-#floodfill th, .applabel a, #jardump td {
+#floodfill th, .applabel a, #jardump td, .statusnotes {
font-size: 9pt !important;
}
@@ -5078,8 +5169,15 @@ div.joblog h3 {
margin-bottom: 12px !important;
}
-
#certs.main p + p:empty + h4 {
margin-top: -15px !important;
}
+
+button.reload, button.stop {
+ min-width: 101px;
+}
+
+.subheading b {
+ font-size: 10.5pt !important;
+}
}
diff --git a/installer/resources/themes/console/dark/mobile.css b/installer/resources/themes/console/dark/mobile.css
index 6402da156..6353aa1fb 100644
--- a/installer/resources/themes/console/dark/mobile.css
+++ b/installer/resources/themes/console/dark/mobile.css
@@ -23,6 +23,16 @@ div.routersummary {
margin: 0 auto;
}
+@media screen and (min-width: 1500px) {
+div.routersummary {
+ width: 600px !important;
+}
+
+.routersummary table[id^="sb_"] {
+ width: 600px !important;
+}
+}
+
div[style^='height'] + a {
display: inline-block;
padding-top: 8px !important;
@@ -113,3 +123,21 @@ div.main {
min-width: 590px;
margin: -1px 0 5px;
}
+
+.sorry {
+ margin: -1px 0 0 !important;
+}
+
+@media screen and (min-width: 1500px) {
+div.news {
+ margin: -1px 0 0 !important;
+}
+
+div.main {
+ margin: -1px 0 5px !important;
+}
+
+.sorry {
+ margin: -1px 0 0 !important;
+}
+}
\ No newline at end of file
diff --git a/installer/resources/themes/console/light/console.css b/installer/resources/themes/console/light/console.css
index 08e72b426..bc8732105 100644
--- a/installer/resources/themes/console/light/console.css
+++ b/installer/resources/themes/console/light/console.css
@@ -289,6 +289,20 @@ div.routersummary table {
display: inline-block;
}
+.sb_notice {
+ background: #eef;
+ border: 1px solid #89f;
+ border-radius: 2px;
+ box-shadow: 0 0 1px #bbb, inset 0 0 0 1px #fff;
+ margin: 8px 0 -2px;
+ padding: 5px 3px;
+ line-height: 140%;
+}
+
+hr + .sb_notice {
+ margin-top: -2px;
+}
+
div.routersummary tr {
background-image: none !important;
background-color: transparent !important;
@@ -1967,7 +1981,7 @@ h1 {
margin: 0 0 10px 207px;
font-size: 18pt;
line-height: 90%;
- letter-spacing: 0.08em;
+ letter-spacing: 0.12em;
text-transform: uppercase;
box-shadow: inset 0 0 0 1px #bbf;
white-space: normal;
@@ -2140,7 +2154,7 @@ h4 {
padding: 2px 3px;
color: #001;
font-size: 7pt;
- width: 350px;
+ width: 360px;
text-align: right;
float: right;
vertical-align: middle;
@@ -2565,6 +2579,17 @@ button::-moz-focus-inner, input[type="submit"]::-moz-focus-inner, input[type="re
box-shadow: inset 2px 2px 2px #555;
}
+.routersummary .reload[value="Reseed"] {
+ text-indent: 0;
+ text-align: left;
+ min-width: 0;
+ background: url(/themes/console/images/buttons/download.png) center left 4px no-repeat, linear-gradient(to bottom, #fff 0%, #ddd 100%) !important;
+}
+
+.routersummary .reload[value="Reseed"]:hover, .routersummary .reload[value="Reseed"]:focus {
+ background: url(/themes/console/images/buttons/download.png) center left 4px no-repeat, linear-gradient(to bottom, #ddd 0%, #fff 100%) !important;
+}
+
.routersummary .stop {
background: url(/themes/console/images/buttons/shutdown.png) center center no-repeat, linear-gradient(to bottom, #fff 0%, #ddd 100%);
}
@@ -2578,24 +2603,49 @@ button::-moz-focus-inner, input[type="submit"]::-moz-focus-inner, input[type="re
background: url(/themes/console/images/buttons/download.png) 3px center no-repeat, linear-gradient(to bottom, #fff 0%, #ddd 100%);
background-size: 16px 16px, 100% 100% !important;
padding: 5px 3px 5px 17px !important;
-/* margin-top: -4px;*/
}
.routersummary .cancel {
margin-top: 10px;
}
-@media screen and (-webkit-min-device-pixel-ratio:0) {
-.routersummary .download, .routersummary .download:hover, .routersummary .download:focus, .routersummary .download:active {
- padding-left: 19px !important;
+/* Show text on context specific buttons (eg deferred shutdown) */
+
+.routersummary .reload[value="restartImmediate"], .routersummary .stop[value="shutdownImmediate"], .routersummary .reload[value="Reseed"] {
+ text-indent: 0;
+ text-align: left;
+ min-width: 0 !important;
+ padding-left: 21px !important;
}
+
+.routersummary .reload[value="restartImmediate"] {
+ background: url(/themes/console/images/buttons/restart.png) center left 4px no-repeat, linear-gradient(to bottom, #fff 0%, #ddd 100%) !important;
+}
+
+.routersummary .reload[value="restartImmediate"]:hover, .routersummary .reload[value="restartImmediate"]:focus, .routersummary .reload[value="restartImmediate"]:active {
+ background: url(/themes/console/images/buttons/restart_hover.png) center left 4px no-repeat, linear-gradient(to bottom, #ddd 0%, #fff 100%) !important;
+}
+
+.routersummary .stop[value="shutdownImmediate"] {
+ background: url(/themes/console/images/buttons/shutdown.png) center left 4px no-repeat, linear-gradient(to bottom, #fff 0%, #ddd 100%) !important;
+}
+
+.routersummary .stop[value="shutdownImmediate"]:hover, .routersummary .stop[value="shutdownImmediate"]:focus, .routersummary .stop[value="shutdownImmediate"]:active {
+ background: url(/themes/console/images/buttons/shutdown_hover.png) center left 4px no-repeat, linear-gradient(to bottom, #ddd 0%, #fff 100%) !important;
+}
+
+.routersummary .reload[value="Reseed"] {
+ background: url(/themes/console/images/buttons/download.png) center left 4px no-repeat, linear-gradient(to bottom, #fff 0%, #ddd 100%) !important;
+}
+
+.routersummary .reload[value="Reseed"]:hover, .routersummary .reload[value="Reseed"]:focus, .routersummary .reload[value="Reseed"]:active {
+ background: url(/themes/console/images/buttons/download.png) center left 4px no-repeat !important, linear-gradient(to bottom, #ddd 0%, #fff 100%);
}
.routersummary .download:hover, .routersummary .download:focus, .routersummary .download:active {
- background: url(/themes/console/images/buttons/download.png) 3px center no-repeat, linear-gradient(to bottom, #ddd 0%, #fff 100%);
+ background: url(/themes/console/images/buttons/download.png) 4px center no-repeat, linear-gradient(to bottom, #ddd 0%, #fff 100%);
background-size: 16px 16px, 100% 100% !important;
- padding: 5px 3px 5px 17px !important;
- border: 1px solid #f60;
+ padding: 5px 3px 5px 21px !important;
}
/* end sidebar buttons */
@@ -2625,6 +2675,7 @@ input[type="checkbox"], input[type="radio"] {
vertical-align: middle !important;
margin-top: 4px !important;
margin-bottom: 4px !important;
+ background: none;
}
input[type="checkbox"]:focus, input[type="radio"]:focus {
@@ -3391,7 +3442,7 @@ table#leasesetdebug th a:hover, table#leasesetsummary th a:hover {
margin-top: 10px;
}
-#netdboverview th {
+#netdboverview th, #netdblookup th {
text-transform: uppercase;
font-size: 11pt;
letter-spacing: 0.08em;
@@ -3441,6 +3492,11 @@ table#leasesetdebug th a:hover, table#leasesetsummary th a:hover {
border-left: 1px solid #447;
}
+#netdbcountrylist img {
+ margin-right: 5px;
+ text-align: right;
+}
+
#leasesetsummary td:first-child {
width: 50px;
white-space: nowrap;
@@ -3611,7 +3667,7 @@ table.sybil_routerinfo:first-of-type th {
white-space: nowrap;
}
-p.sybil_floodfill, p.family, p.threatpoints, p.hashdist, p#sybil_totals {
+p.sybil_info, p.family, p.threatpoints, p.hashdist, p#sybil_totals {
border: 1px solid #7778bf;
padding: 5px 5px 5px 30px;
margin: 3px 0;
@@ -3623,7 +3679,7 @@ p.family + p.family {
margin-top: -4px;
}
-p.sybil_floodfill + a[name] + table.sybil_routerinfo, p.hashdist + a[name] + table.sybil_routerinfo, table.sybil_routerinfo + p {
+p.sybil_info + a[name] + table.sybil_routerinfo, p.hashdist + a[name] + table.sybil_routerinfo, table.sybil_routerinfo + p {
margin-top: 10px !important;
}
@@ -3650,8 +3706,49 @@ p:empty { /* empty paragraph nuke */
display: none;
}
-/* end netdb */
+/* Advanced lookup */
+#netdblookup {
+ margin-bottom: -8px;
+}
+
+#netdblookup td:first-child {
+ text-align: right;
+ width: 100px;
+ white-space: nowrap;
+ font-weight: bold;
+}
+
+#netdblookup td:nth-child(2) {
+ width: 100px;
+}
+
+.subheading {
+ text-align: left !important;
+ background: #fff;
+ padding: 10px;
+ border: 1px solid #7778bf;
+}
+
+.subheading b {
+ font-size: 10pt !important;
+}
+
+.sybil_distance th {
+ text-align: left;
+ padding: 5px;
+}
+
+.sybil_distance th:last-child, .sybil_distance td:last-child {
+ text-align: right;
+}
+
+.sybil_distance tr:nth-child(n+2):hover {
+ background: #ffe;
+ font-weight: bold;
+}
+
+/* end netdb */
ul#banlist {
background: #fff;
@@ -4125,7 +4222,7 @@ img.app, img.app2p {
@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,
-#peerdefs, #profile_defs, #thresholds, #configinfo, .infohelp, .infowarn, button, input, select, textarea {
+#peerdefs, #profile_defs, #thresholds, #configinfo, .infohelp, .infowarn, button, input, select, textarea, #configinfo th {
font-size: 10pt !important;
}
@@ -4190,4 +4287,13 @@ h3#pluginconfig, h3#webappconfig, h3#i2pclientconfig, h3#pluginmanage, p#clientc
.sorry {
margin-left: 232px !important;
}
-}
\ No newline at end of file
+
+.routersummary .reload, .routersummary .stop {
+ min-width: 96px;
+ margin: 0 3px -5px;
+}
+
+.subheading b {
+ font-size: 10.5pt !important;
+}
+}
diff --git a/installer/resources/themes/console/light/i2ptunnel.css b/installer/resources/themes/console/light/i2ptunnel.css
index c0d170496..1c2b5d540 100644
--- a/installer/resources/themes/console/light/i2ptunnel.css
+++ b/installer/resources/themes/console/light/i2ptunnel.css
@@ -867,4 +867,4 @@ body, select, .control, input, textarea {
th {
font-size: 10.5pt;
}
-}
+}
\ No newline at end of file
diff --git a/installer/resources/themes/console/light/mobile.css b/installer/resources/themes/console/light/mobile.css
index 958ce9bf5..92834aedb 100644
--- a/installer/resources/themes/console/light/mobile.css
+++ b/installer/resources/themes/console/light/mobile.css
@@ -14,6 +14,16 @@ div.routersummary {
margin: 0 auto -6px;
}
+@media screen and (min-width: 1500px) {
+div.routersummary {
+ width: 600px !important;
+}
+
+.routersummary table[id^="sb_"] {
+ width: 600px !important;
+}
+}
+
#xhr {
margin-top: 9px !important;
}
@@ -65,20 +75,44 @@ table[id^="sb_"] tr:nth-child(odd) td {
}
h1 {
- margin: 14px 10px -1px 0;
+ margin: 14px 0 -1px;
min-width: 0;
}
div.news {
- margin: 0 10px -11px 0;
+ margin: 0 0 -11px;
min-width: 0;
}
div.main {
- margin: 10px 10px 20px 0;
+ margin: 10px 0 0;
min-width: 0;
}
+.sorry {
+ margin-left: 0 !important;
+}
+
+@media screen and (min-width: 1500px) {
+
+h1 {
+ margin: 14px 0 -1px !important;
+}
+
+div.news {
+ margin: 0 0 -11px !important;
+}
+
+div.main {
+ margin: 10px 0 0 !important;
+ min-width: 0;
+}
+
+.sorry {
+ margin-left: 0 !important;
+}
+}
+
.confignav {
padding-bottom: 10px !important;
}
diff --git a/installer/resources/themes/console/midnight/console.css b/installer/resources/themes/console/midnight/console.css
index 85e6f6263..e521ab522 100644
--- a/installer/resources/themes/console/midnight/console.css
+++ b/installer/resources/themes/console/midnight/console.css
@@ -191,6 +191,7 @@ input[type="checkbox"], .optbox {
vertical-align: sub;
filter: invert(100%) sepia(100%) hue-rotate(200deg) saturate(200%); /* colorize radios and checkboxes */
-webkit-filter: invert(100%) sepia(100%) hue-rotate(200deg) saturate(200%);
+ background: none;
}
input[type="checkbox"]:hover, .optbox:hover, input[type="checkbox"]:focus, .optbox:focus {
@@ -845,6 +846,12 @@ button::-moz-focus-inner, input[type="submit"]::-moz-focus-inner, input[type="re
background-blend-mode: normal;
}
+.routersummary .download {
+ background: url(/themes/console/images/buttons/download.png) 3px center no-repeat;
+ background-size: 16px 16px, 100% 100% !important;
+ padding: 5px 3px 5px 17px !important;
+}
+
.routersummary .reload, .routersummary .stop {
text-indent: -99999px;
background-size: 16px 16px, 100% 100% !important;
@@ -874,10 +881,49 @@ button::-moz-focus-inner, input[type="submit"]::-moz-focus-inner, input[type="re
background-size: 16px 16px, 100% 100% !important;
}
-.routersummary .download {
- background: url(/themes/console/images/buttons/download.png) 3px center no-repeat;
- background-size: 16px 16px, 100% 100% !important;
- padding: 5px 3px 5px 17px !important;
+/* Show text on context specific buttons (eg deferred shutdown) */
+
+.routersummary .reload[value="restartImmediate"], .routersummary .stop[value="shutdownImmediate"], .routersummary .reload[value="Reseed"] {
+ text-indent: 0;
+ text-align: left;
+ min-width: 0 !important;
+ padding-left: 21px !important;
+}
+
+.routersummary .reload[value="restartImmediate"] {
+ background: url(/themes/console/images/buttons/restart.png) center left 4px no-repeat, linear-gradient(to bottom, #1f1e32, #090812 50%, #000 50%) !important;
+}
+
+.routersummary .reload[value="restartImmediate"]:hover {
+ background: #000 url(/themes/console/images/buttons/restart.png) center left 4px no-repeat !important;
+}
+
+.routersummary .reload[value="restartImmediate"]:focus, .routersummary .reload[value="restartImmediate"]:active {
+ background: url(/themes/console/images/buttons/restart_hover.png) center left 4px no-repeat;
+}
+
+.routersummary .stop[value="shutdownImmediate"] {
+ background: url(/themes/console/images/buttons/shutdown.png) center left 4px no-repeat, linear-gradient(to bottom, #1f1e32, #090812 50%, #000 50%) !important;
+}
+
+.routersummary .stop[value="shutdownImmediate"]:hover {
+ background: #000 url(/themes/console/images/buttons/shutdown_hover.png) center left 4px no-repeat !important;
+}
+
+.routersummary .stop[value="shutdownImmediate"]:focus, .routersummary .stop[value="shutdownImmediate"]:active {
+ background: url(/themes/console/images/buttons/shutdown_hover.png) center left 4px no-repeat;
+}
+
+.routersummary .reload[value="Reseed"] {
+ background: url(/themes/console/images/buttons/download.png) center left 4px no-repeat, linear-gradient(to bottom, #1f1e32, #090812 50%, #000 50%) !important;
+}
+
+.routersummary .reload[value="Reseed"]:hover {
+ background: #000 url(/themes/console/images/buttons/download.png) center left 4px no-repeat !important;
+}
+
+.routersummary .reload[value="Reseed"]:focus, .routersummary .reload[value="Reseed"]:active {
+ background: #652787 url(/themes/console/images/buttons/download.png) center left 4px no-repeat !important;
}
@media screen and (-webkit-min-device-pixel-ratio:0) {
@@ -1165,7 +1211,21 @@ div.logo hr {
line-height: 140%;
}
+.sb_notice {
+ background: #001;
+ border: 1px solid #241f69;
+ border-radius: 2px;
+ box-shadow: inset 0 0 0 1px #000;
+ margin: 10px -4px -2px;
+ padding: 5px 3px;
+}
+
+hr + .sb_notice {
+ margin-top: 6px;
+}
+
/* sidebar stacked tables fix */
+
#sb_localid + #sb_version {
margin-top: 6px !important;
margin-bottom: 5px !important;
@@ -2028,7 +2088,10 @@ h2 a:visited {
h2 a:hover {
color: #652787;
- text-shadow: 0 0 1px #652787;
+}
+
+h2 a[name]:hover, h2 a[name]:active {
+ color: #c9ceff !important;
}
h3, h3.welcome, div.news h3 {
@@ -2067,11 +2130,11 @@ h2, h3, h4, .confignav {
}
.langbox {
- margin: 3px 4px 2px 5px;
+ margin: 5px 4px 2px 5px;
padding: 0;
color: #c9ceff;
font-size: 7pt;
- width: 350px;
+ width: 360px;
text-align: right;
float: right;
vertical-align: middle;
@@ -2079,7 +2142,8 @@ h2, h3, h4, .confignav {
.langbox img {
opacity: 0.5;
- padding: 1px 2px !important;
+ margin: 0 !important;
+ padding: 0;
}
.langbox img:hover {
@@ -3510,6 +3574,7 @@ div#volunteer {
}
#changelog pre {
+ margin-top: 11px;
padding: 10px 10px 10px 20px;
max-height: 600px;
overflow-y: scroll;
@@ -3570,6 +3635,11 @@ table#netdboverview {
margin-bottom: 0;
}
+#netdbcountrylist img {
+ margin-right: 5px;
+ text-align: right;
+}
+
#netdbtransports {
border-left: 1px solid transparent !important;
border-right: 1px solid transparent !important;
@@ -3620,6 +3690,75 @@ th > img[src^="/imagegen"] { /* scale down header images */
border: 1px solid #000;
}
+/* Advanced lookup */
+
+#netdblookup {
+ margin-bottom: -4px;
+}
+
+#netdblookup th {
+ text-align: left;
+ font-size: 11pt;
+ letter-spacing: 0.08em;
+ padding: 10px;
+ text-transform: uppercase;
+}
+
+#netdblookup td:first-child {
+ text-align: right;
+ width: 100px;
+ white-space: nowrap;
+ font-weight: bold;
+}
+
+#netdblookup td:nth-child(2) {
+ width: 100px;
+ padding-left: 0;
+}
+
+.subheading {
+ text-align: left !important;
+ background: #000;
+ padding: 10px;
+ border: 1px solid #443da0;
+}
+
+.subheading b {
+ font-size: 10pt !important;
+}
+
+#netdblookup .optbox {
+ margin: 10px ;
+}
+
+#netdblookup .optionsave {
+ padding: 10px !important;
+}
+
+#netdb .tabletitle {
+ margin-bottom: -2px !important;
+}
+
+.sybil_distance th {
+ text-align: left;
+ padding: 5px;
+}
+
+.sybil_distance th:last-child, .sybil_distance td:last-child {
+ text-align: right;
+}
+
+.sybil_distance tr:nth-child(n+2):hover {
+ background: #002;
+ font-weight: bold;
+}
+
+.sybil_distance:last-child {
+ margin-bottom: 9px;
+}
+
+/* end netdb */
+
/* logs */
a[name="criticallogs"] + p + h3 + p + ul { /* tidy router logs ul */
@@ -4016,6 +4155,10 @@ table#jardump { /* /jars */
margin-top: -13px;
}
+.main#debug h2 + hr {
+ display: none;
+}
+
div.footnote {
text-align: right;
color: #443da0;
@@ -4046,17 +4189,17 @@ div.home {
}
h4.app, h4.app2 {
- background: url(images/header.png) center center repeat-x;
- border: 1px solid #443da0;
- font-size: 10.5pt;
- font-variant: small-caps;
- letter-spacing: 2px;
- margin: 11px -8px -9px -8px;
- padding: 7px 8px 7px;
- text-transform: uppercase;
- text-align: left;
- letter-spacing: 0.08em;
- word-spacing: 0.1em;
+ background: linear-gradient(to bottom, #191729 0%, #201f33 7%, #1f1e32 9%, #161525 21%, #090812 49%, #05050e 50%, #020206 51%, #010103 53%, #000000 56%, #000000 100%) !important;
+ border: 1px solid #443da0;
+ font-size: 10.5pt;
+ font-variant: small-caps;
+ letter-spacing: 2px;
+ margin: 11px -8px -9px -8px;
+ padding: 7px 8px 7px;
+ text-transform: uppercase;
+ text-align: left;
+ letter-spacing: 0.08em;
+ word-spacing: 0.1em;
}
h4.app2 {
@@ -4073,7 +4216,7 @@ div.ag2 {
div.app {
float: left;
- padding: 2px 0 4px;
+ padding: 2px 0 0;
min-width: 70px;
border: 1px solid #443da0;
background: #000;
@@ -4238,7 +4381,7 @@ td.app {
div.applabel {
font-size: 8pt;
margin: 2px 0 0;
- padding: 5px 2px 2px;
+ padding: 5px 2px 6px;
text-align: center;
vertical-align: bottom;
line-height: 95%;
@@ -4579,7 +4722,7 @@ table.sybil_routerinfo:first-of-type th {
white-space: nowrap;
}
-p.sybil_floodfill, p.family, p.threatpoints, p.hashdist, p#sybil_totals {
+p.sybil_info, p.family, p.threatpoints, p.hashdist, p#sybil_totals {
border: 1px solid #443da0;
padding: 5px 5px 5px 30px;
margin: 3px 0;
@@ -4590,15 +4733,15 @@ p.sybil_floodfill, p.family, p.threatpoints, p.hashdist, p#sybil_totals {
box-shadow: inset 0 0 0 1px #080077;
}
-p.sybil_floodfill, p.hashdist, p.family {
+p.sybil_info, p.hashdist, p.family {
margin-top: -1px;
}
-p.sybil_floodfill + p.sybil_floodfill, p.family + p.family {
+p.sybil_info + p.sybil_info, p.family + p.family {
margin-top: -4px;
}
-p.sybil_floodfill + a[name] + table.sybil_routerinfo, p.hashdist + a[name] + table.sybil_routerinfo {
+p.sybil_info + a[name] + table.sybil_routerinfo, p.hashdist + a[name] + table.sybil_routerinfo {
margin-top: 10px !important;
}
@@ -5172,4 +5315,8 @@ h4#updateplugins {
.sorry {
margin-left: 232px !important;
}
+
+.subheading b {
+ font-size: 10.5pt !important;
+}
}
diff --git a/installer/resources/themes/console/midnight/mobile.css b/installer/resources/themes/console/midnight/mobile.css
index ede599ac7..318ac8724 100644
--- a/installer/resources/themes/console/midnight/mobile.css
+++ b/installer/resources/themes/console/midnight/mobile.css
@@ -23,6 +23,16 @@ div.routersummary {
margin: 0 auto;
}
+@media screen and (min-width: 1500px) {
+div.routersummary {
+ width: 600px !important;
+}
+
+.routersummary table[id^="sb_"] {
+ width: 600px !important;
+}
+}
+
div[style^='height'] + a {
display: inline-block;
padding-top: 8px !important;
@@ -111,3 +121,21 @@ div.main {
min-width: 580px;
margin: -1px 0 !important;
}
+
+.sorry {
+ margin: -1px 0 0;
+}
+
+@media screen and (min-width: 1500px) {
+div.news {
+ margin: -1px 0 0 !important;
+}
+
+div.main {
+ margin: -1px 0 !important;
+}
+
+.sorry {
+ margin: -1px 0 0 !important;
+}
+}
\ No newline at end of file
|