Author: zothar
Date: 2006-05-29 01:01:52 +0000 (Mon, 29 May 2006)
New Revision: 8908
Modified:
trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
trunk/freenet/src/freenet/clients/http/FProxyToadlet.java
trunk/freenet/src/freenet/clients/http/QueueToadlet.java
trunk/freenet/src/freenet/node/useralerts/UserAlertManager.java
Log:
Add alert summary to /darknet/ and /queue/ pages, since those are likely to get
watched as much as / will be. As always, feel free to theme.
Modified: trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
2006-05-29 00:14:16 UTC (rev 8907)
+++ trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
2006-05-29 01:01:52 UTC (rev 8908)
@@ -73,6 +73,8 @@
long now = System.currentTimeMillis();
+ node.alerts.toSummaryHtml(buf);
+
buf.append("<div class=\"infobox infobox-normal\">\n");
buf.append("<div class=\"infobox-header\">\n");
buf.append("My Connections");
Modified: trunk/freenet/src/freenet/clients/http/FProxyToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/FProxyToadlet.java 2006-05-29
00:14:16 UTC (rev 8907)
+++ trunk/freenet/src/freenet/clients/http/FProxyToadlet.java 2006-05-29
01:01:52 UTC (rev 8908)
@@ -366,7 +366,7 @@
N2NTMToadlet n2ntmToadlet = new N2NTMToadlet(node,
client);
server.register(n2ntmToadlet, "/send_n2ntm/", true);
- QueueToadlet queueToadlet = new
QueueToadlet(node.getFCPServer(), client);
+ QueueToadlet queueToadlet = new QueueToadlet(node,
node.getFCPServer(), client);
server.register(queueToadlet, "/queue/", true);
} catch (IOException ioe) {
Modified: trunk/freenet/src/freenet/clients/http/QueueToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/QueueToadlet.java 2006-05-29
00:14:16 UTC (rev 8907)
+++ trunk/freenet/src/freenet/clients/http/QueueToadlet.java 2006-05-29
01:01:52 UTC (rev 8908)
@@ -16,6 +16,7 @@
import freenet.node.fcp.ClientRequest;
import freenet.node.fcp.FCPServer;
import freenet.node.fcp.MessageInvalidException;
+import freenet.node.Node;
import freenet.support.Bucket;
import freenet.support.HTMLEncoder;
import freenet.support.Logger;
@@ -24,10 +25,12 @@
public class QueueToadlet extends Toadlet {
+ private Node node;
final FCPServer fcp;
- public QueueToadlet(FCPServer fcp, HighLevelSimpleClient client) {
+ public QueueToadlet(Node n, FCPServer fcp, HighLevelSimpleClient
client) {
super(client);
+ this.node = n;
this.fcp = fcp;
if(fcp == null) throw new NullPointerException();
}
@@ -84,6 +87,8 @@
ctx.getPageMaker().makeHead(buf, "Queued Requests");
+ node.alerts.toSummaryHtml(buf);
+
// First, get the queued requests, and separate them into
different types.
LinkedList completedDownloadToDisk = new LinkedList();
Modified: trunk/freenet/src/freenet/node/useralerts/UserAlertManager.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/UserAlertManager.java
2006-05-29 00:14:16 UTC (rev 8907)
+++ trunk/freenet/src/freenet/node/useralerts/UserAlertManager.java
2006-05-29 01:01:52 UTC (rev 8908)
@@ -45,12 +45,12 @@
*/
public void toHtml(StringBuffer buf) {
synchronized(alerts){
- UserAlert[] a = getAlerts();
- for(int i=0;i<a.length;i++) {
- UserAlert alert = a[i];
+ UserAlert[] alerts = getAlerts();
+ for(int i=0;i<alerts.length;i++) {
+ UserAlert alert = alerts[i];
if(!alert.isValid()) continue;
- short level = a[i].getPriorityClass();
+ short level = alert.getPriorityClass();
if(level <= UserAlert.CRITICAL_ERROR)
buf.append("<div class=\"infobox
infobox-error\">\n");
else if(level <= UserAlert.ERROR)
@@ -61,20 +61,95 @@
buf.append("<div class=\"infobox
infobox-information\">\n");
//
buf.append("<div class=\"infobox-header\">\n");
- buf.append(a[i].getTitle());
+ buf.append(alert.getTitle());
buf.append("</div>\n");
//
buf.append("<div class=\"infobox-content\">\n");
- buf.append(a[i].getText());
+ buf.append(alert.getText());
//
- if(a[i].userCanDismiss())
+ if(alert.userCanDismiss())
buf.append("<form method=\"post\"
action=\".\"><input type=\"hidden\" name=\"disable\" value=\""+
- a[i].hashCode()+"\"
/><input type=\"submit\" value=\""+a[i].dismissButtonText()+"\" /></form>");
+ alert.hashCode()+"\"
/><input type=\"submit\" value=\""+alert.dismissButtonText()+"\" /></form>");
//
buf.append("</div>\n");
buf.append("</div>\n");
}
}
}
+
+ /**
+ * Write the alert summary as HTML to a StringBuffer
+ */
+ public void toSummaryHtml(StringBuffer buf) {
+ short highestLevel = 99;
+ int numberOfCriticalError = 0;
+ int numberOfError = 0;
+ int numberOfWarning = 0;
+ int numberOfMinor = 0;
+ int totalNumber = 0;
+ synchronized(alerts){
+ UserAlert[] alerts = getAlerts();
+ for(int i=0;i<alerts.length;i++) {
+ UserAlert alert = alerts[i];
+ if(!alert.isValid()) continue;
+ short level = alert.getPriorityClass();
+ if(level < highestLevel)
+ highestLevel = level;
+ if(level <= UserAlert.CRITICAL_ERROR)
+ numberOfCriticalError += 1;
+ else if(level <= UserAlert.ERROR)
+ numberOfError += 1;
+ else if(level <= UserAlert.WARNING)
+ numberOfWarning += 1;
+ else if(level <= UserAlert.MINOR)
+ numberOfMinor += 1;
+ totalNumber += 1;
+ }
+ if(totalNumber == 0)
+ return;
+ boolean separatorNeeded = false;
+ StringBuffer alertSummaryString = new
StringBuffer(1024);
+ if (numberOfCriticalError != 0) {
+ alertSummaryString.append("Critical Error: " +
numberOfCriticalError);
+ separatorNeeded = true;
+ }
+ if (numberOfError != 0) {
+ if (separatorNeeded)
+ alertSummaryString.append(" | ");
+ alertSummaryString.append("Error: " +
numberOfError);
+ separatorNeeded = true;
+ }
+ if (numberOfWarning != 0) {
+ if (separatorNeeded)
+ alertSummaryString.append(" | ");
+ alertSummaryString.append("Warning: " +
numberOfWarning);
+ separatorNeeded = true;
+ }
+ if (numberOfMinor != 0) {
+ if (separatorNeeded)
+ alertSummaryString.append(" | ");
+ alertSummaryString.append("Minor: " +
numberOfMinor);
+ separatorNeeded = true;
+ }
+ if (separatorNeeded)
+ alertSummaryString.append(" | ");
+ alertSummaryString.append("Total: " + totalNumber);
+ if(highestLevel <= UserAlert.CRITICAL_ERROR)
+ buf.append("<div class=\"infobox infobox-error\">\n");
+ else if(highestLevel <= UserAlert.ERROR)
+ buf.append("<div class=\"infobox infobox-alert\">\n");
+ else if(highestLevel <= UserAlert.WARNING)
+ buf.append("<div class=\"infobox infobox-warning\">\n");
+ else if(highestLevel <= UserAlert.MINOR)
+ buf.append("<div class=\"infobox infobox-information\">\n");
+ buf.append("<div class=\"infobox-header\">\n");
+ buf.append("Outstanding Alerts");
+ buf.append("</div>\n");
+ buf.append("<div class=\"infobox-content\">\n");
+ buf.append(alertSummaryString);
+ buf.append("</div>\n");
+ buf.append("</div>\n");
+ }
+ }
}