From bb0531053dca4abe57978996b6c17ece81a8834d Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Fri, 3 Apr 2009 21:33:35 +0000 Subject: [PATCH] Console: Fix bug with IE buttons not working, because it sends the label instead of the value --- .../java/src/net/i2p/i2ptunnel/web/IndexBean.java | 2 +- .../src/net/i2p/router/web/ConfigClientsHandler.java | 12 ++++++++++++ .../src/net/i2p/router/web/ConfigClientsHelper.java | 6 +++--- .../src/net/i2p/router/web/ConfigRestartBean.java | 11 ++++++----- apps/routerconsole/jsp/configclients.jsp | 5 +++++ 5 files changed, 27 insertions(+), 9 deletions(-) diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java index fcf45d94d3..ce547cd029 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java @@ -142,7 +142,7 @@ public class IndexBean { } private String processAction() { - if ( (_action == null) || (_action.trim().length() <= 0) ) + if ( (_action == null) || (_action.trim().length() <= 0) || ("Cancel".equals(_action))) return ""; if ( (_prevNonce != _curNonce) && (!validPassphrase(_passphrase)) ) return "Invalid nonce, are you being spoofed?"; diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHandler.java index 7af6125d65..b612c005b2 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHandler.java @@ -41,6 +41,18 @@ public class ConfigClientsHandler extends FormHandler { startClient(appnum); else startWebApp(app); + } else if (_action.toLowerCase().startsWith("start<span class=hide> ") && + _action.toLowerCase().endsWith("</span>")) { + // IE sucks + String app = _action.substring(23, _action.length() - 7); + int appnum = -1; + try { + appnum = Integer.parseInt(app); + } catch (NumberFormatException nfe) {} + if (appnum >= 0) + startClient(appnum); + else + startWebApp(app); } else { addFormError("Unsupported " + _action); } diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHelper.java index 2bee435335..984569b967 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHelper.java @@ -62,10 +62,10 @@ public class ConfigClientsHelper extends HelperBase { if (ro) buf.append("disabled=\"true\" "); } - buf.append("/></td><td> "); + buf.append("/></td><td> "); if (!enabled) { - buf.append("<button type=\"submit\" name=\"action\" value=\"Start ").append(index).append("\" >Start</button>"); + buf.append("<button type=\"submit\" name=\"action\" value=\"Start ").append(index).append("\" >Start<span class=hide> ").append(index).append("</span></button>"); } - buf.append(" </td><td>").append(desc).append("</td></tr>\n"); + buf.append(" </td><td>").append(desc).append("</td></tr>\n"); } } diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigRestartBean.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigRestartBean.java index e8eb6b26d3..7ae7181bc2 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigRestartBean.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigRestartBean.java @@ -24,20 +24,21 @@ public class ConfigRestartBean { RouterContext ctx = ContextHelper.getContext(null); String systemNonce = getNonce(); if ( (nonce != null) && (systemNonce.equals(nonce)) && (action != null) ) { - if ("shutdownImmediate".equals(action)) { + // Normal browsers send value, IE sends button label + if ("shutdownImmediate".equals(action) || "Shutdown immediately".equals(action)) { ctx.addShutdownTask(new ConfigServiceHandler.UpdateWrapperManagerTask(Router.EXIT_HARD)); //ctx.router().shutdown(Router.EXIT_HARD); // never returns ctx.router().shutdownGracefully(Router.EXIT_HARD); // give the UI time to respond - } else if ("cancelShutdown".equals(action)) { + } else if ("cancelShutdown".equals(action) || "Cancel shutdown".equals(action)) { ctx.router().cancelGracefulShutdown(); - } else if ("restartImmediate".equals(action)) { + } else if ("restartImmediate".equals(action) || "Restart immediately".equals(action)) { ctx.addShutdownTask(new ConfigServiceHandler.UpdateWrapperManagerTask(Router.EXIT_HARD_RESTART)); //ctx.router().shutdown(Router.EXIT_HARD_RESTART); // never returns ctx.router().shutdownGracefully(Router.EXIT_HARD_RESTART); // give the UI time to respond - } else if ("restart".equals(action)) { + } else if ("restart".equalsIgnoreCase(action)) { ctx.addShutdownTask(new ConfigServiceHandler.UpdateWrapperManagerTask(Router.EXIT_GRACEFUL_RESTART)); ctx.router().shutdownGracefully(Router.EXIT_GRACEFUL_RESTART); - } else if ("shutdown".equals(action)) { + } else if ("shutdown".equalsIgnoreCase(action)) { ctx.addShutdownTask(new ConfigServiceHandler.UpdateWrapperManagerTask(Router.EXIT_GRACEFUL)); ctx.router().shutdownGracefully(); } diff --git a/apps/routerconsole/jsp/configclients.jsp b/apps/routerconsole/jsp/configclients.jsp index 7240281988..8e66cb54ee 100644 --- a/apps/routerconsole/jsp/configclients.jsp +++ b/apps/routerconsole/jsp/configclients.jsp @@ -5,6 +5,11 @@ <html><head> <title>I2P Router Console - config clients</title> <link rel="stylesheet" href="default.css" type="text/css" /> +<style type='text/css'> +button span.hide{ + display:none; +} +</style> </head><body> <%@include file="nav.jsp" %> -- GitLab