From c944648b991a4351a9111778dc123c37d855eb01 Mon Sep 17 00:00:00 2001 From: zzz Date: Sun, 12 Jul 2009 03:21:20 +0000 Subject: [PATCH] * Add configui.jsp * orange flash remove take 2 --- .../net/i2p/router/web/ConfigUIHandler.java | 31 ++++++++++++++ .../net/i2p/router/web/ConfigUIHelper.java | 20 ++++++++++ apps/routerconsole/jsp/confignav.jsp | 4 ++ apps/routerconsole/jsp/configui.jsp | 40 +++++++++++++++++++ history.txt | 4 ++ .../src/net/i2p/router/RouterVersion.java | 2 +- .../KademliaNetworkDatabaseFacade.java | 6 +-- .../router/tunnel/pool/TunnelPoolManager.java | 8 ++-- 8 files changed, 107 insertions(+), 8 deletions(-) create mode 100644 apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHandler.java create mode 100644 apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java create mode 100644 apps/routerconsole/jsp/configui.jsp diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHandler.java new file mode 100644 index 000000000..d7bbe080c --- /dev/null +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHandler.java @@ -0,0 +1,31 @@ +package net.i2p.router.web; + +/** set the theme */ +public class ConfigUIHandler extends FormHandler { + private boolean _shouldSave; + private String _config; + + protected void processForm() { + if (_shouldSave) + saveChanges(); + } + + public void setShouldsave(String moo) { _shouldSave = true; } + + public void setTheme(String val) { + _config = val; + } + + private void saveChanges() { + if (_config == null) + return; + if (_config.equals("default")) + _context.router().removeConfigSetting(ConfigUIHelper.PROP_THEME); + else + _context.router().setConfigSetting(ConfigUIHelper.PROP_THEME, _config); + if (_context.router().saveConfig()) + addFormNotice("Configuration saved successfully"); + else + addFormNotice("Error saving the configuration (applied but not saved) - please see the error logs"); + } +} diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java new file mode 100644 index 000000000..1e7ffa3ea --- /dev/null +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java @@ -0,0 +1,20 @@ +package net.i2p.router.web; + +public class ConfigUIHelper extends HelperBase { + public ConfigUIHelper() {} + + public static final String PROP_THEME = "routerconsole.theme"; + private static final String themes[] = {"default", "classic", "dark", "defCon1", "light"}; + + public String getSettings() { + StringBuilder buf = new StringBuilder(512); + String current = _context.getProperty(PROP_THEME, "default"); + for (String theme : themes) { + buf.append("").append(theme).append("
\n"); + } + return buf.toString(); + } +} diff --git a/apps/routerconsole/jsp/confignav.jsp b/apps/routerconsole/jsp/confignav.jsp index ca7a7e8e8..b28286454 100644 --- a/apps/routerconsole/jsp/confignav.jsp +++ b/apps/routerconsole/jsp/confignav.jsp @@ -4,6 +4,8 @@ <% if (request.getRequestURI().indexOf("config.jsp") != -1) { %>Network<% } + else if (request.getRequestURI().indexOf("configui.jsp") != -1) { + %>UI<% } else if (request.getRequestURI().indexOf("configservice.jsp") != -1) { %>Service<% } else if (request.getRequestURI().indexOf("configupdate.jsp") != -1) { @@ -26,6 +28,8 @@ Configuration -->

<% if (request.getRequestURI().indexOf("config.jsp") != -1) { %>Network | <% } else { %>Network | <% } + if (request.getRequestURI().indexOf("configui.jsp") != -1) { + %>UI | <% } else { %>UI | <% } if (request.getRequestURI().indexOf("configservice.jsp") != -1) { %>Service | <% } else { %>Service | <% } if (request.getRequestURI().indexOf("configupdate.jsp") != -1) { diff --git a/apps/routerconsole/jsp/configui.jsp b/apps/routerconsole/jsp/configui.jsp new file mode 100644 index 000000000..6188a4ebd --- /dev/null +++ b/apps/routerconsole/jsp/configui.jsp @@ -0,0 +1,40 @@ +<%@page contentType="text/html"%> +<%@page pageEncoding="UTF-8"%> + + + +I2P Router Console - config UI +<%@include file="css.jsp" %> + + +<%@include file="nav.jsp" %> +<%@include file="summary.jsp" %> + + +" /> + +

I2P UI Configuration

+
+ + <%@include file="confignav.jsp" %> + + + + " /> + + +

Router Console Theme

+
+ <% String prev = System.getProperty("net.i2p.router.web.ConfigUIHandler.nonce"); + if (prev != null) System.setProperty("net.i2p.router.web.ConfigUIHandler.noncePrev", prev); + System.setProperty("net.i2p.router.web.ConfigUIHandler.nonce", new java.util.Random().nextLong()+""); %> + " /> + + +

+ +

+ +
+ + diff --git a/history.txt b/history.txt index a2d546a72..27041f601 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,7 @@ +2009-07-12 zzz + * Add configui.jsp + * orange flash remove take 2 + 2009-07-11 zzz * netdb.jsp: Fix bad tag causing orange mouseovers diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index aea509c4d..0116da736 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -18,7 +18,7 @@ public class RouterVersion { /** deprecated */ public final static String ID = "Monotone"; public final static String VERSION = CoreVersion.VERSION; - public final static long BUILD = 7; + public final static long BUILD = 8; /** for example "-test" */ public final static String EXTRA = ""; public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA; diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java index 7dc1edfa7..f891ab897 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java @@ -1003,7 +1003,7 @@ public class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacade { out.write("View LeaseSets"); Hash us = _context.routerHash(); - out.write("

Routers (

Routers (view without"); else @@ -1075,9 +1075,9 @@ public class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacade { private void renderRouterInfo(StringBuilder buf, RouterInfo info, boolean isUs, boolean full) { String hash = info.getIdentity().getHash().toBase64(); - buf.append(""); + buf.append(""); if (isUs) { - buf.append("Our info: ").append(hash).append("
\n"); + buf.append("
Our info: ").append(hash).append("
\n"); } else { buf.append("Peer info for: ").append(hash).append("
\n"); } diff --git a/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java b/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java index 49f82acae..cd3a5e0ac 100644 --- a/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java +++ b/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java @@ -405,7 +405,7 @@ public class TunnelPoolManager implements TunnelManagerFacade { public void renderStatusHTML(Writer out) throws IOException { - out.write("

Exploratory tunnels (config):

\n"); + out.write("

Exploratory tunnels (config):

\n"); renderPool(out, _inboundExploratory, _outboundExploratory); List destinations = null; @@ -428,7 +428,7 @@ public class TunnelPoolManager implements TunnelManagerFacade { if (name == null) name = client.toBase64().substring(0,4); out.write("

Client tunnels for " + name); + + "\" >Client tunnels for " + name); if (_context.clientManager().isLocal(client)) out.write(" (config):

\n"); else @@ -438,7 +438,7 @@ public class TunnelPoolManager implements TunnelManagerFacade { List participating = _context.tunnelDispatcher().listParticipatingTunnels(); Collections.sort(participating, new TunnelComparator()); - out.write("

Participating tunnels:

\n"); + out.write("

Participating tunnels:

\n"); out.write("" + "\n"); @@ -601,7 +601,7 @@ public class TunnelPoolManager implements TunnelManagerFacade { List peerList = new ArrayList(peers); Collections.sort(peerList, new HashComparator()); - out.write("

Tunnel Counts By Peer:

\n"); + out.write("

Tunnel Counts By Peer:

\n"); out.write("
Receive onFrom" + "Send onToExpirationUsageRateRole
\n"); for (Hash h : peerList) { out.write("
PeerExpl. + Client% of totalPart. from + to% of total
");