diff --git a/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java index 3dd724b08..1c2190970 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java @@ -19,6 +19,7 @@ public class CSSHelper extends HelperBase { private static final String FORCE = "classic"; public static final String PROP_REFRESH = "routerconsole.summaryRefresh"; public static final String DEFAULT_REFRESH = "60"; + public static final int MIN_REFRESH = 5; private static final String PROP_XFRAME = "routerconsole.disableXFrame"; public String getTheme(String userAgent) { diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNavHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigNavHelper.java index eb8d504bb..7a6b032c1 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNavHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigNavHelper.java @@ -11,12 +11,12 @@ public class ConfigNavHelper extends HelperBase { /** configX.jsp */ private static final String pages[] = - {"", "net", "ui", "home", "service", "update", "tunnels", + {"", "net", "ui", "sidebar", "home", "service", "update", "tunnels", "clients", "peer", "keyring", "logging", "stats", "reseed", "advanced" }; private static final String titles[] = - {_x("Bandwidth"), _x("Network"), _x("UI"), _x("Home Page"), + {_x("Bandwidth"), _x("Network"), _x("UI"), _x("Summary Bar"), _x("Home Page"), _x("Service"), _x("Update"), _x("Tunnels"), _x("Clients"), _x("Peers"), _x("Keyring"), _x("Logging"), _x("Stats"), _x("Reseeding"), _x("Advanced") }; diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java index 799fc4346..713183247 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java @@ -8,6 +8,7 @@ import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; +import java.util.Map; import net.i2p.data.DataHelper; import net.i2p.data.Destination; @@ -17,6 +18,7 @@ import net.i2p.data.RouterAddress; import net.i2p.data.RouterInfo; import net.i2p.router.CommSystemFacade; import net.i2p.router.Router; +import net.i2p.router.RouterContext; import net.i2p.router.RouterVersion; import net.i2p.router.TunnelPoolSettings; import net.i2p.router.networkdb.kademlia.FloodfillNetworkDatabaseFacade; @@ -748,11 +750,11 @@ public class SummaryHelper extends HelperBase { return config.split("" + S); } - public void saveSummaryBarSections(String[] sections) { + static void saveSummaryBarSections(RouterContext ctx, Map sections) { StringBuilder buf = new StringBuilder(512); - for(int i = 0; i < sections.length; i++) - buf.append(sections[i]).append(S); - _context.router().saveConfig(PROP_SUMMARYBAR, buf.toString()); + for(String section : sections.values()) + buf.append(section).append(S); + ctx.router().saveConfig(PROP_SUMMARYBAR, buf.toString()); } /** output the summary bar to _out */ @@ -778,4 +780,33 @@ public class SummaryHelper extends HelperBase { private String _requestURI; public void setRequestURI(String s) { _requestURI = s; } public String getRequestURI() { return _requestURI; } + + public String getConfigTable() { + String[] sections = getSummaryBarSections(); + StringBuilder buf = new StringBuilder(1024); + buf.append("\n"); + for (int i = 0; i < sections.length; i++) { + buf.append("\n"); + } + buf.append("" + + ""); + buf.append("
") + .append(_("Remove")) + .append("") + .append(_("Order")) + .append("") + .append(_("Name")) + .append("
") + .append(sections[i]) + .append("
") + .append(_("Add")).append(":" + + "
\n"); + return buf.toString(); + } } diff --git a/apps/routerconsole/jsp/configsidebar.jsp b/apps/routerconsole/jsp/configsidebar.jsp new file mode 100644 index 000000000..dcbf1fe1e --- /dev/null +++ b/apps/routerconsole/jsp/configsidebar.jsp @@ -0,0 +1,74 @@ +<%@page contentType="text/html"%> +<%@page pageEncoding="UTF-8"%> + + + +<%@include file="css.jsi" %> +<%=intl.title("config summary bar")%> + + + + + +<%@include file="summary.jsi" %> +

<%=intl._("I2P Summary Bar Configuration")%>

+
+<%@include file="confignav.jsi" %> + + +<% formhandler.storeMethod(request.getMethod()); %> + +" /> + + +<% + String pageNonce = formhandler.getNewNonce(); +%> + +" /> + +

<%=intl._("Refresh Interval")%>

+
+ + + " > + <%=intl._("seconds")%> + " > +
+ +

<%=intl._("Use preset layout")%>

+

<%=intl._("Several preset layouts for the summary bar are available.")%> + <%=intl._("Note that choosing one of the presets will cause the current summary bar configuration to be lost.")%>

+
+
+ + + " > + " > +
+
+ +

<%=intl._("Customise Summary Bar")%>

+
+ + + +
+ " > + " > + " > + " > + " > +
+ +