X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Faccount%2FMailManagementForm.java;h=204bb927a46a3db8ae4b783511fb8ef968ae6245;hb=6457124fbfc81ab82fb0e8a533ad930d991dbf64;hp=3e82bd2ac45cb526393155f0ceb916cff51eeb86;hpb=c46ca585e6ef98bff9a018e85e9e0202353cbe85;p=gigi.git diff --git a/src/org/cacert/gigi/pages/account/MailManagementForm.java b/src/org/cacert/gigi/pages/account/MailManagementForm.java index 3e82bd2a..204bb927 100644 --- a/src/org/cacert/gigi/pages/account/MailManagementForm.java +++ b/src/org/cacert/gigi/pages/account/MailManagementForm.java @@ -7,61 +7,98 @@ 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.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)); - 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; + 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); + } }