X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Faccount%2FMailManagementForm.java;h=41900314659b9ff0eeeacd6b2ac6d5468b4e7903;hb=08272720ef1269b00362635d73a9bab3490ef351;hp=0eaa16cbb25c3b430dbbf5a1c5a4159f81e4e607;hpb=609e22be92cd549a41eaac0eaf37079f08001a24;p=gigi.git diff --git a/src/org/cacert/gigi/pages/account/MailManagementForm.java b/src/org/cacert/gigi/pages/account/MailManagementForm.java index 0eaa16cb..41900314 100644 --- a/src/org/cacert/gigi/pages/account/MailManagementForm.java +++ b/src/org/cacert/gigi/pages/account/MailManagementForm.java @@ -5,28 +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.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; - static { - t = new Template(ChangePasswordPage.class.getResource("MailManagementForm.templ")); - } - public MailManagementForm(HttpServletRequest hsr) { - super(hsr); - } + private static Template t; - @Override - public boolean submit(PrintWriter out, HttpServletRequest req) { - return false; - } + private User target; + static { + t = new Template(ChangePasswordPage.class.getResource("MailManagementForm.templ")); + } - @Override - protected void outputContent(PrintWriter out, Language l, Map vars) { - t.output(out, l, vars); - } + public MailManagementForm(HttpServletRequest hsr, User target) { + super(hsr); + this.target = target; + } + @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); + } }