[freenet-cvs] r13343 - in trunk/freenet/src/freenet: clients/http l10n

nextgens at freenetproject.org nextgens at freenetproject.org
Wed May 23 19:55:44 UTC 2007


Author: nextgens
Date: 2007-05-23 19:55:43 +0000 (Wed, 23 May 2007)
New Revision: 13343

Added:
   trunk/freenet/src/freenet/clients/http/FirstTimeWizardToadlet.java
Modified:
   trunk/freenet/src/freenet/clients/http/ConfigToadlet.java
   trunk/freenet/src/freenet/clients/http/FProxyToadlet.java
   trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
Log:
set the grounds of what will be the FirstTimeWizardToadlet; fix some l10n strings

Modified: trunk/freenet/src/freenet/clients/http/ConfigToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/ConfigToadlet.java	2007-05-23 19:50:17 UTC (rev 13342)
+++ trunk/freenet/src/freenet/clients/http/ConfigToadlet.java	2007-05-23 19:55:43 UTC (rev 13343)
@@ -158,7 +158,7 @@
 					
 					HTMLNode configItemNode = configGroupUlNode.addChild("li");
 					configItemNode.addChild("span", new String[]{ "class", "title", "style" },
-							new String[]{ "configshortdesc", L10n.getString("defaultIs", new String[] { "default" }, new String[] { o[j].getDefault() }), 
+							new String[]{ "configshortdesc", L10n.getString("ConfigToadlet.defaultIs", new String[] { "default" }, new String[] { o[j].getDefault() }), 
 							"cursor: help;" }).addChild(L10n.getHTMLNode(o[j].getShortDesc()));
 					HTMLNode configItemValueNode = configItemNode.addChild("span", "class", "config");
 					if(o[j].getValueString() == null){

Modified: trunk/freenet/src/freenet/clients/http/FProxyToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/FProxyToadlet.java	2007-05-23 19:50:17 UTC (rev 13342)
+++ trunk/freenet/src/freenet/clients/http/FProxyToadlet.java	2007-05-23 19:55:43 UTC (rev 13343)
@@ -617,6 +617,9 @@
 			TranslationToadlet translationToadlet = new TranslationToadlet(client, core);
 			server.register(translationToadlet, TranslationToadlet.TOADLET_URL, true, l10n("translationTitle"), l10n("translation"), true);
 			
+			FirstTimeWizardToadlet firstTimeWizardToadlet = new FirstTimeWizardToadlet(client, node);
+			server.register(firstTimeWizardToadlet, FirstTimeWizardToadlet.TOADLET_URL, true, false);
+			
 			// Now start the server.
 			server.start();
 			

Added: trunk/freenet/src/freenet/clients/http/FirstTimeWizardToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/FirstTimeWizardToadlet.java	                        (rev 0)
+++ trunk/freenet/src/freenet/clients/http/FirstTimeWizardToadlet.java	2007-05-23 19:55:43 UTC (rev 13343)
@@ -0,0 +1,120 @@
+/* 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.config.Config;
+import freenet.config.InvalidConfigValueException;
+import freenet.l10n.L10n;
+import freenet.node.Node;
+import freenet.node.NodeClientCore;
+import freenet.support.HTMLNode;
+import freenet.support.Logger;
+import freenet.support.api.HTTPRequest;
+
+/**
+ * A first time wizard aimed to ease the configuration of the node.
+ * 
+ * @author Florent Daignière <nextgens at freenetproject.org>
+ */
+public class FirstTimeWizardToadlet extends Toadlet {
+	private final Node node;
+	private final NodeClientCore core;
+	private final Config config;
+	
+	
+	FirstTimeWizardToadlet(HighLevelSimpleClient client, Node node) {
+		super(client);
+		this.node = node;
+		this.core = node.clientCore;
+		this.config = node.config;
+	}
+	
+	public static final String TOADLET_URL = "/wizard/";
+	
+	public void handleGet(URI uri, HTTPRequest request, ToadletContext ctx) throws ToadletContextClosedException, IOException {
+		int currentStep = request.getIntParam("step");
+		
+		if(currentStep == 1) {
+			HTMLNode pageNode = ctx.getPageMaker().getPageNode(l10n("step1Title"), ctx);
+			HTMLNode contentNode = ctx.getPageMaker().getContentNode(pageNode);
+			
+			HTMLNode languageInfobox = contentNode.addChild("div", "class", "infobox infobox-normal");
+			HTMLNode languageInfoboxHeader = languageInfobox.addChild("div", "class", "infobox-header");
+			HTMLNode languageInfoboxContent = languageInfobox.addChild("div", "class", "infobox-content");
+			
+			languageInfoboxHeader.addChild("#", l10n("selectLanguage"));
+			languageInfoboxContent.addChild("#", l10n("selectLanguageLong"));
+			HTMLNode languageForm = ctx.addFormChild(languageInfoboxContent, ".", "languageForm");
+			HTMLNode result = languageForm.addChild("select", "name", "language");
+			
+			for(int i=0; i<L10n.AVAILABLE_LANGUAGES.length; i++) {
+				
+				if("en".equals(L10n.AVAILABLE_LANGUAGES[i]))
+					result.addChild("option", new String[] { "value", "selected" }, new String[] {
+							L10n.AVAILABLE_LANGUAGES[i], "selected" }, L10n.AVAILABLE_LANGUAGES[i]);
+				else
+					result.addChild("option", "value", L10n.AVAILABLE_LANGUAGES[i], L10n.AVAILABLE_LANGUAGES[i]);
+			}
+			
+			languageForm.addChild("input", new String[] { "type", "name", "value" }, new String[] { "submit", "languageF", L10n.getString("Toadlet.clickHere")});
+			languageForm.addChild("input", new String[] { "type", "name", "value" }, new String[] { "submit", "cancel", L10n.getString("Toadlet.cancel")});
+			this.writeReply(ctx, 200, "text/html; charset=utf-8", "OK", pageNode.generate());
+			return;
+		}
+		
+		HTMLNode pageNode = ctx.getPageMaker().getPageNode(l10n("homepageTitle"), ctx);
+		HTMLNode contentNode = ctx.getPageMaker().getContentNode(pageNode);
+		
+		HTMLNode welcomeInfobox = contentNode.addChild("div", "class", "infobox infobox-normal");
+		HTMLNode welcomeInfoboxHeader = welcomeInfobox.addChild("div", "class", "infobox-header");
+		HTMLNode welcomeInfoboxContent = welcomeInfobox.addChild("div", "class", "infobox-content");
+		welcomeInfoboxHeader.addChild("#", l10n("welcomeInfoboxTitle"));
+		welcomeInfoboxContent.addChild("#", l10n("welcomeInfoboxContent1"));
+		welcomeInfoboxContent.addChild("a", "href", "?step=1").addChild("#", L10n.getString("Toadlet.clickHere"));
+		this.writeReply(ctx, 200, "text/html; charset=utf-8", "OK", pageNode.generate());
+	}
+	
+	public void handlePost(URI uri, HTTPRequest request, ToadletContext ctx) throws ToadletContextClosedException, IOException {
+		
+		if(!ctx.isAllowedFullAccess()) {
+			super.sendErrorPage(ctx, 403, "Unauthorized", L10n.getString("Toadlet.unauthorized"));
+			return;
+		}
+		
+		String passwd = request.getPartAsString("formPassword", 32);
+		boolean noPassword = (passwd == null) || !passwd.equals(core.formPassword);
+		if(noPassword) {
+			if(Logger.shouldLog(Logger.MINOR, this)) Logger.minor(this, "No password ("+passwd+" should be "+core.formPassword+ ')');
+			super.writeTemporaryRedirect(ctx, "invalid/unhandled data", "/");
+			return;
+		}
+		
+		if(request.isPartSet("languageF")) {
+			String selectedLanguage = request.getPartAsString("language", 4);
+			
+			try {
+				config.get("node").set("l10n", selectedLanguage);
+				Logger.normal(this, "The language has been set to "+ selectedLanguage);
+			} catch (InvalidConfigValueException e) {
+				Logger.error(this, "Should not happen, please report!" + e);
+			}
+			super.writeTemporaryRedirect(ctx, "step2", TOADLET_URL+"?step=2");
+			return;
+		}
+		
+		super.writeTemporaryRedirect(ctx, "invalid/unhandled data", TOADLET_URL);
+	}
+	
+	private String l10n(String key) {
+		return L10n.getString("FirstTimeWizardToadlet."+key);
+	}
+
+	public String supportedMethods() {
+		return "GET, POST";
+	}
+}

Modified: trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
===================================================================
--- trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties	2007-05-23 19:50:17 UTC (rev 13342)
+++ trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties	2007-05-23 19:55:43 UTC (rev 13343)
@@ -163,6 +163,12 @@
 DarknetConnectionsToadlet.versionTitle=Version
 ExtOldAgeUserAlert.extTooOld=Your freenet-ext.jar file seems to be outdated: we strongly advise you to update it using http://downloads.freenetproject.org/alpha/freenet-ext.jar.
 ExtOldAgeUserAlert.extTooOldTitle=Freenet-ext too old
+FirstTimeWizardToadlet.homepageTitle=Freenet first time wizard!
+FirstTimeWizardToadlet.welcomeInfoboxTitle=Welcome to freenet first time wizard!
+FirstTimeWizardToadlet.welcomeInfoboxContent1=Welcome to freenet first time wizard. This tool will enable you to configure your node quickly and easily to get you started. Please
+FirstTimeWizardToadlet.selectLanguage=Please select a language
+FirstTimeWizardToadlet.selectLanguageLong=Please select a language from the list below:
+FirstTimeWizardToadlet.step1Title=Freenet first time wizard! - Choose your language
 FProxyToadlet.abortToHomepage=Abort and return to the FProxy home page
 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.
@@ -780,6 +786,7 @@
 Toadlet.returnToPrevPage=Return to the previous page
 Toadlet.tempRedirectWithReason=Temporary redirect: ${reason}
 Toadlet.unauthorized=You are not permitted access to this page.
+Toadlet.homepage=Homepage
 ToadletContextImpl.cannotParseContentLength=Content-length parse error: ${error}
 ToadletContextImpl.headersLineTooLong=Line too long parsing headers
 ToadletContextImpl.methodNotAllowed=HTTP Method Not Allowed




More information about the cvs mailing list