]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/account/mail/MailManagementForm.java
upd: fix bootstrap buttons
[gigi.git] / src / org / cacert / gigi / pages / account / mail / MailManagementForm.java
index c8245026d8d6b8a0e47f0251e497318f758de6ab..cbf143976ac6a7bdecf14ad8de9116fb30252ea3 100644 (file)
@@ -1,5 +1,6 @@
 package org.cacert.gigi.pages.account.mail;
 
+import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.Map;
 
@@ -30,36 +31,23 @@ public class MailManagementForm extends Form {
 
     @Override
     public boolean submit(PrintWriter out, HttpServletRequest req) {
-        if (req.getParameter("makedefault") != null) {
-            try {
-                String mailid = req.getParameter("emailid");
-                if (mailid == null) {
-                    return false;
-                }
-                target.updateDefaultEmail(EmailAddress.getById(Integer.parseInt(mailid.trim())));
-            } catch (GigiApiException e) {
-                e.format(out, Page.getLanguage(req));
-                return false;
-            }
-            return true;
-        }
-        if (req.getParameter("delete") != null) {
-            String[] toDel = req.getParameterValues("delid[]");
-            if (toDel == null) {
-                return false;
+        try {
+            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));
             }
-            for (int i = 0; i < toDel.length; i++) {
-                try {
-                    target.deleteEmail(EmailAddress.getById(Integer.parseInt(toDel[i].trim())));
-                } catch (GigiApiException e) {
-                    e.format(out, Page.getLanguage(req));
-                    return false;
-                }
-            }
-            return true;
-
+        } catch (GigiApiException e) {
+            e.format(out, Page.getLanguage(req));
+            return false;
+        } catch (IOException e1) {
+            new GigiApiException("Error while doing reping.").format(out, Page.getLanguage(req));
+            return false;
         }
-        return false;
+        return true;
     }
 
     @Override
@@ -78,15 +66,21 @@ public class MailManagementForm extends Form {
                 int mailID = emailAddress.getId();
                 vars.put("id", mailID);
                 if (emailAddress.getAddress().equals(target.getEmail())) {
-                    vars.put("checked", "checked");
+                    vars.put("default", " disabled");
+                    vars.put("deletable", " disabled");
                 } else {
-                    vars.put("checked", "");
+                    vars.put("deletable", "");
+                    vars.put("default", "");
                 }
                 if (emailAddress.isVerified()) {
-                    vars.put("verification", "Verified");
+                    vars.put("verification", l.getTranslation("Verified"));
                 } else {
-                    vars.put("verification", "Unverified");
+                    // only verified emails may become the default email
+                    // address.
+                    vars.put("default", " disabled");
+                    vars.put("verification", l.getTranslation("Unverified"));
                 }
+                vars.put("last_verification", emailAddress.getLastPing(true));
                 if (target.getEmail().equals(emailAddress.getAddress())) {
                     vars.put("delete", "N/A");
                 } else {