X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Faccount%2FMailManagementForm.java;h=1bee5d2327ae7e2523d8f479d0bd9187a8fa65c8;hp=a36189ea2762999b39eaa9104076a894520ee206;hb=e409ba881965634f63f0b67824bc93dda4ec4327;hpb=3597cc66589155b9ab8122f5d0e8c28c28fb8b81 diff --git a/src/org/cacert/gigi/pages/account/MailManagementForm.java b/src/org/cacert/gigi/pages/account/MailManagementForm.java index a36189ea..1bee5d23 100644 --- a/src/org/cacert/gigi/pages/account/MailManagementForm.java +++ b/src/org/cacert/gigi/pages/account/MailManagementForm.java @@ -5,65 +5,100 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; -import org.cacert.gigi.EmailAddress; import org.cacert.gigi.GigiApiException; -import org.cacert.gigi.Language; -import org.cacert.gigi.User; +import org.cacert.gigi.dbObjects.EmailAddress; +import org.cacert.gigi.dbObjects.User; +import org.cacert.gigi.localisation.Language; 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; public class MailManagementForm extends Form { - private static Template t; - private User target; - static { - t = new Template(ChangePasswordPage.class.getResource("MailManagementForm.templ")); - } - public MailManagementForm(HttpServletRequest hsr, User target) { - super(hsr); - this.target = target; - } + private static Template t; - @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)); - e.printStackTrace(); - return false; - } - return true; - } - if (req.getParameter("delete") != null) { - String[] toDel = req.getParameterValues("delid[]"); - if (toDel == null) { - return false; - } - 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)); - e.printStackTrace(); - return false; - } - } - return true; + private User target; + static { + t = new Template(ChangePasswordPage.class.getResource("MailManagementForm.templ")); + } - } - return false; - } + public MailManagementForm(HttpServletRequest hsr, User target) { + super(hsr); + this.target = target; + } - @Override - protected void outputContent(PrintWriter out, Language l, Map vars) { - t.output(out, l, vars); - } + @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; + } + 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; + } + return false; + } + + @Override + protected void outputContent(PrintWriter out, Language l, Map vars) { + final EmailAddress[] emails = target.getEmails(); + IterableDataset ds = new IterableDataset() { + + private int point = 0; + + @Override + public boolean next(Language l, Map 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", ""); + } + vars.put("address", emailAddress.getAddress()); + point++; + return true; + } + + }; + vars.put("emails", ds); + t.output(out, l, vars); + } }