[freenet-cvs] r15647 - in trunk/freenet/src/freenet: clients/http l10n pluginmanager

bombe at freenetproject.org bombe at freenetproject.org
Mon Oct 29 18:45:34 UTC 2007


Author: bombe
Date: 2007-10-29 18:45:34 +0000 (Mon, 29 Oct 2007)
New Revision: 15647

Modified:
   trunk/freenet/src/freenet/clients/http/PproxyToadlet.java
   trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
   trunk/freenet/src/freenet/pluginmanager/PluginInfoWrapper.java
Log:
let users change the reload-on-startup setting for plugins from the web interface

Modified: trunk/freenet/src/freenet/clients/http/PproxyToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/PproxyToadlet.java	2007-10-29 18:30:50 UTC (rev 15646)
+++ trunk/freenet/src/freenet/clients/http/PproxyToadlet.java	2007-10-29 18:45:34 UTC (rev 15647)
@@ -141,6 +141,21 @@
 				ctx.sendReplyHeaders(302, "Found", headers, null, 0);
 				return;
 			}
+			if (request.isPartSet("change-reload-submit")) {
+				int pluginInfoWrapperHashCode = request.getIntPart("plugin-id", -1);
+				boolean newReload = request.isPartSet("reload-on-startup");
+				Iterator/*<PluginInfoWrapper>*/ pluginIterator = pm.getPlugins().iterator();
+				while (pluginIterator.hasNext()) {
+					PluginInfoWrapper pluginInfoWrapper = (PluginInfoWrapper) pluginIterator.next();
+					if (pluginInfoWrapper.hashCode() == pluginInfoWrapperHashCode) {
+						pluginInfoWrapper.setAutoRefresh(newReload);
+						break;
+					}
+				}
+				headers.put("Location", ".");
+				ctx.sendReplyHeaders(302, "Found", headers, null, 0);
+				return;
+			}
 			if (request.isPartSet("cancel")){
 				headers.put("Location", "/plugins/");
 				ctx.sendReplyHeaders(302, "Found", headers, null, 0);
@@ -379,7 +394,10 @@
 			headerRow.addChild("th", l10n("classNameTitle"));
 			headerRow.addChild("th", l10n("internalIDTitle"));
 			headerRow.addChild("th", l10n("startedAtTitle"));
+			headerRow.addChild("th", l10n("reloadOnStartupShort"));
 			headerRow.addChild("th");
+			headerRow.addChild("th");
+			headerRow.addChild("th");
 			Iterator it = pm.getPlugins().iterator();
 			while (it.hasNext()) {
 				PluginInfoWrapper pi = (PluginInfoWrapper) it.next();
@@ -387,19 +405,29 @@
 				pluginRow.addChild("td", pi.getPluginClassName());
 				pluginRow.addChild("td", pi.getThreadName());
 				pluginRow.addChild("td", new Date(pi.getStarted()).toString());
-				HTMLNode actionCell = pluginRow.addChild("td");
+				HTMLNode autoReloadChangeForm = ctx.addFormChild(pluginRow.addChild("td", "align", "center"), ".", "changeAutoReloadForm");
+				if (pi.isAutoRefresh()) {
+					autoReloadChangeForm.addChild("input", new String[] { "name", "type", "checked" }, new String[] { "reload-on-startup", "checkbox", "checked" });
+				} else {
+					autoReloadChangeForm.addChild("input", new String[] { "name", "type" }, new String[] { "reload-on-startup", "checkbox" });
+				}
+				autoReloadChangeForm.addChild("input", new String[] { "name", "type", "value" }, new String[] { "plugin-id", "hidden", String.valueOf(pi.hashCode()) });
+				autoReloadChangeForm.addChild("input", new String[] { "name", "type", "value" }, new String[] { "change-reload-submit", "submit", l10n("changeReloadOnStartup") });
 				if (pi.isStopping()) {
-					actionCell.addChild("#", l10n("pluginStopping"));
+					pluginRow.addChild("td", l10n("pluginStopping"));
+					/* add two empty cells. */
+					pluginRow.addChild("td");
+					pluginRow.addChild("td");
 				} else {
 					if (pi.isPproxyPlugin()) {
-						HTMLNode visitForm = actionCell.addChild("form", new String[] { "method", "action", "target" }, new String[] { "get", pi.getPluginClassName(), "_new" });
+						HTMLNode visitForm = pluginRow.addChild("td").addChild("form", new String[] { "method", "action", "target" }, new String[] { "get", pi.getPluginClassName(), "_new" });
 						visitForm.addChild("input", new String[] { "type", "name", "value" }, new String[] { "hidden", "formPassword", core.formPassword });
 						visitForm.addChild("input", new String[] { "type", "value" }, new String[] { "submit", L10n.getString("PluginToadlet.visit") });
 					}
-					HTMLNode unloadForm = ctx.addFormChild(actionCell, ".", "unloadPluginForm");
+					HTMLNode unloadForm = ctx.addFormChild(pluginRow.addChild("td"), ".", "unloadPluginForm");
 					unloadForm.addChild("input", new String[] { "type", "name", "value" }, new String[] { "hidden", "unload", pi.getThreadName() });
 					unloadForm.addChild("input", new String[] { "type", "value" }, new String[] { "submit", l10n("unload") });
-					HTMLNode reloadForm = ctx.addFormChild(actionCell, ".", "reloadPluginForm");
+					HTMLNode reloadForm = ctx.addFormChild(pluginRow.addChild("td"), ".", "reloadPluginForm");
 					reloadForm.addChild("input", new String[] { "type", "name", "value" }, new String[] { "hidden", "reload", pi.getThreadName() });
 					reloadForm.addChild("input", new String[] { "type", "value" }, new String[] { "submit", l10n("reload") });
 				}

Modified: trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
===================================================================
--- trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties	2007-10-29 18:30:50 UTC (rev 15646)
+++ trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties	2007-10-29 18:45:34 UTC (rev 15647)
@@ -704,6 +704,7 @@
 PluginToadlet.unsupportedMethod=Unsupported method.
 PluginToadlet.unsupportedMethodTitle=Unsupported Method
 PluginToadlet.visit=Visit
+PproxyToadlet.changeReloadOnStartup=Change
 PproxyToadlet.classNameTitle=Class Name
 PproxyToadlet.downloadNotAllowedFromRemoteServer=Download of plugins is only allowed from our server.
 PproxyToadlet.Error=Error
@@ -722,8 +723,9 @@
 PproxyToadlet.pluginUnloadedWithName=The plugin ${name} has been unloaded.
 PproxyToadlet.plugins=Plugins
 PproxyToadlet.pluginsWithNodeName=Plugins of ${name}
+PproxyToadlet.reloadOnStartupShort=Reload on Startup
+PproxyToadlet.reload=Reload
 PproxyToadlet.refreshOnStartup=Reload from server on startup
-PproxyToadlet.reload=Reload
 PproxyToadlet.returnToPluginPage=Return to plugin page
 PproxyToadlet.startedAtTitle=Started at
 PproxyToadlet.startingPluginsTitle=Starting Plugins

Modified: trunk/freenet/src/freenet/pluginmanager/PluginInfoWrapper.java
===================================================================
--- trunk/freenet/src/freenet/pluginmanager/PluginInfoWrapper.java	2007-10-29 18:30:50 UTC (rev 15646)
+++ trunk/freenet/src/freenet/pluginmanager/PluginInfoWrapper.java	2007-10-29 18:45:34 UTC (rev 15647)
@@ -54,6 +54,17 @@
 		return autoRefresh;
 	}
 
+	/**
+	 * Sets the new value for the refresh-on-startup feature.
+	 * 
+	 * @param autoRefresh
+	 *            <code>true</code> if the plugin should be reloaded on
+	 *            startup, <code>false</code> otherwise
+	 */
+	public void setAutoRefresh(boolean autoRefresh) {
+		this.autoRefresh = autoRefresh;
+	}
+
 	void setThread(Thread ps) {
 		if(thread != null)
 			throw new IllegalStateException("Already set a thread");




More information about the cvs mailing list