]> WPIA git - gigi.git/commitdiff
Add mail: relocate actions into form.
authorFelix Dörre <felix@dogcraft.de>
Wed, 23 Jul 2014 09:56:42 +0000 (11:56 +0200)
committerFelix Dörre <felix@dogcraft.de>
Thu, 24 Jul 2014 23:44:31 +0000 (01:44 +0200)
+ Send redirect on successfull form completions.

src/org/cacert/gigi/pages/account/MailAddForm.java
src/org/cacert/gigi/pages/account/MailOverview.java

index 543dff147e7205494fd49d01816d41c9ea3dd3b6..bdbf0a39602be9d109014b9c5541994cd432d8b6 100644 (file)
@@ -5,10 +5,14 @@ import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
 
+import org.cacert.gigi.EmailAddress;
 import org.cacert.gigi.Language;
+import org.cacert.gigi.User;
 import org.cacert.gigi.email.EmailProvider;
 import org.cacert.gigi.output.Form;
 import org.cacert.gigi.output.template.Template;
+import org.cacert.gigi.pages.Page;
+import org.cacert.gigi.util.RandomToken;
 
 public class MailAddForm extends Form {
        private static Template t;
@@ -16,9 +20,11 @@ public class MailAddForm extends Form {
        static {
                t = new Template(ChangePasswordPage.class.getResource("MailAddForm.templ"));
        }
+       User target;
 
-       public MailAddForm(HttpServletRequest hsr) {
+       public MailAddForm(HttpServletRequest hsr, User target) {
                super(hsr);
+               this.target = target;
        }
 
        @Override
@@ -30,13 +36,11 @@ public class MailAddForm extends Form {
                        return false;
                }
                mail = formMail;
+               EmailAddress addr = new EmailAddress(mail, target, RandomToken.generateToken(16));
+               addr.insert(Page.getLanguage(req));
                return true;
        }
 
-       public String getMail() {
-               return mail;
-       }
-
        @Override
        protected void outputContent(PrintWriter out, Language l, Map<String, Object> vars) {
                t.output(out, l, vars);
index 15be75c4d594e5cf0357b9cf0f04b129a71d7f22..c9956bee3dd4a394a018a398e52552edfcc04030 100644 (file)
@@ -11,7 +11,6 @@ import java.util.Map;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.cacert.gigi.EmailAddress;
 import org.cacert.gigi.Language;
 import org.cacert.gigi.User;
 import org.cacert.gigi.database.DatabaseConnection;
@@ -19,7 +18,6 @@ import org.cacert.gigi.output.Form;
 import org.cacert.gigi.output.Outputable;
 import org.cacert.gigi.pages.LoginPage;
 import org.cacert.gigi.pages.Page;
-import org.cacert.gigi.util.RandomToken;
 
 public class MailOverview extends Page {
        public static final String DEFAULT_PATH = "/account/mails";
@@ -44,7 +42,7 @@ public class MailOverview extends Page {
                        vars.put("mailData", t);
                        vars.put("res", rs);
                        vars.put("us", us.getEmail());
-                       vars.put("addForm", new MailAddForm(req));
+                       vars.put("addForm", new MailAddForm(req, us));
                        vars.put("manForm", new MailManagementForm(req));
                        getDefaultTemplate().output(resp.getWriter(), lang, vars);
                } catch (SQLException e) {
@@ -59,8 +57,7 @@ public class MailOverview extends Page {
                if (req.getParameter("addmail") != null) {
                        MailAddForm f = Form.getForm(req, MailAddForm.class);
                        if (f.submit(out, req)) {
-                               EmailAddress addr = new EmailAddress(f.getMail(), us, RandomToken.generateToken(16));
-                               addr.insert(Page.getLanguage(req));
+                               resp.sendRedirect(MailOverview.DEFAULT_PATH);
                        }
                } else if (req.getParameter("makedefault") != null || req.getParameter("delete") != null) {
                        System.out.println("MakeDefault/Delete");