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 fa04bccad..756126895 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java @@ -15,7 +15,7 @@ import net.i2p.router.RouterContext; * */ public class SummaryBarRenderer { - static final Map sections; + /*static final Map ALL_SECTIONS; static { Map aMap = new HashMap();; try { @@ -37,8 +37,8 @@ public class SummaryBarRenderer { aMap.put("NewsHeadings", SummaryBarRenderer.class.getMethod("renderNewsHeadingsHTML")); } catch (java.lang.NoSuchMethodException e) { } - sections = Collections.unmodifiableMap(aMap); - } + ALL_SECTIONS = Collections.unmodifiableMap(aMap); + }*/ private final RouterContext _context; private final SummaryHelper _helper; @@ -77,54 +77,62 @@ public class SummaryBarRenderer { .append(_("I2P Router Console")) .append("\" title=\"") .append(_("I2P Router Console")) - .append("\">\n") - .append("
\n") - .append(renderHelpAndFAQHTML()) - .append("
\n"); + .append("\">\n"); - File lpath = new File(_context.getBaseDir(), "docs/toolbar.html"); - // you better have target="_top" for the links in there... - if (lpath.exists()) { - ContentHelper linkhelper = new ContentHelper(); - linkhelper.setPage(lpath.getAbsolutePath()); - linkhelper.setMaxLines("100"); - buf.append(linkhelper.getContent()); - } else { - buf.append(renderI2PServicesHTML()) - .append("
\n") - .append(renderI2PInternalsHTML()); + out.write(buf.toString()); - out.write(buf.toString()); + String[] sections = _helper.getSummaryBarSections(); + for (int i = 0; i < sections.length; i++) { + /*try { + String section = (String)ALL_SECTIONS.get(sections[i]).invoke(this); + if (section != null && section != "") { + out.write("
" + i + "
\n" + section); + } + } catch (Exception e) { + out.write("
" +i + " - Exception
\n" + e); + }*/ buf.setLength(0); + + String section = sections[i]; + + buf.append("
\n"); + if ("HelpAndFAQ".equals(section)) + buf.append(renderHelpAndFAQHTML()); + else if ("I2PServices".equals(section)) + buf.append(renderI2PServicesHTML()); + else if ("I2PInternals".equals(section)) + buf.append(renderI2PInternalsHTML()); + else if ("General".equals(section)) + buf.append(renderGeneralHTML()); + else if ("ShortGeneral".equals(section)) + buf.append(renderShortGeneralHTML()); + else if ("NetworkReachability".equals(section)) + buf.append(renderNetworkReachabilityHTML()); + else if ("UpdateStatus".equals(section)) + buf.append(renderUpdateStatusHTML()); + else if ("RestartStatus".equals(section)) + buf.append(renderRestartStatusHTML()); + else if ("Peers".equals(section)) + buf.append(renderPeersHTML()); + else if ("FirewallAndReseedStatus".equals(section)) + buf.append(renderFirewallAndReseedStatusHTML()); + else if ("Bandwidth".equals(section)) + buf.append(renderBandwidthHTML()); + else if ("Tunnels".equals(section)) + buf.append(renderTunnelsHTML()); + else if ("Congestion".equals(section)) + buf.append(renderCongestionHTML()); + else if ("TunnelStatus".equals(section)) + buf.append(renderTunnelStatusHTML()); + else if ("Destinations".equals(section)) + buf.append(renderDestinationsHTML()); + else if ("NewsHeadings".equals(section)) + buf.append(renderNewsHeadingsHTML()); + + // Only output section if there's more than the
to print + if (buf.length() > 5) + out.write(buf.toString()); } - - buf.append("
\n") - .append(renderGeneralHTML()) - .append("
\n") - .append(renderNetworkReachabilityHTML()) - .append("
\n") - .append(renderUpdateStatusHTML()) - .append(renderRestartStatusHTML()) - .append("
\n") - .append(renderPeersHTML()) - .append("
\n"); - - out.write(buf.toString()); - buf.setLength(0); - - buf.append(renderFirewallAndReseedStatusHTML()) - .append(renderBandwidthHTML()) - .append("
\n") - .append(renderTunnelsHTML()) - .append("
\n") - .append(renderCongestionHTML()) - .append("
\n") - .append(renderTunnelStatusHTML()) - .append("
\n") - .append(renderDestinationsHTML()) - .append("
\n"); - - out.write(buf.toString()); } public String renderHelpAndFAQHTML() { 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 282c1be1e..46c6d58af 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java @@ -36,7 +36,7 @@ public class SummaryHelper extends HelperBase { //static final String THINSP = " / "; static final String THINSP = " / "; private static final char S = ','; - static final String PROP_SUMMARYBAR = "routerconsole.summarybar"; + static final String PROP_SUMMARYBAR = "routerconsole.summaryBar"; static final String PRESET_FULL = "HelpAndFAQ" + S + @@ -739,6 +739,18 @@ public class SummaryHelper extends HelperBase { return buf.toString(); } + public String[] getSummaryBarSections() { + String config = _context.getProperty(PROP_SUMMARYBAR, PRESET_FULL); + return config.split("" + S); + } + + public void saveSummaryBarSections(String[] 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()); + } + /** output the summary bar to _out */ public void renderSummaryBar() throws IOException { SummaryBarRenderer renderer = new SummaryBarRenderer(_context, this); diff --git a/apps/routerconsole/jsp/summaryframe.jsp b/apps/routerconsole/jsp/summaryframe.jsp index bdd4a8cbc..5822c9f64 100644 --- a/apps/routerconsole/jsp/summaryframe.jsp +++ b/apps/routerconsole/jsp/summaryframe.jsp @@ -56,7 +56,7 @@ <% // d and shutdownSoon defined above if (!shutdownSoon) { - out.print("
\n"); + out.print("
\n
\n"); if ("0".equals(d)) { out.print(""); out.print(intl._("Refresh (s)"));