Author: nextgens
Date: 2006-05-07 11:57:43 +0000 (Sun, 07 May 2006)
New Revision: 8639
Modified:
trunk/freenet/src/freenet/clients/http/PageMaker.java
trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java
trunk/freenet/src/freenet/node/MeaningfulNodeNameUserAlert.java
trunk/freenet/src/freenet/node/PeerManagerUserAlert.java
trunk/freenet/src/freenet/node/UserAlert.java
trunk/freenet/src/freenet/node/UserAlertManager.java
Log:
UserAlerts are now dissmissable from fproxy
the infamous NPE caused by URL missdecoding is silently discarded : waiting for
Bombe's input
Modified: trunk/freenet/src/freenet/clients/http/PageMaker.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/PageMaker.java 2006-05-07
11:15:53 UTC (rev 8638)
+++ trunk/freenet/src/freenet/clients/http/PageMaker.java 2006-05-07
11:57:43 UTC (rev 8639)
@@ -13,6 +13,8 @@
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
+import freenet.support.Logger;
+
/** Simple class to output standard heads and tail for web interface pages.
*/
public class PageMaker {
@@ -95,14 +97,19 @@
URL url = getClass().getResource("staticfiles/themes/");
URLConnection urlConnection = url.openConnection();
if (url.getProtocol().equals("file")) {
- File themesDirectory = new
File(URLDecoder.decode(url.getPath(), "ISO-8859-1").replaceAll("|", ":"));
- File[] themeDirectories =
themesDirectory.listFiles();
- for (int themeIndex = 0; themeIndex <
themeDirectories.length; themeIndex++) {
- File themeDirectory =
themeDirectories[themeIndex];
- if (themeDirectory.isDirectory() &&
!themeDirectory.getName().startsWith(".")) {
-
themes.add(themeDirectory.getName());
- }
+ try{
+ File themesDirectory = new
File(URLDecoder.decode(url.getPath(), "ISO-8859-1").replaceAll("|", ":"));
+ File[] themeDirectories =
themesDirectory.listFiles();
+ for (int themeIndex = 0; themeIndex <
themeDirectories.length; themeIndex++) {
+ File themeDirectory =
themeDirectories[themeIndex];
+ if
(themeDirectory.isDirectory() && !themeDirectory.getName().startsWith(".")) {
+
themes.add(themeDirectory.getName());
+ }
+ }
+ }catch(Exception e){
+ Logger.error(this,"Error getting theme
list. "+e);
}
+
} else if (urlConnection instanceof JarURLConnection) {
JarURLConnection jarUrlConnection =
(JarURLConnection) urlConnection;
JarFile jarFile = jarUrlConnection.getJarFile();
Modified: trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java 2006-05-07
11:15:53 UTC (rev 8638)
+++ trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java 2006-05-07
11:57:43 UTC (rev 8639)
@@ -9,6 +9,7 @@
import freenet.client.HighLevelSimpleClient;
import freenet.config.SubConfig;
import freenet.node.Node;
+import freenet.node.UserAlert;
import freenet.node.Version;
import freenet.pluginmanager.HTTPRequest;
import freenet.support.Bucket;
@@ -141,7 +142,25 @@
} catch (URISyntaxException ex) {
}
- } else {
+ }else if(request.isParameterSet("disable")){
+ UserAlert[] alerts=node.alerts.getAlerts();
+ for(int i=0;i<alerts.length;i++){
+
if(request.getIntParam("disable")==alerts[i].hashCode()){
+ // Won't be dismissed if it's not
allowed anyway
+ Logger.normal(this,"Disabling the
userAlert "+alerts[i].hashCode());
+ alerts[i].isValid(false);
+
+ ctx.getPageMaker().makeHead(buf,
"Configuration Applied");
+ buf.append("<div class=\"infobox\">\n");
+ buf.append("Your configuration changes
were applied successfully<br />\n");
+ buf.append("<a href=\"/\" title=\"Node
Homepage\">Homepage</a>\n");
+ buf.append("</div>\n");
+
+ ctx.getPageMaker().makeTail(buf);
+ writeReply(ctx, 200, "text/html", "OK",
buf.toString());
+ }
+ }
+ }else {
this.handleGet(uri, ctx);
}
}
Modified: trunk/freenet/src/freenet/node/MeaningfulNodeNameUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/MeaningfulNodeNameUserAlert.java
2006-05-07 11:15:53 UTC (rev 8638)
+++ trunk/freenet/src/freenet/node/MeaningfulNodeNameUserAlert.java
2006-05-07 11:57:43 UTC (rev 8639)
@@ -1,6 +1,7 @@
package freenet.node;
public class MeaningfulNodeNameUserAlert implements UserAlert {
+ private boolean isValid=true;
public boolean userCanDismiss() {
return true;
@@ -22,6 +23,10 @@
}
public boolean isValid() {
- return true;
+ return isValid;
}
+
+ public void isValid(boolean b){
+ if(userCanDismiss()) isValid=b;
+ }
}
Modified: trunk/freenet/src/freenet/node/PeerManagerUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerManagerUserAlert.java 2006-05-07
11:15:53 UTC (rev 8638)
+++ trunk/freenet/src/freenet/node/PeerManagerUserAlert.java 2006-05-07
11:57:43 UTC (rev 8639)
@@ -5,6 +5,7 @@
final Node n;
int conns;
int peers;
+ boolean isValid=true;
PeerManagerUserAlert(Node n) {
this.n = n;
@@ -25,7 +26,7 @@
return "Only 2 open connections";
else throw new IllegalArgumentException("Not valid");
}
-
+
public String getText() {
String s;
if(peers == 0) {
@@ -60,7 +61,10 @@
}
public boolean isValid() {
- return peers == 0 || conns <= 2;
+ return (peers == 0 || conns <= 2)&&isValid;
}
+ public void isValid(boolean b){
+ if(userCanDismiss()) isValid=b;
+ }
}
Modified: trunk/freenet/src/freenet/node/UserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/UserAlert.java 2006-05-07 11:15:53 UTC
(rev 8638)
+++ trunk/freenet/src/freenet/node/UserAlert.java 2006-05-07 11:57:43 UTC
(rev 8639)
@@ -29,6 +29,8 @@
*/
public boolean isValid();
+ public void isValid(boolean validity);
+
/** An error which prevents normal operation */
public final static short CRITICAL_ERROR = 0;
/** An error which prevents normal operation but might be temporary */
Modified: trunk/freenet/src/freenet/node/UserAlertManager.java
===================================================================
--- trunk/freenet/src/freenet/node/UserAlertManager.java 2006-05-07
11:15:53 UTC (rev 8638)
+++ trunk/freenet/src/freenet/node/UserAlertManager.java 2006-05-07
11:57:43 UTC (rev 8639)
@@ -60,6 +60,9 @@
else if(level <= UserAlert.MINOR)
buf.append("<span
class=\"alert-minor\">");
buf.append(a[i].getTitle());
+ if(a[i].userCanDismiss())
+ buf.append("<form method=\"post\"
action=\".\"><input type=\"hidden\" name=\"disable\" value=\""+
+ a[i].hashCode()+"\" /><input
type=\"submit\" value=\"Hide\" /></form>");
if(level <= UserAlert.MINOR)
buf.append("</span>");
buf.append("</b><br />\n");