Author: toad
Date: 2008-04-18 20:24:54 +0000 (Fri, 18 Apr 2008)
New Revision: 19397

Added:
   trunk/freenet/src/freenet/clients/http/UserAlertsToadlet.java
Modified:
   trunk/freenet/src/freenet/clients/http/FProxyToadlet.java
   trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
   trunk/freenet/src/freenet/node/Announcer.java
   trunk/freenet/src/freenet/node/useralerts/AbstractUserAlert.java
   trunk/freenet/src/freenet/node/useralerts/ProxyUserAlert.java
   trunk/freenet/src/freenet/node/useralerts/UserAlert.java
   trunk/freenet/src/freenet/node/useralerts/UserAlertManager.java
Log:
UserAlerts toadlet, each alert has an anchor so it can be referred to.

Modified: trunk/freenet/src/freenet/clients/http/FProxyToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/FProxyToadlet.java   2008-04-18 
18:07:43 UTC (rev 19396)
+++ trunk/freenet/src/freenet/clients/http/FProxyToadlet.java   2008-04-18 
20:24:54 UTC (rev 19397)
@@ -637,6 +637,9 @@
                core.setFProxy(fproxy);
                server.register(fproxy, "/", false, 
"FProxyToadlet.welcomeTitle", "FProxyToadlet.welcome", false, null);

+               UserAlertsToadlet alerts = new UserAlertsToadlet(client, node, 
core);
+               server.register(alerts, "/status/", true, 
"FProxyToadlet.alertsTitle", "FProxyToadlet.alerts", true, null);
+               
                PproxyToadlet pproxy = new PproxyToadlet(client, node, core);
                server.register(pproxy, "/plugins/", true, 
"FProxyToadlet.pluginsTitle", "FProxyToadlet.plugins", true, null);


Added: trunk/freenet/src/freenet/clients/http/UserAlertsToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/UserAlertsToadlet.java               
                (rev 0)
+++ trunk/freenet/src/freenet/clients/http/UserAlertsToadlet.java       
2008-04-18 20:24:54 UTC (rev 19397)
@@ -0,0 +1,53 @@
+/* This code is part of Freenet. It is distributed under the GNU General
+ * Public License, version 2 (or at your option any later version). See
+ * http://www.gnu.org/ for further details of the GPL. */
+package freenet.clients.http;
+
+import java.io.IOException;
+import java.net.URI;
+
+import freenet.client.HighLevelSimpleClient;
+import freenet.l10n.L10n;
+import freenet.node.Node;
+import freenet.node.NodeClientCore;
+import freenet.node.useralerts.UserAlertManager;
+import freenet.support.HTMLNode;
+import freenet.support.api.HTTPRequest;
+
+/**
+ * A page consisting entirely of useralerts.
+ * @author toad
+ */
+public class UserAlertsToadlet extends Toadlet {
+       
+       UserAlertsToadlet(HighLevelSimpleClient client, Node node, 
NodeClientCore core) {
+               super(client);
+               this.node = node;
+               this.alerts = core.alerts;
+       }
+       
+       private UserAlertManager alerts;
+       private Node node;
+
+       public String supportedMethods() {
+               return "GET";
+       }
+       
+       public void handleGet(URI uri, HTTPRequest request, ToadletContext ctx) 
throws ToadletContextClosedException, IOException {
+               if (!ctx.isAllowedFullAccess()) {
+                       super.sendErrorPage(ctx, 403, 
L10n.getString("Toadlet.unauthorizedTitle"), 
L10n.getString("Toadlet.unauthorized"));
+                       return;
+               }
+               
+        HTMLNode pageNode = 
ctx.getPageMaker().getPageNode(l10n("titleWithName", "name", node.getMyName()), 
ctx);
+        HTMLNode contentNode = ctx.getPageMaker().getContentNode(pageNode);
+        contentNode.addChild(alerts.createAlerts());
+        
+        writeHTMLReply(ctx, 200, "OK", pageNode.generate());
+       }
+
+       protected String l10n(String name, String pattern, String value) {
+               return L10n.getString("UserAlertsToadlet."+name, pattern, 
value);
+       }
+       
+}

