package freenet.clients.http.wizardsteps;
import freenet.clients.http.FirstTimeWizardToadlet;
import freenet.config.Config;
import freenet.config.ConfigException;
import freenet.l10n.NodeL10n;
import freenet.support.HTMLNode;
import freenet.support.Logger;
import freenet.support.api.HTTPRequest;
/**
* Allows the user to choose a node name for Darknet.
*/
public class NAME_SELECTION implements Step {
private final Config config;
public NAME_SELECTION(Config config) {
this.config = config;
}
@Override
public void getStep(HTTPRequest request, PageHelper helper) {
HTMLNode contentNode = helper.getPageContent(WizardL10n.l10n("step2Title"));
HTMLNode nnameInfoboxContent = helper.getInfobox("infobox-normal", WizardL10n.l10n("chooseNodeName"),
contentNode, null, false);
nnameInfoboxContent.addChild("#", WizardL10n.l10n("chooseNodeNameLong"));
HTMLNode nnameForm = helper.addFormChild(nnameInfoboxContent, ".", "nnameForm");
nnameForm.addChild("input", "name", "nname");
HTMLNode lineBelow = nnameForm.addChild("div");
lineBelow.addChild("input",
new String[] { "type", "name", "value" },
new String[] { "submit", "back", NodeL10n.getBase().getString("Toadlet.back")});
lineBelow.addChild("input",
new String[] { "type", "name", "value" },
new String[] { "submit", "next", NodeL10n.getBase().getString("Toadlet.next")});
}
@Override
public String postStep(HTTPRequest request) {
String selectedNName = request.getPartAsStringFailsafe("nname", 128);
//Prompt again when provided with a blank node name.
if (selectedNName.isEmpty()) {
return FirstTimeWizardToadlet.WIZARD_STEP.NAME_SELECTION.name();
}
try {
config.get("node").set("name", selectedNName);
Logger.normal(this, "The node name has been set to " + selectedNName);
} catch (ConfigException e) {
Logger.error(this, "Should not happen, please report!" + e, e);
}
return FirstTimeWizardToadlet.WIZARD_STEP.DATASTORE_SIZE.name();
}
}