diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java index 166bcfcc4..b9f06c877 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java +++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java @@ -242,6 +242,13 @@ public class I2PSnarkServlet extends Default { List snarks = getSortedSnarks(req); String uri = req.getRequestURI(); + boolean isForm = _manager.util().connected() || !snarks.isEmpty(); + if (isForm) { + out.write("
\n"); + out.write("\n"); + } out.write(TABLE_HEADER); out.write("\n"); out.write(""); if (_manager.util().connected()) { - out.write(""); - out.write("\"");"); - out.write(""); } else if (!snarks.isEmpty()) { - out.write(""); - out.write("\"Start"); - out.write(""); } else { out.write(" "); } @@ -357,6 +356,8 @@ public class I2PSnarkServlet extends Default { } out.write(""); + if (isForm) + out.write("
\n"); } /** @@ -368,11 +369,9 @@ public class I2PSnarkServlet extends Default { // noop return; } - String method = req.getMethod(); - // check in each clause until all disallow GET + if (!"POST".equals(req.getMethod())) + return; if ("Add".equals(action)) { - if (!method.equals("POST")) - return; String newFile = req.getParameter("newFile"); String newURL = req.getParameter("newURL"); // NOTE - newFile currently disabled in HTML form - see below @@ -416,8 +415,8 @@ public class I2PSnarkServlet extends Default { } else { // no file or URL specified } - } else if ("Stop".equals(action)) { - String torrent = req.getParameter("torrent"); + } else if (action.startsWith("Stop_")) { + String torrent = action.substring(5); if (torrent != null) { byte infoHash[] = Base64.decode(torrent); if ( (infoHash != null) && (infoHash.length == 20) ) { // valid sha1 @@ -431,8 +430,8 @@ public class I2PSnarkServlet extends Default { } } } - } else if ("Start".equals(action)) { - String torrent = req.getParameter("torrent"); + } else if (action.startsWith("Start_")) { + String torrent = action.substring(6); if (torrent != null) { byte infoHash[] = Base64.decode(torrent); if ( (infoHash != null) && (infoHash.length == 20) ) { // valid sha1 @@ -447,8 +446,8 @@ public class I2PSnarkServlet extends Default { } } } - } else if ("Remove".equals(action)) { - String torrent = req.getParameter("torrent"); + } else if (action.startsWith("Remove_")) { + String torrent = action.substring(7); if (torrent != null) { byte infoHash[] = Base64.decode(torrent); if ( (infoHash != null) && (infoHash.length == 20) ) { // valid sha1 @@ -467,8 +466,8 @@ public class I2PSnarkServlet extends Default { } } } - } else if ("Delete".equals(action)) { - String torrent = req.getParameter("torrent"); + } else if (action.startsWith("Delete_")) { + String torrent = action.substring(7); if (torrent != null) { byte infoHash[] = Base64.decode(torrent); if ( (infoHash != null) && (infoHash.length == 20) ) { // valid sha1 @@ -514,8 +513,6 @@ public class I2PSnarkServlet extends Default { } } } else if ("Save".equals(action)) { - if (!method.equals("POST")) - return; String dataDir = req.getParameter("dataDir"); boolean autoStart = req.getParameter("autoStart") != null; String seedPct = req.getParameter("seedPct"); @@ -531,8 +528,6 @@ public class I2PSnarkServlet extends Default { String openTrackers = req.getParameter("openTrackers"); _manager.updateConfig(dataDir, autoStart, startupDel, seedPct, eepHost, eepPort, i2cpHost, i2cpPort, i2cpOpts, upLimit, upBW, useOpenTrackers, openTrackers); } else if ("Create".equals(action)) { - if (!method.equals("POST")) - return; String baseData = req.getParameter("baseFile"); if (baseData != null && baseData.trim().length() > 0) { File baseFile = new File(_manager.getDataDir(), baseData); @@ -838,62 +833,55 @@ public class I2PSnarkServlet extends Default { out.write("\n\t"); out.write(""); String parameters = "&nonce=" + _nonce + "&torrent=" + Base64.encode(snark.meta.getInfoHash()); + String b64 = Base64.encode(snark.meta.getInfoHash()); if (showPeers) parameters = parameters + "&p=1"; if (isRunning) { - out.write(""); - out.write("\"");"); - out.write(""); } else { if (isValid) { - out.write(""); - out.write("\"");"); - out.write(""); } - out.write(""); - out.write("\"");"); - out.write(""); - out.write(""); - out.write("\"");"); - out.write(""); } out.write("\n\n"); diff --git a/installer/resources/themes/snark/ubergine/snark.css b/installer/resources/themes/snark/ubergine/snark.css index 535c32954..52e9f5345 100644 --- a/installer/resources/themes/snark/ubergine/snark.css +++ b/installer/resources/themes/snark/ubergine/snark.css @@ -474,6 +474,20 @@ input[type=submit]:active { text-shadow: 0 !important; } +input[type=image] { + padding: 0 !important; + background: #000; + -moz-border-radius: 0px; + -khtml-border-radius: 0px; + border-radius: 0px; + border: medium none; + margin: 0 2px; +} + +input[type=image]:hover { + border: 1px outset #bbb; +} + input[type=text]:active, input[type=text]:hover, input.r:hover { background: #f60; color: #fff;