Author: bombe
Date: 2007-10-29 10:02:11 +0000 (Mon, 29 Oct 2007)
New Revision: 15634

Modified:
   trunk/freenet/src/freenet/clients/http/PproxyToadlet.java
   trunk/freenet/src/freenet/pluginmanager/PluginManager.java
Log:
register user identifier with alerts from the plugin manager
show alert summary on plugin page
show all plugin user alerts on plugin page

Modified: trunk/freenet/src/freenet/clients/http/PproxyToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/PproxyToadlet.java   2007-10-29 
10:01:11 UTC (rev 15633)
+++ trunk/freenet/src/freenet/clients/http/PproxyToadlet.java   2007-10-29 
10:02:11 UTC (rev 15634)
@@ -15,6 +15,7 @@
 import freenet.l10n.L10n;
 import freenet.node.Node;
 import freenet.node.NodeClientCore;
+import freenet.node.useralerts.UserAlert;
 import freenet.pluginmanager.AccessDeniedPluginHTTPException;
 import freenet.pluginmanager.DownloadPluginHTTPException;
 import freenet.pluginmanager.NotFoundPluginHTTPException;
@@ -137,6 +138,13 @@
                                ctx.sendReplyHeaders(302, "Found", headers, 
null, 0);
                                return;
                        }
+                       if (request.isPartSet("dismiss-user-alert")) {
+                               int userAlertHashCode = 
request.getIntPart("disable", -1);
+                               core.alerts.dismissAlert(userAlertHashCode);
+                               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);
@@ -234,6 +242,16 @@
                                HTMLNode pageNode = 
ctx.getPageMaker().getPageNode(l10n("pluginsWithNodeName", "name", 
core.getMyName()), ctx);
                                HTMLNode contentNode = 
ctx.getPageMaker().getContentNode(pageNode);

+                               
contentNode.addChild(core.alerts.createSummary());
+
+                               UserAlert[] userAlerts = 
core.alerts.getAlerts();
+                               for (int index = 0, count = userAlerts.length; 
index < count; index++) {
+                                       UserAlert userAlert = userAlerts[index];
+                                       if (userAlert.isValid() && 
(userAlert.getUserIdentifier() == PluginManager.class)) {
+                                               
contentNode.addChild(core.alerts.renderAlert(userAlert));
+                                       }
+                               }
+
                                this.showStartingPlugins(ctx, request, pm, 
contentNode);
                                this.showPluginList(ctx, request, pm, 
contentNode);

@@ -362,7 +380,8 @@
                        addOfficialForm.addChild("div", 
l10n("loadOfficialPluginText"));
                        addOfficialForm.addChild("#", 
(l10n("loadOfficialPluginLabel") + ": "));
                        addOfficialForm.addChild("input", new String[] { 
"type", "name", "size" }, new String[] { "text", "plugin-name", "40" });
-                       addOfficialForm.addChild("input", new String[] { 
"type", "name", "value", "checked" }, new String[] { "checkbox", 
"refresh-on-startup", "tue", "checked" }, l10n("refreshOnStartup"));
+                       addOfficialForm.addChild("input", new String[] { 
"type", "name", "value", "checked" }, new String[] { "checkbox", 
"refresh-on-startup", "true", "checked" });
+                       addOfficialForm.addChild("#", l10n("refreshOnStartup"));
                        addOfficialForm.addChild("input", new String[] { 
"type", "name", "value" }, new String[] { "submit", "submit-official", 
l10n("Load") });

                        /* box for unofficial plugins. */
@@ -373,7 +392,8 @@
                        addOtherForm.addChild("div", 
l10n("loadOtherPluginText"));
                        addOtherForm.addChild("#", (l10n("loadOtherURLLabel") + 
": "));
                        addOtherForm.addChild("input", new String[] { "type", 
"name", "size" }, new String[] { "text", "plugin-url", "80" });
-                       addOtherForm.addChild("input", new String[] { "type", 
"name", "value" }, new String[] { "checkbox", "refresh-on-startup", "true" }, 
l10n("refreshOnStartup"));
+                       addOtherForm.addChild("input", new String[] { "type", 
"name", "value" }, new String[] { "checkbox", "refresh-on-startup", "true" });
+                       addOtherForm.addChild("#", l10n("refreshOnStartup"));
                        addOtherForm.addChild("input", new String[] { "type", 
"name", "value" }, new String[] { "submit", "submit-other", l10n("Load") });
                } 
        }

Modified: trunk/freenet/src/freenet/pluginmanager/PluginManager.java
===================================================================
--- trunk/freenet/src/freenet/pluginmanager/PluginManager.java  2007-10-29 
10:01:11 UTC (rev 15633)
+++ trunk/freenet/src/freenet/pluginmanager/PluginManager.java  2007-10-29 
10:02:11 UTC (rev 15634)
@@ -165,7 +165,7 @@
                                } catch (PluginNotFoundException e) {
                                        Logger.normal(this, "Loading plugin 
failed (" + filename + ')', e);
                                        String message = e.getMessage();
-                                       core.alerts.register(new 
SimpleUserAlert(true, l10n("pluginLoadingFailedTitle"), 
l10n("pluginLoadingFailedWithMessage", new String[] { "name", "message" }, new 
String[] { filename, message }), UserAlert.ERROR));
+                                       core.alerts.register(new 
SimpleUserAlert(true, l10n("pluginLoadingFailedTitle"), 
l10n("pluginLoadingFailedWithMessage", new String[] { "name", "message" }, new 
String[] { filename, message }), UserAlert.ERROR, PluginManager.class));
                                } catch (UnsupportedClassVersionError e) {
                                        Logger.error(this, "Could not load 
plugin " + filename + " : " + e, e);
                                        System.err.println("Could not load 
plugin " + filename + " : " + e);
@@ -174,7 +174,7 @@
                                        if (jvmVersion.startsWith("1.4.") || 
jvmVersion.equals("1.4")) {
                                                System.err.println("Plugin " + 
filename + " appears to require a later JVM");
                                                Logger.error(this, "Plugin " + 
filename + " appears to require a later JVM");
-                                               core.alerts.register(new 
SimpleUserAlert(true, l10n("pluginReqNewerJVMTitle", "name", filename), 
l10n("pluginReqNewerJVM", "name", filename), UserAlert.ERROR));
+                                               core.alerts.register(new 
SimpleUserAlert(true, l10n("pluginReqNewerJVMTitle", "name", filename), 
l10n("pluginReqNewerJVM", "name", filename), UserAlert.ERROR, 
PluginManager.class));
                                        }
                                } finally {
                                        synchronized (startingPlugins) {


Reply via email to