From 4913098e21bdaf37cdfb9e7b0657dcfdd3c1aedd Mon Sep 17 00:00:00 2001 From: =?utf8?q?Felix=20D=C3=B6rre?= Date: Sun, 22 Jun 2014 19:11:27 +0200 Subject: [PATCH] Save partial entries into register page. --- src/org/cacert/gigi/Gigi.java | 8 ++++++-- src/org/cacert/gigi/pages/main/RegisterPage.java | 16 +++++++++++++++- src/org/cacert/gigi/pages/main/Signup.java | 10 +++++++++- src/org/cacert/gigi/pages/main/Signup.templ | 2 +- 4 files changed, 31 insertions(+), 5 deletions(-) diff --git a/src/org/cacert/gigi/Gigi.java b/src/org/cacert/gigi/Gigi.java index 1464a8b3..348cbecb 100644 --- a/src/org/cacert/gigi/Gigi.java +++ b/src/org/cacert/gigi/Gigi.java @@ -96,13 +96,17 @@ public class Gigi extends HttpServlet { String b0 = baseTemplate[0]; Page p = pages.get(req.getPathInfo()); b0 = makeDynTempl(b0, p); - resp.setContentType("text/html"); + resp.setContentType("text/html; charset=utf-8"); resp.getWriter().print(b0); if (hs != null && hs.getAttribute(LOGGEDIN) != null) { resp.getWriter().println( "Hi " + ((User) hs.getAttribute(USER)).getFname()); } - p.doGet(req, resp); + if (req.getMethod().equals("POST")) { + p.doPost(req, resp); + } else { + p.doGet(req, resp); + } String b1 = baseTemplate[1]; b1 = makeDynTempl(b1, p); resp.getWriter().print(b1); diff --git a/src/org/cacert/gigi/pages/main/RegisterPage.java b/src/org/cacert/gigi/pages/main/RegisterPage.java index b63dbce1..6505c625 100644 --- a/src/org/cacert/gigi/pages/main/RegisterPage.java +++ b/src/org/cacert/gigi/pages/main/RegisterPage.java @@ -8,6 +8,8 @@ import java.util.HashMap; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + import org.cacert.gigi.output.Template; import org.cacert.gigi.pages.Page; @@ -32,12 +34,24 @@ public class RegisterPage extends Page { throws IOException { PrintWriter out = resp.getWriter(); t.output(out, getLanguage(req), new HashMap()); - Signup s = new Signup(); + Signup s = getForm(req); s.writeForm(out, req); } + public Signup getForm(HttpServletRequest req) { + HttpSession hs = req.getSession(); + Signup s = (Signup) hs.getAttribute("signupProcess"); + if (s == null) { + s = new Signup(); + hs.setAttribute("signupProcess", s); + } + return s; + + } @Override public void doPost(HttpServletRequest req, ServletResponse resp) throws IOException { + Signup s = getForm(req); + s.update(req); super.doPost(req, resp); } diff --git a/src/org/cacert/gigi/pages/main/Signup.java b/src/org/cacert/gigi/pages/main/Signup.java index 09f50e10..c1c47c56 100644 --- a/src/org/cacert/gigi/pages/main/Signup.java +++ b/src/org/cacert/gigi/pages/main/Signup.java @@ -45,7 +45,7 @@ public class Signup { vars.put("email", HTMLEncoder.encodeHTML(buildup.getEmail())); vars.put("general", general ? " checked=\"checked\"" : ""); vars.put("country", country ? " checked=\"checked\"" : ""); - vars.put("region", regional ? " checked=\"checked\"" : ""); + vars.put("regional", regional ? " checked=\"checked\"" : ""); vars.put("radius", radius ? " checked=\"checked\"" : ""); vars.put( "helpOnNames", @@ -57,5 +57,13 @@ public class Signup { } public void update(ServletRequest r) { buildup.setFname(r.getParameter("fname")); + buildup.setLname(r.getParameter("lname")); + buildup.setMname(r.getParameter("mname")); + buildup.setSuffix(r.getParameter("suffix")); + buildup.setEmail(r.getParameter("email")); + general = "1".equals(r.getParameter("general")); + country = "1".equals(r.getParameter("country")); + regional = "1".equals(r.getParameter("regional")); + radius = "1".equals(r.getParameter("radius")); } } diff --git a/src/org/cacert/gigi/pages/main/Signup.templ b/src/org/cacert/gigi/pages/main/Signup.templ index ad0fc131..1702c9d6 100644 --- a/src/org/cacert/gigi/pages/main/Signup.templ +++ b/src/org/cacert/gigi/pages/main/Signup.templ @@ -63,7 +63,7 @@ >
>
- >
+ >
>   -- 2.39.2