From d16f187394f9e8a3dd0da69399a2cb6055ec0058 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Wed, 10 Dec 2008 16:25:09 +0000
Subject: [PATCH] change restart/shutdown/update links to buttons

---
 .../i2p/router/web/ConfigClientsHelper.java   |  2 +-
 .../net/i2p/router/web/ConfigRestartBean.java | 26 +++++++++++++------
 apps/routerconsole/jsp/summary.jsp            | 15 ++++++-----
 3 files changed, 28 insertions(+), 15 deletions(-)

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 18e746644f..d6441736a7 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHelper.java
@@ -79,7 +79,7 @@ public class ConfigClientsHelper {
         }
         buf.append("/></td><td>&nbsp");
         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</button>");
         }
         buf.append("&nbsp</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 2b8817a31e..3c9fe1bbf4 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigRestartBean.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigRestartBean.java
@@ -1,5 +1,7 @@
 package net.i2p.router.web;
 
+import java.util.StringTokenizer;
+
 import net.i2p.data.DataHelper;
 import net.i2p.router.Router;
 import net.i2p.router.RouterContext;
@@ -47,27 +49,35 @@ public class ConfigRestartBean {
                 return "<b>Shutdown imminent</b>";
             } else {
                 return "<b>Shutdown in " + DataHelper.formatDuration(timeRemaining) + "</b><br />"
-                     + "<a href=\"" + urlBase + "?consoleNonce=" + systemNonce + "&amp;action=shutdownImmediate\">Shutdown immediately</a><br />"
-                     + "<a href=\"" + urlBase + "?consoleNonce=" + systemNonce + "&amp;action=cancelShutdown\">Cancel shutdown</a> ";
+                     + buttons(urlBase, systemNonce, "shutdownImmediate,Shutdown immediately,cancelShutdown,Cancel shutdown");
             }
         } else if (restarting) {
             if (timeRemaining <= 0) {
                 return "<b>Restart imminent</b>";
             } else {
                 return "<b>Restart in " + DataHelper.formatDuration(timeRemaining) + "</b><br />"
-                     + "<a href=\"" + urlBase + "?consoleNonce=" + systemNonce + "&amp;action=restartImmediate\">Restart immediately</a><br />"
-                     + "<a href=\"" + urlBase + "?consoleNonce=" + systemNonce + "&amp;action=cancelShutdown\">Cancel restart</a> ";
+                     + buttons(urlBase, systemNonce, "restartImmediate,Restart immediately,cancelShutdown,Cancel restart");
             }
         } else {
-            String shutdown = "<a href=\"" + urlBase + "?consoleNonce=" + systemNonce + "&amp;action=shutdown\" title=\"Graceful shutdown\">Shutdown</a>";
             if (System.getProperty("wrapper.version") != null)
-                return "<a href=\"" + urlBase + "?consoleNonce=" + systemNonce + "&amp;action=restart\" title=\"Graceful restart\">Restart</a> "
-                       + shutdown;
+                return buttons(urlBase, systemNonce, "restart,Restart,shutdown,Shutdown");
             else
-                return shutdown;
+                return buttons(urlBase, systemNonce, "shutdown,Shutdown");
         }
     }
     
+    /** @param s value,label,... pairs */
+    private static String buttons(String url, String nonce, String s) {
+        StringBuffer buf = new StringBuffer(128);
+        StringTokenizer tok = new StringTokenizer(s, ",");
+        buf.append("<form action=\"").append(url).append("\" method=\"GET\">\n");
+        buf.append("<input type=\"hidden\" name=\"consoleNonce\" value=\"").append(nonce).append("\" >\n");
+        while (tok.hasMoreTokens())
+            buf.append("<button type=\"submit\" name=\"action\" value=\"").append(tok.nextToken()).append("\" >").append(tok.nextToken()).append("</button>\n");
+        buf.append("</form>\n");
+        return buf.toString();
+    }
+
     private static boolean isShuttingDown(RouterContext ctx) {
         return Router.EXIT_GRACEFUL == ctx.router().scheduledGracefulExitCode();
     }
diff --git a/apps/routerconsole/jsp/summary.jsp b/apps/routerconsole/jsp/summary.jsp
index 3080889141..6668683e6e 100644
--- a/apps/routerconsole/jsp/summary.jsp
+++ b/apps/routerconsole/jsp/summary.jsp
@@ -7,6 +7,9 @@
 <jsp:useBean class="net.i2p.router.web.UpdateHandler" id="update" scope="request" />
 <jsp:setProperty name="update" property="*" />
 <jsp:setProperty name="update" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
+<jsp:useBean class="net.i2p.router.web.ConfigUpdateHelper" id="uhelper" scope="request" />
+<jsp:setProperty name="uhelper" property="*" />
+<jsp:setProperty name="uhelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
 
 <div class="routersummary">
  <u><b>General</b></u><br />
@@ -25,15 +28,15 @@
             if (prev != null) System.setProperty("net.i2p.router.web.UpdateHandler.noncePrev", prev);
             System.setProperty("net.i2p.router.web.UpdateHandler.nonce", nonce+"");
             String uri = request.getRequestURI();
-            if (uri.indexOf('?') > 0)
-                uri = uri + "&updateNonce=" + nonce;
-            else
-                uri = uri + "?updateNonce=" + nonce;
-            out.print("<br /><a href=\"" + uri + "\">Update available</a>");
+            out.print("<p><form action=\"" + uri + "\" method=\"GET\">\n");
+            out.print("<input type=\"hidden\" name=\"updateNonce\" value=\"" + nonce + "\" >\n");
+            out.print("<input type=\"submit\" value=\"Download " + uhelper.getUpdateVersion() + " Update\" ></form></p>\n");
         }
     }
  %>
- <br /><%=net.i2p.router.web.ConfigRestartBean.renderStatus(request.getRequestURI(), request.getParameter("action"), request.getParameter("consoleNonce"))%>
+ <p>
+ <%=net.i2p.router.web.ConfigRestartBean.renderStatus(request.getRequestURI(), request.getParameter("action"), request.getParameter("consoleNonce"))%>
+ </p>
  <hr />
  
  <u><b><a href="peers.jsp">Peers</a></b></u><br />
-- 
GitLab