Author: nextgens
Date: 2006-03-10 10:40:23 +0000 (Fri, 10 Mar 2006)
New Revision: 8208

Modified:
   trunk/freenet/src/freenet/clients/http/ConfigToadlet.java
   trunk/freenet/src/freenet/clients/http/FproxyToadlet.java
   trunk/freenet/src/freenet/clients/http/PageMaker.java
   trunk/freenet/src/freenet/clients/http/SimpleToadletServer.java
   trunk/freenet/src/freenet/clients/http/StaticToadlet.java
   trunk/freenet/src/freenet/clients/http/Toadlet.java
   trunk/freenet/src/freenet/clients/http/ToadletContextImpl.java
   trunk/freenet/src/freenet/clients/http/TrivialToadlet.java
   trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java
   trunk/freenet/src/freenet/node/Version.java
   trunk/freenet/src/freenet/pluginmanager/PproxyToadlet.java
Log:
515:
        Now fproxy's CSS is a config. option insteed of a cookie.
The main asset is that it will work even on "non cookies enabled" browsers,
 the caveat is that every users will have to share the same CSS :|

Modified: trunk/freenet/src/freenet/clients/http/ConfigToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/ConfigToadlet.java   2006-03-10 
00:33:25 UTC (rev 8207)
+++ trunk/freenet/src/freenet/clients/http/ConfigToadlet.java   2006-03-10 
10:40:23 UTC (rev 8208)
@@ -21,8 +21,8 @@
        private Config config;
        private Node node;

