]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/account/mail/MailManagementForm.java
Add a hint what the "Request reping" is used for on the email page
[gigi.git] / src / org / cacert / gigi / pages / account / mail / MailManagementForm.java
index 04ed69d2258d808736936b5db29dc225662f74e0..5d0ce7ec7e8f06c5d09466a859ffc94d7b321635 100644 (file)
@@ -3,7 +3,6 @@ package org.cacert.gigi.pages.account.mail;
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.Map;
-import java.util.Map.Entry;
 
 import javax.servlet.http.HttpServletRequest;
 
@@ -15,15 +14,13 @@ import org.cacert.gigi.output.template.Form;
 import org.cacert.gigi.output.template.IterableDataset;
 import org.cacert.gigi.output.template.Template;
 import org.cacert.gigi.pages.Page;
+import org.cacert.gigi.util.TimeConditions;
 
 public class MailManagementForm extends Form {
 
-    private static Template t;
+    private static final Template t = new Template(MailAddForm.class.getResource("MailManagementForm.templ"));
 
     private User target;
-    static {
-        t = new Template(MailAddForm.class.getResource("MailManagementForm.templ"));
-    }
 
     public MailManagementForm(HttpServletRequest hsr, User target) {
         super(hsr);
@@ -31,30 +28,20 @@ public class MailManagementForm extends Form {
     }
 
     @Override
-    public boolean submit(PrintWriter out, HttpServletRequest req) {
-        Map<String, String[]> map = req.getParameterMap();
+    public SubmissionResult submit(HttpServletRequest req) throws GigiApiException {
         try {
-            for (Entry<String, String[]> e : map.entrySet()) {
-                String k = e.getKey();
-                String[] p = k.split(":", 2);
-                if (p[0].equals("default")) {
-                    target.updateDefaultEmail(EmailAddress.getById(Integer.parseInt(p[1])));
-                }
-                if (p[0].equals("delete")) {
-                    target.deleteEmail(EmailAddress.getById(Integer.parseInt(p[1])));
-                }
-                if (p[0].equals("reping")) {
-                    EmailAddress.getById(Integer.parseInt(p[1])).requestReping(Page.getLanguage(req));
-                }
+            String d;
+            if ((d = req.getParameter("default")) != null) {
+                target.updateDefaultEmail(EmailAddress.getById(Integer.parseInt(d)));
+            } else if ((d = req.getParameter("delete")) != null) {
+                target.deleteEmail(EmailAddress.getById(Integer.parseInt(d)));
+            } else if ((d = req.getParameter("reping")) != null) {
+                EmailAddress.getById(Integer.parseInt(d)).requestReping(Page.getLanguage(req));
             }
-        } catch (GigiApiException e) {
-            e.format(out, Page.getLanguage(req));
-            return false;
+            return new RedirectResult(MailOverview.DEFAULT_PATH);
         } catch (IOException e1) {
-            new GigiApiException("Error while doing reping.").format(out, Page.getLanguage(req));
-            return false;
+            throw new GigiApiException("Error while doing reping.");
         }
-        return true;
     }
 
     @Override
@@ -100,6 +87,7 @@ public class MailManagementForm extends Form {
 
         };
         vars.put("emails", ds);
+        vars.put("maxMonth", TimeConditions.getInstance().getEmailPingMonths());
         t.output(out, l, vars);
     }
 }