Author: nextgens
Date: 2006-05-20 06:40:55 +0000 (Sat, 20 May 2006)
New Revision: 8795
Modified:
trunk/freenet/src/freenet/clients/http/FproxyToadlet.java
Log:
Fproxy:
* add themes to most error messages
Modified: trunk/freenet/src/freenet/clients/http/FproxyToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/FproxyToadlet.java 2006-05-20
06:17:37 UTC (rev 8794)
+++ trunk/freenet/src/freenet/clients/http/FproxyToadlet.java 2006-05-20
06:40:55 UTC (rev 8795)
@@ -119,11 +119,33 @@
long maxSize = httprequest.getLongParam("max-size", MAX_LENGTH);
+ StringBuffer buf = new StringBuffer();
FreenetURI key;
try {
key = new FreenetURI(ks);
} catch (MalformedURLException e) {
- this.writeReply(ctx, 400, "text/html", "Invalid key",
"<html><head><title>Invalid key</title></head><body>Expected a freenet key, but
got "+HTMLEncoder.encode(ks)+"</body></html>");
+ ctx.getPageMaker().makeHead(buf, "Invalid key");
+
+ buf.append("<div class=\"infobox infobox-error\">\n");
+ buf.append("<div class=\"infobox-header\">\n");
+ buf.append("Invalid key\n");
+ buf.append("</div>\n");
+ buf.append("<div class=\"infobox-content\">\n");
+
+ buf.append("Expected a freenet key, but got
"+HTMLEncoder.encode(ks)+"\n");
+ // My browser sends it with one 'r'
+ String ref = (String)ctx.getHeaders().get("Referer");
+ if(ref!=null)
+ buf.append("<br><a href=\""+ref+"\"
title=\"Back\" Back</a>\n");
+ else
+ buf.append("<br><a href=\"javascript:back()\"
title=\"Back\">Back</a>\n");
+ buf.append("<br><a href=\"/\" title=\"Node
Homepage\">Homepage</a>\n");
+ buf.append("</div>\n");
+ buf.append("</div>\n");
+
+ ctx.getPageMaker().makeTail(buf);
+
+ this.writeReply(ctx, 400, "text/html", "Invalid key",
buf.toString());
return;
}
try {
@@ -176,7 +198,6 @@
writeReply(ctx, 200, typeName, "OK",
data);
}
} catch (UnsafeContentTypeException e) {
- StringBuffer buf = new StringBuffer();
ctx.getPageMaker().makeHead(buf, "Potentially
Dangerous Content");
buf.append("<h1>");
buf.append(e.getHTMLEncodedTitle());
@@ -200,7 +221,6 @@
} else if(e.newURI != null) {
this.writePermanentRedirect(ctx, msg,
"/"+e.newURI.toString());
} else if(e.mode == FetchException.TOO_BIG) {
- StringBuffer buf = new StringBuffer();
ctx.getPageMaker().makeHead(buf, "Large file");
buf.append("<table border=\"0\">\n");
String fnam = getFilename(e, key,
e.getExpectedMimeType());
@@ -263,8 +283,29 @@
} else {
if(e.errorCodes != null)
extra =
"<pre>"+e.errorCodes.toVerboseString()+"</pre>";
+ ctx.getPageMaker().makeHead(buf,msg);
+
+ buf.append("<div class=\"infobox
infobox-error\">\n");
+ buf.append("<div class=\"infobox-header\">\n");
+ buf.append(msg+"\n");
+ buf.append("</div>\n");
+ buf.append("<div class=\"infobox-content\">\n");
+
+ buf.append("Error :
"+HTMLEncoder.encode(msg)+extra+"\n");
+ // My browser sends it with one 'r'
+ String ref =
(String)ctx.getHeaders().get("Referer");
+ if(ref!=null)
+ buf.append("<br><a href=\""+ref+"\"
title=\"Back\" Back</a>\n");
+ else
+ buf.append("<br><a
href=\"javascript:back()\" title=\"Back\">Back</a>\n");
+ buf.append("<br><a href=\"/\" title=\"Node
Homepage\">Homepage</a>\n");
+ buf.append("</div>\n");
+ buf.append("</div>\n");
+
+ ctx.getPageMaker().makeTail(buf);
+
this.writeReply(ctx, 500 /* close enough -
FIXME probably should depend on status code */,
- "text/html", msg,
"<html><head><title>"+msg+"</title></head><body>Error:
"+HTMLEncoder.encode(msg)+extra+"</body></html>");
+ "text/html", msg,
buf.toString());
}
} catch (Throwable t) {
Logger.error(this, "Caught "+t, t);