-       ConfigToadlet(HighLevelSimpleClient client, Node n, Config conf) {
-               super(client);
+       ConfigToadlet(HighLevelSimpleClient client, Node n, Config conf, String 
CSSName) {
+               super(client, CSSName);
                config=conf;
                node=n;
        }
@@ -31,7 +31,7 @@
                StringBuffer buf = new StringBuffer();
                SubConfig[] sc = config.getConfigs();

-               ctx.getPageMaker().makeHead(buf, "Freenet Node Configuration");
+               ctx.getPageMaker().makeHead(buf, "Freenet Node Configuration", 
CSSName);
                buf.append("<h1 class=\"title\">test</h1>\n");
                buf.append("<div class=\"config\">\n");
                buf.append("    <ul class=\"config\">\n");

Modified: trunk/freenet/src/freenet/clients/http/FproxyToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/FproxyToadlet.java   2006-03-10 
00:33:25 UTC (rev 8207)
+++ trunk/freenet/src/freenet/clients/http/FproxyToadlet.java   2006-03-10 
10:40:23 UTC (rev 8208)
@@ -19,17 +19,16 @@
 import freenet.keys.FreenetURI;
 import freenet.node.Node;
 import freenet.node.RequestStarter;
+import freenet.pluginmanager.HTTPRequest;
 import freenet.pluginmanager.PproxyToadlet;
-import freenet.pluginmanager.HTTPRequest;
-import freenet.support.Bucket;
 import freenet.support.HTMLEncoder;
 import freenet.support.Logger;
 import freenet.support.MultiValueTable;

 public class FproxyToadlet extends Toadlet {

-       public FproxyToadlet(HighLevelSimpleClient client) {
-               super(client);
+       public FproxyToadlet(HighLevelSimpleClient client, String CSSName) {
+               super(client, CSSName);
        }

        public String supportedMethods() {
@@ -41,6 +40,7 @@
                //String ks = uri.toString();
                String ks = uri.getPath();

+               
                if (ks.equals("/")) {
                        HTTPRequest httprequest = new HTTPRequest(uri);
                        if (httprequest.isParameterSet("key")) {
@@ -152,6 +152,24 @@
                }
        }

+       static class FproxyCSSNameCallback implements StringCallback {
+               
+               final Node node;
+               
+               FproxyCSSNameCallback(Node n) {
+                       this.node = n;
+               }
+               
+               public String get() {
+                       return node.getFproxy().getCSSName();
+               }
+               
+               public void set(String CSSName) throws 
InvalidConfigValueException {
+                       FproxyToadlet f = node.getFproxy();
+                       f.setCSSName(CSSName);
+               }
+       }
+       
        public static void maybeCreateFproxyEtc(Node node, Config config) 
throws IOException {

                SubConfig fproxyConfig = new SubConfig("fproxy", config);
@@ -170,10 +188,13 @@
                fproxyConfig.register("port", DEFAULT_FPROXY_PORT, 2, true, 
"Fproxy port number", "Fproxy port number",
                                new FproxyPortCallback(node));
                fproxyConfig.register("bindto", "127.0.0.1", 2, true, "IP 
address to bind to", "IP address to bind to",
-                                     new FproxyBindtoCallback(node));
+                               new FproxyBindtoCallback(node));
+               fproxyConfig.register("css", "clean", 1, true, "CSS Name", 
"Name of the CSS Fproxy should use",
+                               new FproxyCSSNameCallback(node));

                int port = fproxyConfig.getInt("port");
                String bind_ip = fproxyConfig.getString("bindto");
+               String CSSName = fproxyConfig.getString("css");

                System.out.println("Starting fproxy on port "+(port));
                Logger.normal(node,"Starting fproxy on "+bind_ip+":"+port);
@@ -181,20 +202,20 @@
                try {
                        SimpleToadletServer server = new 
SimpleToadletServer(port, bind_ip);
                        node.setToadletContainer(server);
-                       FproxyToadlet fproxy = new 
FproxyToadlet(node.makeClient(RequestStarter.INTERACTIVE_PRIORITY_CLASS));
+                       FproxyToadlet fproxy = new 
FproxyToadlet(node.makeClient(RequestStarter.INTERACTIVE_PRIORITY_CLASS), 
CSSName);
                        node.setFproxy(fproxy);
                        server.register(fproxy, "/", false);

-                       PproxyToadlet pproxy = new 
PproxyToadlet(node.makeClient(RequestStarter.INTERACTIVE_PRIORITY_CLASS), 
node.pluginManager);
+                       PproxyToadlet pproxy = new 
PproxyToadlet(node.makeClient(RequestStarter.INTERACTIVE_PRIORITY_CLASS), 
node.pluginManager, CSSName);
                        server.register(pproxy, "/plugins/", true);

-                       WelcomeToadlet welcometoadlet = new 
WelcomeToadlet(node.makeClient(RequestStarter.INTERACTIVE_PRIORITY_CLASS), 
node);
+                       WelcomeToadlet welcometoadlet = new 
WelcomeToadlet(node.makeClient(RequestStarter.INTERACTIVE_PRIORITY_CLASS), 
node, CSSName);
                        server.register(welcometoadlet, "/welcome/", true);

-                       ConfigToadlet configtoadlet = new 
ConfigToadlet(node.makeClient(RequestStarter.INTERACTIVE_PRIORITY_CLASS), node, 
config);
+                       ConfigToadlet configtoadlet = new 
ConfigToadlet(node.makeClient(RequestStarter.INTERACTIVE_PRIORITY_CLASS), node, 
config, CSSName);
                        server.register(configtoadlet, "/config/", true);

-                       StaticToadlet statictoadlet = new 
StaticToadlet(node.makeClient(RequestStarter.INTERACTIVE_PRIORITY_CLASS));
+                       StaticToadlet statictoadlet = new 
StaticToadlet(node.makeClient(RequestStarter.INTERACTIVE_PRIORITY_CLASS), 
CSSName);
                        server.register(statictoadlet, "/static/", true);
                } catch (IOException ioe) {
                        Logger.error(node,"Failed to start fproxy on 
"+bind_ip+":"+port);
@@ -202,7 +223,4 @@

                fproxyConfig.finishedInitialization();
        }
-
-
-       
 }

Modified: trunk/freenet/src/freenet/clients/http/PageMaker.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/PageMaker.java       2006-03-10 
00:33:25 UTC (rev 8207)
+++ trunk/freenet/src/freenet/clients/http/PageMaker.java       2006-03-10 
10:40:23 UTC (rev 8208)
@@ -18,6 +18,14 @@
                }
        }

+       public void setCSSName(String name){
+               if (name == null || !this.getThemes().contains(name)) {
+                       this.theme = this.defaulttheme;
+               } else {
+                       this.theme = name;
+               }
+       }
+
        public void makeTopHead(StringBuffer buf) {
                buf.append("<!DOCTYPE\n"
                                + "     html PUBLIC \"-//W3C//DTD XHTML 
1.1//EN\">\n"
@@ -39,7 +47,8 @@
                buf.append("<div id=\"content\">\n");
        }

-       public void makeHead(StringBuffer buf, String title) {
+       public void makeHead(StringBuffer buf, String title, String CSSName) {
+               setCSSName(CSSName);
                makeTopHead(buf);
                makeBottomHead(buf, title);
        }
@@ -47,9 +56,6 @@
        public void makeTail(StringBuffer buf) {
                buf.append("<br style=\"clear: all;\"/>\n"
                                + "</div>\n"
-                               + "<div id=\"themeselect\">\n");
-               this.makeThemeSelect(buf);
-               buf.append("</div>\n"
                                +"</div>\n"
                                +"</body>\n"
                                + "</html>\n");
@@ -75,27 +81,4 @@
                                + "</ul>\n"
                                + "</div>\n");
        }
-       
-       private void makeThemeSelect(StringBuffer buf) {
-               Collection themes = this.getThemes();
-               
-               Iterator i = themes.iterator();
-               
-               buf.append("Theme: <ul>\n");
-               String liclass = new String("");
-               while (i.hasNext()) {
-                       String t = (String) i.next();
-                       
-                       if (t.equals(this.theme)) {
-                               liclass = "currentthemeitem";
-                       } else {
-                               liclass = "themeitem";
-                       }
-                       buf.append("<li class=\""+liclass+"\">\n"
-                                       +"<a href=\"javascript:document.cookie 
= 'theme="+t+"; expires=Mon, 04 Mar 2030 00:00:00 GMT; 
path=/';window.location.reload(true)\" title=\""+t+" theme\">\n"
-                                       + t+"</a>\n"
-                                       + "</li>\n");
-               }
-               buf.append("</ul>\n");
-       }
 }

Modified: trunk/freenet/src/freenet/clients/http/SimpleToadletServer.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/SimpleToadletServer.java     
2006-03-10 00:33:25 UTC (rev 8207)
+++ trunk/freenet/src/freenet/clients/http/SimpleToadletServer.java     
2006-03-10 10:40:23 UTC (rev 8208)
@@ -20,7 +20,7 @@
 import freenet.support.FileLoggerHook.IntervalParseException;

 public class SimpleToadletServer implements ToadletContainer, Runnable {
-
+       
        public class ToadletElement {
                public ToadletElement(Toadlet t2, String urlPrefix) {
                        t = t2;
@@ -35,10 +35,6 @@
        private final ServerSocket sock;
        private final LinkedList toadlets;

-       public SimpleToadletServer(int i) throws IOException {
-               this(i, "127.0.0.1");
-       }
-       
        public SimpleToadletServer(int i, String newbindto) throws IOException {
                this.port = i;
                this.bindto = newbindto;
@@ -78,8 +74,8 @@
         Logger.globalSetThreshold(Logger.MINOR);
         Logger.globalAddHook(logger);
         logger.start();
-               SimpleToadletServer server = new SimpleToadletServer(1111);
-               server.register(new TrivialToadlet(null), "", true);
+               SimpleToadletServer server = new SimpleToadletServer(1111, 
"127.0.0.1");
+               server.register(new TrivialToadlet(null,null), "", true);
                System.out.println("Bound to port 1111.");
                while(true) {
                        try {
@@ -122,5 +118,4 @@
                }

        }
-
 }

Modified: trunk/freenet/src/freenet/clients/http/StaticToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/StaticToadlet.java   2006-03-10 
00:33:25 UTC (rev 8207)
+++ trunk/freenet/src/freenet/clients/http/StaticToadlet.java   2006-03-10 
10:40:23 UTC (rev 8208)
@@ -13,8 +13,8 @@
  * Serve up static files
  */
 public class StaticToadlet extends Toadlet {
-       StaticToadlet(HighLevelSimpleClient client) {
-               super(client);
+       StaticToadlet(HighLevelSimpleClient client, String CSSName) {
+               super(client, CSSName);
        }

        final String rootURL = new String("/static/");

Modified: trunk/freenet/src/freenet/clients/http/Toadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/Toadlet.java 2006-03-10 00:33:25 UTC 
(rev 8207)
+++ trunk/freenet/src/freenet/clients/http/Toadlet.java 2006-03-10 10:40:23 UTC 
(rev 8208)
@@ -30,8 +30,9 @@
  */
 public abstract class Toadlet {

-       protected Toadlet(HighLevelSimpleClient client) {
+       protected Toadlet(HighLevelSimpleClient client, String CSSName) {
                this.client = client;
+               this.CSSName = CSSName;
        }

        private final HighLevelSimpleClient client;
@@ -48,7 +49,7 @@
        public void handleGet(URI uri, ToadletContext ctx) throws 
ToadletContextClosedException, IOException, RedirectException {
                StringBuffer buf = new StringBuffer();

-               ctx.getPageMaker().makeHead(buf, "Not supported");
+               ctx.getPageMaker().makeHead(buf, "Not supported", CSSName);

                buf.append("Operation not supported");
                ctx.getPageMaker().makeTail(buf);
@@ -66,7 +67,7 @@
        public void handlePut(URI uri, Bucket data, ToadletContext ctx) throws 
ToadletContextClosedException, IOException, RedirectException {
                StringBuffer buf = new StringBuffer();

-               ctx.getPageMaker().makeHead(buf, "Not supported");
+               ctx.getPageMaker().makeHead(buf, "Not supported", CSSName);

                buf.append("Operation not supported");
                ctx.getPageMaker().makeTail(buf);
@@ -127,7 +128,7 @@
        protected void sendErrorPage(ToadletContext ctx, int code, String desc, 
String message) throws ToadletContextClosedException, IOException {
                StringBuffer buf = new StringBuffer();

-               ctx.getPageMaker().makeHead(buf, desc);
+               ctx.getPageMaker().makeHead(buf, desc, CSSName);
                buf.append(message);
                ctx.getPageMaker().makeTail(buf);
                writeReply(ctx, code, "text/html", desc, buf.toString());
@@ -141,4 +142,13 @@
                return client;
        }

+       public String CSSName;
+       
+       public void setCSSName(String name){
+               CSSName = name;
+       }
+       
+       public String getCSSName(){
+               return CSSName;
+       }
 }

Modified: trunk/freenet/src/freenet/clients/http/ToadletContextImpl.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/ToadletContextImpl.java      
2006-03-10 00:33:25 UTC (rev 8207)
+++ trunk/freenet/src/freenet/clients/http/ToadletContextImpl.java      
2006-03-10 10:40:23 UTC (rev 8208)
@@ -8,6 +8,7 @@
 import java.net.URISyntaxException;
 import java.util.Enumeration;

+import freenet.config.Config;
 import freenet.support.Bucket;
 import freenet.support.BucketTools;
 import freenet.support.Logger;
@@ -30,6 +31,8 @@
        private final MultiValueTable headers;
        private final OutputStream sockOutputStream;
        private final PageMaker pagemaker;
+       private String CSSName;
+       
        /** Is the context closed? If so, don't allow any more writes. This is 
because there
         * may be later requests.
         */
@@ -41,21 +44,7 @@
                this.closed = false;
                sockOutputStream = sock.getOutputStream();

-               Enumeration cookieheaders = headers.getAll("Cookie");
-               String current;
-               String theme = new String("");
-               while (cookieheaders.hasMoreElements()) {
-                       current = (String) cookieheaders.nextElement();
-                       String[] parts = current.split("=");
-                       if (parts.length == 2 && parts[0].equals("theme")) {
-                               theme = parts[1];
-                       }
-               }
-               if (theme.equals("")) {
-                       pagemaker = new PageMaker(null);
-               } else {
-                       pagemaker = new PageMaker(theme);
-               }
+               pagemaker = new PageMaker(CSSName);
        }

        private void close() {
@@ -295,5 +284,4 @@
                if(closed) throw new ToadletContextClosedException();
                BucketTools.copyTo(data, sockOutputStream, Long.MAX_VALUE);
        }
-
 }

Modified: trunk/freenet/src/freenet/clients/http/TrivialToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/TrivialToadlet.java  2006-03-10 
00:33:25 UTC (rev 8207)
+++ trunk/freenet/src/freenet/clients/http/TrivialToadlet.java  2006-03-10 
10:40:23 UTC (rev 8208)
@@ -9,8 +9,8 @@

 public class TrivialToadlet extends Toadlet {

-       TrivialToadlet(HighLevelSimpleClient client) {
-               super(client);
+       TrivialToadlet(HighLevelSimpleClient client, String CSSName) {
+               super(client, CSSName);
        }

        public void handleGet(URI uri, ToadletContext ctx) throws 
ToadletContextClosedException, IOException {

Modified: trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java  2006-03-10 
00:33:25 UTC (rev 8207)
+++ trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java  2006-03-10 
10:40:23 UTC (rev 8208)
@@ -14,16 +14,16 @@
 public class WelcomeToadlet extends Toadlet {
        Node node;

-       WelcomeToadlet(HighLevelSimpleClient client, Node n) {
-               super(client);
+       WelcomeToadlet(HighLevelSimpleClient client, Node n, String CSSName) {
+               super(client, CSSName);
                this.node = n;
        }

        public void handleGet(URI uri, ToadletContext ctx) throws 
ToadletContextClosedException, IOException {
                StringBuffer buf = new StringBuffer();

-               ctx.getPageMaker().makeHead(buf, "Freenet FProxy Homepage");
-               
+               ctx.getPageMaker().makeHead(buf, "Freenet FProxy Homepage", 
CSSName);
+
                // Version info
                buf.append("<div class=\"infobox\">\n");
                buf.append("<h2>Version</h2>");

Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-03-10 00:33:25 UTC (rev 
8207)
+++ trunk/freenet/src/freenet/node/Version.java 2006-03-10 10:40:23 UTC (rev 
8208)
@@ -20,7 +20,7 @@
        public static final String protocolVersion = "1.0";

        /** The build number of the current revision */
-       private static final int buildNumber = 514;
+       private static final int buildNumber = 515;

        /** Oldest build of Fred we will talk to */
        private static final int lastGoodBuild = 507;

Modified: trunk/freenet/src/freenet/pluginmanager/PproxyToadlet.java
===================================================================
--- trunk/freenet/src/freenet/pluginmanager/PproxyToadlet.java  2006-03-10 
00:33:25 UTC (rev 8207)
+++ trunk/freenet/src/freenet/pluginmanager/PproxyToadlet.java  2006-03-10 
10:40:23 UTC (rev 8208)
@@ -17,8 +17,8 @@
 public class PproxyToadlet extends Toadlet {
        private PluginManager pm = null;

-       public PproxyToadlet(HighLevelSimpleClient client, PluginManager pm) {
-               super(client);
+       public PproxyToadlet(HighLevelSimpleClient client, PluginManager pm, 
String CSSName) {
+               super(client, CSSName);
                this.pm = pm;
        }

@@ -91,7 +91,7 @@
        private void showPluginList(ToadletContext ctx, HTTPRequest request) 
throws ToadletContextClosedException, IOException {
                if (!request.hasParameters()) {
                        StringBuffer out = new StringBuffer();
-                       ctx.getPageMaker().makeHead(out, "Plugin List");
+                       ctx.getPageMaker().makeHead(out, "Plugin List", 
CSSName);
                        out.append("<table style=\"border: 1pt solid 
#c0c0c0;\">");
                        out.append("  <tr>\n");
                        out.append("    <th>Name</th>\n");


Reply via email to