]> WPIA git - gigi.git/commitdiff
Make AssuranceForm a session-bound form
authorFelix Dörre <felix@dogcraft.de>
Thu, 26 Jun 2014 20:52:35 +0000 (22:52 +0200)
committerFelix Dörre <felix@dogcraft.de>
Fri, 27 Jun 2014 13:04:46 +0000 (15:04 +0200)
src/org/cacert/gigi/pages/wot/AssuranceForm.java
src/org/cacert/gigi/pages/wot/AssurePage.java

index 9f8739566d135c7fa6b4652add15bb33f1124820..5240fc4cd86187cf39c6740524a8b01119627c04 100644 (file)
@@ -5,12 +5,14 @@ import java.io.PrintWriter;
 import java.util.HashMap;
 import java.util.Map;
 
+import javax.servlet.http.HttpServletRequest;
+
 import org.cacert.gigi.Language;
 import org.cacert.gigi.User;
-import org.cacert.gigi.output.Outputable;
+import org.cacert.gigi.output.Form;
 import org.cacert.gigi.output.Template;
 
-public class AssuranceForm implements Outputable {
+public class AssuranceForm extends Form {
        User assuree;
        static final Template templ;
        static {
@@ -29,4 +31,13 @@ public class AssuranceForm implements Outputable {
                res.put("name", assuree.getName());
                templ.output(out, l, res);
        }
+
+       @Override
+       public boolean submit(PrintWriter out, HttpServletRequest req) {
+               if (!"1".equals(req.getAttribute("certify"))) {
+                       // s
+
+               }
+               return false;
+       }
 }
index 6bdae95114864ec0978dd3feed2cd61687af37e0..1ff8410c1b06eae6a5dc32989d06866cb1b1fc02 100644 (file)
@@ -10,6 +10,7 @@ import java.util.HashMap;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
 
 import org.cacert.gigi.User;
 import org.cacert.gigi.database.DatabaseConnection;
@@ -20,6 +21,7 @@ import org.cacert.gigi.pages.Page;
 
 public class AssurePage extends Page {
        public static final String PATH = "/wot/assure/*";
+       public static final String SESSION = "/wot/assure/FORM";
        DateSelector ds = new DateSelector("day", "month", "year");
        Template t;
 
@@ -32,8 +34,8 @@ public class AssurePage extends Page {
        @Override
        public void doGet(HttpServletRequest req, HttpServletResponse resp)
                        throws IOException {
-               PrintWriter out = resp.getWriter();
 
+               PrintWriter out = resp.getWriter();
                String pi = req.getPathInfo().substring(PATH.length() - 2);
                if (pi.length() > 1) {
                        User myself = LoginPage.getUser(req);
@@ -43,8 +45,14 @@ public class AssurePage extends Page {
                                return;
                        }
 
-                       new AssuranceForm(mid).output(out, getLanguage(req),
-                                       new HashMap<String, Object>());;
+                       HttpSession hs = req.getSession();
+                       AssuranceForm form = (AssuranceForm) hs.getAttribute(SESSION);
+                       if (form == null || form.assuree.getId() != mid) {
+                               form = new AssuranceForm(mid);
+                               hs.setAttribute(SESSION, form);
+                       }
+
+                       form.output(out, getLanguage(req), new HashMap<String, Object>());;
                } else {
                        HashMap<String, Object> vars = new HashMap<String, Object>();
                        vars.put("DoB", ds);
@@ -55,6 +63,18 @@ public class AssurePage extends Page {
        public void doPost(HttpServletRequest req, HttpServletResponse resp)
                        throws IOException {
                PrintWriter out = resp.getWriter();
+               String pi = req.getPathInfo().substring(PATH.length() - 2);
+               if (pi.length() > 1) {
+                       AssuranceForm form = (AssuranceForm) req.getSession().getAttribute(
+                                       SESSION);
+                       if (form == null) {
+                               out.println("No form found. This is an Error. Fill in the form again.");
+                       }
+                       form.submit(out, req);
+
+                       return;
+               }
+
                System.out.println("searching for");
                try {
                        PreparedStatement ps = DatabaseConnection.getInstance().prepare(