private String name = "";
+ private String scheme = "western";
+
public NameInput() {}
public void update(HttpServletRequest req) throws GigiApiException {
lname = req.getParameter("lname");
suffix = req.getParameter("suffix");
name = req.getParameter("name");
+ scheme = req.getParameter("name-type");
if (fname == null) {
fname = "";
}
if (name == null) {
name = "";
}
+ if ( !"western".equals(scheme) && !"single".equals("scheme")) {
+ throw new GigiApiException("Invalid name type.");
+ }
if (name != null && name.contains(" ")) {
throw new GigiApiException("Single names may only have one part.");
}
vars.put("lname", lname);
vars.put("suffix", suffix);
vars.put("name", name);
+ vars.put("western", "western".equals(scheme));
+ vars.put("single", "single".equals(scheme));
t.output(out, l, vars);
}
}
public NamePart[] getNameParts() throws GigiApiException {
- if (name != null && !name.isEmpty()) {
+ if ("single".equals(scheme)) {
return new NamePart[] {
new NamePart(NamePartType.SINGLE_NAME, name)
};
-<h3><?=_First-Last-Suffix Name?></h3>
-<h4><?=_Structure?></h4>
-<?=_Name consists of one or more first names, one or more last names and any amount of suffixes?>
-<h4><?=_Variant Generation?></h4>
+<div class="panel panel-info panel-activatable">
+ <div class="panel-heading"><h3><input id="western-name" type="radio" name="name-type" value="western"<? if($western) { ?>checked<? } ?>><label for="western-name"><?=_First-Last-Suffix Name?></label></h3></div>
+ <div class="panel-body">
+ <h4><?=_Structure?></h4>
+ <?=_Name consists of one or more first names, one or more last names and any amount of suffixes?>
+ <h4><?=_Variant Generation?></h4>
<ul>
<li><?=_First names may be swapped?></li>
<li><?=_The first Last Name is mandatory, any other ones may be omitted, but must stay in sequence.?></li>
<div class="form-group">
<input type='text' name='suffix' class="form-control" placeholder="<?=_Suffixes?>" value="<?=$suffix?>">
</div>
+
+ </div>
+</div>
+
-<h3><?=_Single Name?></h3>
-<h4><?=_Structure?></h4>
+<div class="panel panel-info panel-activatable">
+ <div class="panel-heading"><h3><input id="single-name" type="radio" name="name-type" value="single"<? if($single) { ?>checked<? } ?>><label for="single-name"><?=_Single Name?></label></h3></div>
+ <div class="panel-body">
+ <h4><?=_Structure?></h4>
<?=_Name of one part?>
<h4><?=_Variant Generation?></h4>
<ul>
<div class="form-group">
<input type='text' name='name' class="form-control" placeholder="<?=_Name?>" value="<?=$name?>">
</div>
+ </div>
+</div>
+
+
}
private void update(HttpServletRequest r) throws GigiApiException {
- ni.update(r);
if (r.getParameter("email") != null) {
email = r.getParameter("email");
}
country = "1".equals(r.getParameter("country"));
regional = "1".equals(r.getParameter("regional"));
radius = "1".equals(r.getParameter("radius"));
+ GigiApiException problems = new GigiApiException();
+ try {
+ ni.update(r);
+ } catch (GigiApiException e) {
+ problems.mergeInto(e);
+ }
try {
myDoB.update(r);
} catch (GigiApiException e) {
+ problems.mergeInto(e);
+ }
+ if ( !problems.isEmpty()) {
+ throw problems;
}
}
throw new RateLimitException();
}
- update(req);
GigiApiException ga = new GigiApiException();
+ try {
+ update(req);
+ } catch (GigiApiException e) {
+ ga.mergeInto(e);
+ }
try {
ni.getNameParts();
} catch (GigiApiException e) {
$(".panel-activatable").map(function() {
var panel = $(this);
var refresh = function(){
- if(this.checked){
+ var radio = this.type == "radio";
+ if(radio && this.form.currentRadios === undefined) {
+ this.form.currentRadios = {};
+ }
+ if(this.checked) {
panel.find(".panel-body").removeClass("hidden");
- }else{
+ if(radio) {
+ var rds = this.form.currentRadios;
+ if(rds[this.name] !== undefined){
+ $(rds[this.name]).trigger("change");
+ }
+ rds[this.name] = this;
+ }
+ } else {
panel.find(".panel-body").addClass("hidden");
}
};
panel.find(".panel-heading [type=\"checkbox\"]").map(refresh);
- panel.find(".panel-heading [type=\"checkbox\"]").click(refresh);
+ panel.find(".panel-heading [type=\"checkbox\"]").change(refresh);
+ panel.find(".panel-heading [type=\"radio\"]").map(refresh);
+ panel.find(".panel-heading [type=\"radio\"]").change(refresh);
return this.id;
});
}
public void testAddName() throws IOException {
int startn = User.getById(id).getNames().length;
String newName = createUniqueName();
- assertNull(executeBasicWebInteraction(cookie, MyDetails.PATH, "fname=" + newName + "&lname=Hansel&action=addName", 0));
+ assertNull(executeBasicWebInteraction(cookie, MyDetails.PATH, "name-type=western&fname=" + newName + "&lname=Hansel&action=addName", 0));
User u = User.getById(id);
NamePart[] parts = u.getNames()[startn].getParts();
String defaultSignup = "fname=" + URLEncoder.encode("ab", "UTF-8") + "&lname=" + URLEncoder.encode("b", "UTF-8") + "&pword1=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") + "&pword2=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") + "&day=1&month=1&year=1910&tos_agree=1&mname=mn&suffix=sf&email=";
- String query = defaultSignup + URLEncoder.encode("correct3_" + uniq + "@email.de", "UTF-8") + "&general=1&country=1®ional=1&radius=1";
+ String query = defaultSignup + URLEncoder.encode("correct3_" + uniq + "@email.de", "UTF-8") + "&general=1&country=1®ional=1&radius=1&name-type=western";
String data = fetchStartErrorMessage(runRegister(query));
assertNull(data);
assertSuccessfullRegMail();
public static void registerUser(String firstName, String lastName, String email, String password) {
try {
- String query = "fname=" + URLEncoder.encode(firstName, "UTF-8") + "&lname=" + URLEncoder.encode(lastName, "UTF-8") + "&email=" + URLEncoder.encode(email, "UTF-8") + "&pword1=" + URLEncoder.encode(password, "UTF-8") + "&pword2=" + URLEncoder.encode(password, "UTF-8") + "&day=1&month=1&year=1910&tos_agree=1";
+ String query = "name-type=western&fname=" + URLEncoder.encode(firstName, "UTF-8") + "&lname=" + URLEncoder.encode(lastName, "UTF-8") + "&email=" + URLEncoder.encode(email, "UTF-8") + "&pword1=" + URLEncoder.encode(password, "UTF-8") + "&pword2=" + URLEncoder.encode(password, "UTF-8") + "&day=1&month=1&year=1910&tos_agree=1";
String data = fetchStartErrorMessage(runRegister(query));
assertNull(data);
} catch (UnsupportedEncodingException e) {