Modified: trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
===================================================================
--- trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties   2008-04-18 
18:07:43 UTC (rev 19396)
+++ trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties   2008-04-18 
20:24:54 UTC (rev 19397)
@@ -274,6 +274,8 @@
 FirstTimeWizardToadlet.tenPercentDisk=(= 10% of free disk space)
 FirstTimeWizardToadlet.fivePercentDisk=(= 5% of free disk space)
 FProxyToadlet.abortToHomepage=Abort and return to the FProxy home page
+FProxyToadlet.alertsTitle=Alerts
+FProxyToadlet.alerts=detailed status messages
 FProxyToadlet.backToFProxy=${link}Click here${/link} to go to the FProxy home 
page.
 FProxyToadlet.backToReferrer=${link}Click here${/link} to go back to the 
referring page.
 FProxyToadlet.cantBindPort=Can't bind fproxy on that port!
@@ -1131,6 +1133,7 @@
 UserAlertManager.minorCountLabel=Minor:
 UserAlertManager.totalLabel=Total:
 UserAlertManager.warningCountLabel=Warnings:
+UserAlertsToadlet.titleWithName=Status alerts for ${name}
 WelcomeToadlet.activityTitle=Current Activity
 WelcomeToadlet.arkFetchCount=ARK Fetchers: ${total}
 WelcomeToadlet.confirmAddBookmarkSubTitle=Confirm Bookmark Addition

Modified: trunk/freenet/src/freenet/node/Announcer.java
===================================================================
--- trunk/freenet/src/freenet/node/Announcer.java       2008-04-18 18:07:43 UTC 
(rev 19396)
+++ trunk/freenet/src/freenet/node/Announcer.java       2008-04-18 20:24:54 UTC 
(rev 19397)
@@ -589,6 +589,10 @@
                        return true;
                }

+               public String anchor() {
+                       return "announcer:"+hashCode();
+               }
+
        }

        private String l10n(String key) {

Modified: trunk/freenet/src/freenet/node/useralerts/AbstractUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/AbstractUserAlert.java    
2008-04-18 18:07:43 UTC (rev 19396)
+++ trunk/freenet/src/freenet/node/useralerts/AbstractUserAlert.java    
2008-04-18 20:24:54 UTC (rev 19397)
@@ -139,5 +139,9 @@
        public Object getUserIdentifier() {
                return userIdentifier;
        }
+       
+       public String anchor() {
+               return Integer.toString(hashCode());
+       }

 }

Modified: trunk/freenet/src/freenet/node/useralerts/ProxyUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/ProxyUserAlert.java       
2008-04-18 18:07:43 UTC (rev 19396)
+++ trunk/freenet/src/freenet/node/useralerts/ProxyUserAlert.java       
2008-04-18 20:24:54 UTC (rev 19397)
@@ -73,4 +73,8 @@
                return alert.getUserIdentifier();
        }

+       public String anchor() {
+               return "anchor:"+Integer.toString(hashCode());
+       }
+
 }

Modified: trunk/freenet/src/freenet/node/useralerts/UserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/UserAlert.java    2008-04-18 
18:07:43 UTC (rev 19396)
+++ trunk/freenet/src/freenet/node/useralerts/UserAlert.java    2008-04-18 
20:24:54 UTC (rev 19397)
@@ -56,6 +56,11 @@
         * @return The user-specified identifier object
         */
        public Object getUserIdentifier();
+
+       /**
+        * @return A unique, short name for the alert. Can be simply 
hashCode(), not visible to the user.
+        */
+       public String anchor();

        /** An error which prevents normal operation */
        public final static short CRITICAL_ERROR = 0;

Modified: trunk/freenet/src/freenet/node/useralerts/UserAlertManager.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/UserAlertManager.java     
2008-04-18 18:07:43 UTC (rev 19396)
+++ trunk/freenet/src/freenet/node/useralerts/UserAlertManager.java     
2008-04-18 20:24:54 UTC (rev 19397)
@@ -102,6 +102,7 @@
                        if (!alert.isValid())
                                continue;
                        totalNumber++;
+                       alertsNode.addChild("a", "name", alert.anchor());
                        alertsNode.addChild(renderAlert(alert));
                }
                if (totalNumber == 0) {


Reply via email to