Author: bombe
Date: 2006-06-10 15:53:58 +0000 (Sat, 10 Jun 2006)
New Revision: 9131
Modified:
trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
trunk/freenet/src/freenet/clients/http/PluginToadlet.java
Log:
more ul & li on peer page
use POST in plugin toadlet
Modified: trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
2006-06-10 15:51:04 UTC (rev 9130)
+++ trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
2006-06-10 15:53:58 UTC (rev 9131)
@@ -95,14 +95,15 @@
buf.append("<div class=\"infobox\">");
buf.append("<div class=\"infobox-header\">Node status
overview</div>");
buf.append("<div class=\"infobox-content\">");
- buf.append("bwlimitDelayTime: " + bwlimitDelayTime +
"ms<br/>");
- buf.append("nodeAveragePingTime: " + nodeAveragePingTime +
"ms<br/>");
- buf.append("networkSizeEstimate: " + networkSizeEstimate +
" nodes<br/>");
- buf.append("nodeUptime: " + nodeUptimeString + "<br/>");
- buf.append("</div>");
+ buf.append("<ul>");
+ buf.append("<li>bwlimitDelayTime: " + bwlimitDelayTime +
"ms</li>");
+ buf.append("<li>nodeAveragePingTime: " +
nodeAveragePingTime + "ms</li>");
+ buf.append("<li>networkSizeEstimate: " +
networkSizeEstimate + " nodes</li>");
+ buf.append("<li>nodeUptime: " + nodeUptimeString +
"</li>");
+ buf.append("</ul></div>");
buf.append("</div>\n");
- buf.append("</td><td class=\"last\">");
+ buf.append("</td><td>");
// Activity box
buf.append("<div class=\"infobox\">\n");
@@ -119,30 +120,32 @@
buf.append("</div>\n");
buf.append("</div>\n");
- buf.append("</td><td class=\"last\">");
+ buf.append("</td><td>");
// Peer statistics box
buf.append("<div class=\"infobox\">");
buf.append("<div class=\"infobox-header\">Peer
statistics</div>");
buf.append("<div class=\"infobox-content\">");
+ buf.append("<ul>");
if (numberOfConnected > 0) {
- buf.append("<span
class=\"peer_connected\">Connected: " + numberOfConnected +
"</span><br/>");
+ buf.append("<li><span
class=\"peer_connected\">Connected: " + numberOfConnected +
"</span></li>");
}
if (numberOfRoutingBackedOff > 0) {
- buf.append("<span class=\"peer_backedoff\">Backed
off: " + numberOfRoutingBackedOff + "</span><br/>");
+ buf.append("<li><span class=\"peer_backedoff\">Backed
off: " + numberOfRoutingBackedOff + "</span></li>");
}
if (numberOfTooNew > 0) {
- buf.append("<span class=\"peer_too_new\">Too
new: " + numberOfTooNew + "</span><br/>");
+ buf.append("<li><span class=\"peer_too_new\">Too
new: " + numberOfTooNew + "</span></li>");
}
if (numberOfTooOld > 0) {
- buf.append("<span class=\"peer_too_old\">Too
old: " + numberOfTooOld + "</span><br/>");
+ buf.append("<li><span class=\"peer_too_old\">Too
old: " + numberOfTooOld + "</span></li>");
}
if (numberOfDisconnected > 0) {
- buf.append("<span
class=\"peer_disconnected\">Disconnected: " + numberOfDisconnected +
"</span><br/>");
+ buf.append("<li><span
class=\"peer_disconnected\">Disconnected: " + numberOfDisconnected +
"</span></li>");
}
if (numberOfNeverConnected > 0) {
- buf.append("<span class=\"peer_never_connected\">Never
Connected: " + numberOfNeverConnected + "</span><br/>");
+ buf.append("<li><span
class=\"peer_never_connected\">Never Connected: " + numberOfNeverConnected
+ "</span></li>");
}
+ buf.append("</ul>");
buf.append("</div>");
buf.append("</div>\n");
Modified: trunk/freenet/src/freenet/clients/http/PluginToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/PluginToadlet.java 2006-06-10
15:51:04 UTC (rev 9130)
+++ trunk/freenet/src/freenet/clients/http/PluginToadlet.java 2006-06-10
15:53:58 UTC (rev 9131)
@@ -10,6 +10,7 @@
import freenet.plugin.HttpPlugin;
import freenet.plugin.Plugin;
import freenet.plugin.PluginManager;
+import freenet.support.Bucket;
import freenet.support.HTMLEncoder;
/**
@@ -37,13 +38,13 @@
}
/**
- * Currently this toadlet only supports GET.
+ * This toadlet support GET and POST operations.
*
* @see freenet.clients.http.Toadlet#supportedMethods()
- * @return "GET"
+ * @return "GET,POST"
*/
public String supportedMethods() {
- return "GET";
+ return "GET,POST";
}
/**
@@ -85,7 +86,44 @@
StringBuffer replyBuffer = new StringBuffer();
if ("list".equals(action)) {
replyBuffer.append(listPlugins(ctx));
- } else if ("add".equals(action)) {
+ } else {
+ writeReply(ctx, 220, "text/html; charset=utf-8", "OK",
createBox(ctx, "Unsupported method", "Unsupported method.").toString());
+ return;
+ }
+ writeReply(ctx, 220, "text/html; charset=utf-8", "OK",
replyBuffer.toString());
+ }
+
+ /**
+ * @see freenet.clients.http.Toadlet#handlePost(java.net.URI,
freenet.support.Bucket, freenet.clients.http.ToadletContext)
+ */
+ public void handlePost(URI uri, Bucket data, ToadletContext ctx) throws
ToadletContextClosedException, IOException, RedirectException {
+ HTTPRequest httpRequest = new HTTPRequest(uri, data, ctx);
+
+ String uriPath = uri.getPath();
+ String pluginName = uriPath.substring(uriPath.lastIndexOf('/')
+ 1);
+
+ if (pluginName.length() > 0) {
+ Plugin plugin = findPlugin(pluginName);
+ if (plugin != null) {
+ if (plugin instanceof HttpPlugin) {
+ ((HttpPlugin)
plugin).handlePost(httpRequest, ctx);
+ } else {
+ writeReply(ctx, 220, "text/html;
charset=utf-8", "OK", createBox(ctx, "Plugin has no web interface", "The plugin
does not have a web interface, so there is nothing to show.").toString());
+ }
+ return;
+ }
+ writeReply(ctx, 220, "text/html; charset=utf-8", "OK",
createBox(ctx, "Plugin not found", "The requested plugin could not be
found.").toString());
+ return;
+ }
+
+ String action = httpRequest.getParam("action");
+ if (action.length() == 0) {
+ writePermanentRedirect(ctx, "Plugin list",
"?action=list");
+ return;
+ }
+
+ StringBuffer replyBuffer = new StringBuffer();
+ if ("add".equals(action)) {
pluginName = httpRequest.getParam("pluginName");
boolean added = false;
try {
@@ -97,7 +135,7 @@
writePermanentRedirect(ctx, "Plugin list",
"?action=list");
return;
}
- replyBuffer.append(createBox(ctx, "Plugin was not
loaded", "The plugin you requested could not be loaded. Please verify the name
of the plugin’s class and the URL, if you gave one."));
+ replyBuffer.append(createBox(ctx, "Plugin was not
loaded", "The plugin you requested could not be loaded. Please verify the name
of the plugin\u2019s class and the URL, if you gave one."));
} else if ("reload".equals(action)) {
pluginName = httpRequest.getParam("pluginName");
Plugin plugin = findPlugin(pluginName);
@@ -168,8 +206,8 @@
} else {
outputBuffer.append("<td/>");
}
- outputBuffer.append("<td><form action=\"\"
method=\"get\"><input type=\"hidden\" name=\"action\" value=\"reload\"/><input
type=\"hidden\" name=\"pluginName\" value=\"").append(internalName).append("\"
/><input type=\"submit\" value=\"Reload\" /></form></td>");
- outputBuffer.append("<td><form action=\"\"
method=\"get\"><input type=\"hidden\" name=\"action\" value=\"unload\"/><input
type=\"hidden\" name=\"pluginName\" value=\"").append(internalName).append("\"
/><input type=\"submit\" value=\"Unload\" /></form></td>");
+ outputBuffer.append("<td><form action=\"./\"
method=\"post\"><input type=\"hidden\" name=\"action\" value=\"reload\"/><input
type=\"hidden\" name=\"pluginName\" value=\"").append(internalName).append("\"
/><input type=\"submit\" value=\"Reload\" /></form></td>");
+ outputBuffer.append("<td><form action=\"./\"
method=\"post\"><input type=\"hidden\" name=\"action\" value=\"unload\"/><input
type=\"hidden\" name=\"pluginName\" value=\"").append(internalName).append("\"
/><input type=\"submit\" value=\"Unload\" /></form></td>");
outputBuffer.append("</tr>\n");
}
outputBuffer.append("</table>");
@@ -200,8 +238,8 @@
pageMaker.makeHead(outputBuffer, HTMLEncoder.encode(title));
outputBuffer.append("<div class=\"infobox infobox-alert\">");
outputBuffer.append("<div
class=\"infobox-header\">").append(HTMLEncoder.encode(title)).append("</div>\n");
- outputBuffer.append("<div
class=\"infobox-content\">").append(HTMLEncoder.encode(message)).append("</div>\n");
- outputBuffer.append("<div class=\"infobox-content\">Please <a
href=\"?action=list\">return</a> to the list of plugins.</div>\n");
+ outputBuffer.append("<div
class=\"infobox-content\"><p>").append(HTMLEncoder.encode(message)).append("</p>");
+ outputBuffer.append("<p>Please <a
href=\"?action=list\">return</a> to the list of plugins.</p></div>");
outputBuffer.append("</div>\n");
pageMaker.makeTail(outputBuffer);
@@ -219,7 +257,7 @@
outputBuffer.append("<div class=\"infobox\">");
outputBuffer.append("<div class=\"infobox-header\">Add a
plugin</div>");
outputBuffer.append("<div class=\"infobox-content\">");
- outputBuffer.append("<form action=\"?add\" method=\"get\">");
+ outputBuffer.append("<form action=\"./\" method=\"post\">");
outputBuffer.append("<input type=\"hidden\" name=\"action\"
value=\"add\" />");
outputBuffer.append("<input type=\"text\" size=\"40\"
name=\"pluginName\" value=\"\" /> ");
outputBuffer.append("<input type=\"submit\" value=\"Load
plugin\" />");