diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java index 96556b418..bac8d0009 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java @@ -1,13 +1,15 @@ package net.i2p.router.web; +import java.io.File; +import java.util.TreeSet; +import java.util.Set; + public class ConfigUIHelper extends HelperBase { - public ConfigUIHelper() {} - - private static final String themes[] = {_x("classic"), _x("dark"), _x("light")}; public String getSettings() { StringBuilder buf = new StringBuilder(512); String current = _context.getProperty(CSSHelper.PROP_THEME_NAME, CSSHelper.DEFAULT_THEME); + Set themes = themeSet(); for (String theme : themes) { buf.append(" themeSet() { + Set rv = new TreeSet(); + // add a failsafe even if we can't find any themes + rv.add(CSSHelper.DEFAULT_THEME); + File dir = new File(_context.getBaseDir(), "docs/themes/console"); + File[] files = dir.listFiles(); + if (files == null) + return rv; + for (int i = 0; i < files.length; i++) { + String name = files[i].getName(); + if (files[i].isDirectory() && ! name.equals("images")) + rv.add(name); + } + return rv; + } + private static final String langs[] = {"de", "en", "fr", "nl", "se", "zh"}; private static final String xlangs[] = {_x("German"), _x("English"), _x("French"), _x("Dutch"), _x("Swedish"), _x("Chinese")}; + /** todo sort by translated string */ public String getLangSettings() { StringBuilder buf = new StringBuilder(512); String current = Messages.getLanguage(_context); diff --git a/apps/routerconsole/java/src/net/i2p/router/web/GraphHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/GraphHelper.java index edd0b07dd..2d758637a 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/GraphHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/GraphHelper.java @@ -119,18 +119,9 @@ public class GraphHelper extends HelperBase { } return ""; } - public String getPeerSummary() { - try { - _context.commSystem().renderStatusHTML(_out); - _context.bandwidthLimiter().renderStatusHTML(_out); - } catch (IOException ioe) { - ioe.printStackTrace(); - } - return ""; - } -} -class AlphaComparator implements Comparator { +/** inner class, don't bother reindenting */ +private static class AlphaComparator implements Comparator { public int compare(Object lhs, Object rhs) { SummaryListener l = (SummaryListener)lhs; SummaryListener r = (SummaryListener)rhs; @@ -139,3 +130,5 @@ class AlphaComparator implements Comparator { return lName.compareTo(rName); } } + +} diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java index 63027f25a..585cd40ad 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java @@ -287,9 +287,9 @@ public class SummaryBarRenderer { if (prev != null) System.setProperty("net.i2p.router.web.ReseedHandler.noncePrev", prev); System.setProperty("net.i2p.router.web.ReseedHandler.nonce", nonce+""); String uri = _helper.getRequestURI(); - buf.append("
\n"); + buf.append("

\n"); buf.append("\n"); - buf.append("

\n"); + buf.append("

\n"); } anotherLine = true; } diff --git a/apps/routerconsole/java/strings/Strings.java b/apps/routerconsole/java/strings/Strings.java index 702d1f178..c9a94d6d2 100644 --- a/apps/routerconsole/java/strings/Strings.java +++ b/apps/routerconsole/java/strings/Strings.java @@ -8,7 +8,7 @@ package dummy; */ class Dummy { void dummy { - // wars + // wars for ConfigClientsHelper _("addressbook"); _("i2psnark"); _("i2ptunnel"); @@ -16,7 +16,7 @@ class Dummy { _("susidns"); _("routerconsole"); - // clients, taken from clients.config + // clients, taken from clients.config, for ConfigClientsHelper // note that if the wording changes in clients.config, we have to // keep the old string here as well for existing installs _("Web console"); @@ -35,5 +35,10 @@ class Dummy { _("eepsite"); // hardcoded in i2psnark _("I2PSnark"); + + // standard themes for ConfigUIHelper + _("classic"); + _("dark"); + _("light"); } } diff --git a/apps/routerconsole/jsp/configpeer.jsp b/apps/routerconsole/jsp/configpeer.jsp index 24671ce51..6b4d90cde 100644 --- a/apps/routerconsole/jsp/configpeer.jsp +++ b/apps/routerconsole/jsp/configpeer.jsp @@ -61,12 +61,12 @@ " />

- +

<%=intl._("Banned Peers")%>

" /> -
+

<%=intl._("Banned IPs")%>


diff --git a/apps/routerconsole/jsp/profiles.jsp b/apps/routerconsole/jsp/profiles.jsp index 6064067ff..dc3a0a59d 100644 --- a/apps/routerconsole/jsp/profiles.jsp +++ b/apps/routerconsole/jsp/profiles.jsp @@ -12,6 +12,6 @@ " /> - +

<%=intl._("Banned Peers")%>


diff --git a/apps/susidns/src/jsp/subscriptions.jsp b/apps/susidns/src/jsp/subscriptions.jsp index 763660bcf..75542d57d 100644 --- a/apps/susidns/src/jsp/subscriptions.jsp +++ b/apps/susidns/src/jsp/subscriptions.jsp @@ -71,6 +71,7 @@ The subscription file contains a list of (i2p) URLs. The addressbook application regularly (once per hour) checks this list for new eepsites. Those URLs simply contain the published hosts.txt file of other people. The default subscription is the hosts.txt from www.i2p2.i2p, which is updated infrequently. So it is a good idea to add additional subscriptions to sites that have the latest addresses. +See the FAQ for a list of subscription URLs.