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) {