X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Faccount%2FMyDetailsForm.java;h=d6b65e01842877154e0fc1c1307881ff96b2152a;hp=fd329ffdecaeb191f23b1fd78deb5f13c6372cd0;hb=a995a3619a629d010f2ab8ebd053f44547b3ff3b;hpb=ecf2ecef1ef7e1674135004814d9428da1d30eca diff --git a/src/org/cacert/gigi/pages/account/MyDetailsForm.java b/src/org/cacert/gigi/pages/account/MyDetailsForm.java index fd329ffd..d6b65e01 100644 --- a/src/org/cacert/gigi/pages/account/MyDetailsForm.java +++ b/src/org/cacert/gigi/pages/account/MyDetailsForm.java @@ -2,15 +2,19 @@ package org.cacert.gigi.pages.account; import java.io.PrintWriter; import java.util.Map; +import java.util.Set; import javax.servlet.http.HttpServletRequest; import org.cacert.gigi.GigiApiException; +import org.cacert.gigi.dbObjects.Group; import org.cacert.gigi.dbObjects.Name; import org.cacert.gigi.dbObjects.User; import org.cacert.gigi.localisation.Language; import org.cacert.gigi.output.ArrayIterable; +import org.cacert.gigi.output.CountrySelector; import org.cacert.gigi.output.DateSelector; +import org.cacert.gigi.output.GroupIterator; import org.cacert.gigi.output.NameInput; import org.cacert.gigi.output.template.Form; import org.cacert.gigi.output.template.Template; @@ -24,18 +28,28 @@ public class MyDetailsForm extends Form { private static final Template names = new Template(MyDetailsForm.class.getResource("NamesForm.templ")); + private static final Template roles = new Template(MyDetailsForm.class.getResource("MyDetailsRoles.templ")); + private User target; private DateSelector ds; private NameInput ni; + private CountrySelector cs; + public MyDetailsForm(HttpServletRequest hsr, User target) { super(hsr); this.target = target; ni = new NameInput(); this.ds = new DateSelector("day", "month", "year", target.getDoB()); + + if (target.getResidenceCountry() == null) { + this.cs = new CountrySelector("residenceCountry", true); + } else { + this.cs = new CountrySelector("residenceCountry", true, target.getResidenceCountry()); + } } @Override @@ -82,6 +96,10 @@ public class MyDetailsForm extends Form { ds.update(req); target.setDoB(ds.getDate()); } + if ("updateResidenceCountry".equals(action)) { + cs.update(req); + target.setResidenceCountry(cs.getCountry()); + } } catch (GigiApiException e) { e.format(out, Page.getLanguage(req)); return false; @@ -118,7 +136,14 @@ public class MyDetailsForm extends Form { }); vars.put("name", ni); + final Set gr = target.getGroups(); names.output(out, l, vars); + + vars.put("support-groups", new GroupIterator(gr.iterator(), true)); + vars.put("groups", new GroupIterator(gr.iterator(), false)); + roles.output(out, l, vars); + + vars.put("residenceCountry", cs); if (target.getReceivedAssurances().length == 0) { vars.put("DoB", ds); templ.output(out, l, vars); @@ -126,6 +151,7 @@ public class MyDetailsForm extends Form { vars.put("DoB", target.getDoB()); assured.output(out, l, vars); } + } }