]> WPIA git - gigi.git/commitdiff
UPD: Use new template features in mailmanagement
authorJanis Streib <janis@dogcraft.de>
Wed, 30 Jul 2014 00:03:41 +0000 (02:03 +0200)
committerJanis Streib <janis@dogcraft.de>
Wed, 30 Jul 2014 00:03:41 +0000 (02:03 +0200)
src/org/cacert/gigi/pages/account/MailManagementForm.java
src/org/cacert/gigi/pages/account/MailManagementForm.templ
src/org/cacert/gigi/pages/account/MailOverview.java

index ffadc63ffd1b89d87596a8f0108f846398cd61ba..354f6d33a1ef6118ed673b6600fed9dc442aedbb 100644 (file)
@@ -10,6 +10,7 @@ import org.cacert.gigi.GigiApiException;
 import org.cacert.gigi.Language;
 import org.cacert.gigi.User;
 import org.cacert.gigi.output.Form;
+import org.cacert.gigi.output.template.IterableDataset;
 import org.cacert.gigi.output.template.Template;
 import org.cacert.gigi.pages.Page;
 
@@ -63,7 +64,41 @@ public class MailManagementForm extends Form {
 
     @Override
     protected void outputContent(PrintWriter out, Language l, Map<String, Object> vars) {
+        final EmailAddress[] emails = (EmailAddress[]) vars.get("mils");
+        IterableDataset ds = new IterableDataset() {
+
+            private int point = 0;
+
+            @Override
+            public boolean next(Language l, Map<String, Object> vars) {
+                if (point >= emails.length) {
+                    return false;
+                }
+                EmailAddress emailAddress = emails[point];
+                int mailID = emailAddress.getId();
+                vars.put("id", mailID);
+                if (emailAddress.getAddress().equals(target.getEmail())) {
+                    vars.put("checked", "checked");
+                } else {
+                    vars.put("checked", "");
+                }
+                if (emailAddress.isVerified()) {
+                    vars.put("verification", "Verified");
+                } else {
+                    vars.put("verification", "Unverified");
+                }
+                if (target.getEmail().equals(emailAddress.getAddress())) {
+                    vars.put("delete", "N/A");
+                } else {
+                    vars.put("delete", "<input type=\"checkbox\" name=\"delid[]\" value=\"" + mailID + "\"/>");
+                }
+                vars.put("address", emailAddress.getAddress());
+                point++;
+                return true;
+            }
+
+        };
+        vars.put("emails", ds);
         t.output(out, l, vars);
     }
-
 }
index 37338eb4e4e3cda8cf83108df0d05a56e00ed361..35d442272ca0ed08811b2a9555e69f44f769d8c6 100644 (file)
     <td><?=_Delete?></td>
     <td><?=_Address?></td>
   </tr>
- <?=$mailData?>
+ <? foreach($emails) {?>
+       <tr>
+               <td><input type="radio" name="emailid" value="<?=$id?>" <?=$checked?>></td>
+               <td><?=$verification?></td>
+               <td><?=$delete?></td>
+               <td><?=$address?></td>
+       </tr>
+ <? } ?>
   <tr>
     <td colspan="2"><input type="submit" name="makedefault" value="Setze als Standard"></td>
     <td colspan="2"><input type="submit" name="delete" value="Löschen"></td>
index 7836867877245228addd832185487ee72d55c748..81c5b9cb80815452a2a0d158bd2961bda9b138fe 100644 (file)
@@ -3,27 +3,21 @@ package org.cacert.gigi.pages.account;
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.HashMap;
-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.output.Form;
-import org.cacert.gigi.output.Outputable;
 import org.cacert.gigi.pages.Page;
 
 public class MailOverview extends Page {
 
     public static final String DEFAULT_PATH = "/account/mails";
 
-    private MailTable t;
-
     public MailOverview(String title) {
         super(title);
-        t = new MailTable("us");
     }
 
     @Override
@@ -31,10 +25,9 @@ public class MailOverview extends Page {
         final User us = getUser(req);
         Language lang = Page.getLanguage(req);
         HashMap<String, Object> vars = new HashMap<>();
-        vars.put("mailData", t);
-        vars.put("us", us);
         vars.put("addForm", new MailAddForm(req, us));
         vars.put("manForm", new MailManagementForm(req, us));
+        vars.put("mils", us.getEmails());
         getDefaultTemplate().output(resp.getWriter(), lang, vars);
     }
 
@@ -55,52 +48,4 @@ public class MailOverview extends Page {
         super.doPost(req, resp);
     }
 
-    private class MailTable implements Outputable {
-
-        private String user;
-
-        public MailTable(String user) {
-            this.user = user;
-        }
-
-        @Override
-        public void output(PrintWriter out, Language l, Map<String, Object> vars) {
-            User us = (User) vars.get(user);
-            String usM = us.getEmail();
-            EmailAddress[] emails = us.getEmails();
-
-            for (int i = 0; i < emails.length; i++) {
-                out.println("<tr>");
-                out.println("<td><input type=\"radio\" name=\"emailid\" value=\"");
-                int mailID = emails[i].getId();
-                out.print(mailID);
-                out.print("\" ");
-                if (emails[i].getAddress().equals(us.getEmail())) {
-                    out.print("checked=\"yes\"");
-                }
-                out.print("/></td>");
-                out.println("<td>");
-                if (emails[i].isVerified()) {
-                    out.print(l.getTranslation("Verified"));
-                } else {
-                    out.print(l.getTranslation("Unverified"));
-                }
-                out.print("</td>");
-                out.println("<td>");
-                String address = emails[i].getAddress();
-                if (usM.equals(address)) {
-                    out.print(l.getTranslation("N/A"));
-                } else {
-                    out.print("<input type=\"checkbox\" name=\"delid[]\" value=\"");
-                    out.print(mailID);
-                    out.print("\"/>");
-                }
-                out.print("</td>");
-                out.println("<td>");
-                out.print(address);
-                out.print("</td>");
-                out.println("</tr>");
-            }
-        }
-    }
 }