1 package org.cacert.gigi.pages.account.mail;
3 import java.io.PrintWriter;
6 import javax.servlet.http.HttpServletRequest;
8 import org.cacert.gigi.GigiApiException;
9 import org.cacert.gigi.dbObjects.EmailAddress;
10 import org.cacert.gigi.dbObjects.User;
11 import org.cacert.gigi.localisation.Language;
12 import org.cacert.gigi.output.Form;
13 import org.cacert.gigi.output.template.IterableDataset;
14 import org.cacert.gigi.output.template.Template;
15 import org.cacert.gigi.pages.Page;
16 import org.cacert.gigi.pages.account.ChangePasswordPage;
18 public class MailManagementForm extends Form {
20 private static Template t;
24 t = new Template(ChangePasswordPage.class.getResource("MailManagementForm.templ"));
27 public MailManagementForm(HttpServletRequest hsr, User target) {
33 public boolean submit(PrintWriter out, HttpServletRequest req) {
34 if (req.getParameter("makedefault") != null) {
36 String mailid = req.getParameter("emailid");
40 target.updateDefaultEmail(EmailAddress.getById(Integer.parseInt(mailid.trim())));
41 } catch (GigiApiException e) {
42 e.format(out, Page.getLanguage(req));
47 if (req.getParameter("delete") != null) {
48 String[] toDel = req.getParameterValues("delid[]");
52 for (int i = 0; i < toDel.length; i++) {
54 target.deleteEmail(EmailAddress.getById(Integer.parseInt(toDel[i].trim())));
55 } catch (GigiApiException e) {
56 e.format(out, Page.getLanguage(req));
67 protected void outputContent(PrintWriter out, Language l, Map<String, Object> vars) {
68 final EmailAddress[] emails = target.getEmails();
69 IterableDataset ds = new IterableDataset() {
71 private int point = 0;
74 public boolean next(Language l, Map<String, Object> vars) {
75 if (point >= emails.length) {
78 EmailAddress emailAddress = emails[point];
79 int mailID = emailAddress.getId();
80 vars.put("id", mailID);
81 if (emailAddress.getAddress().equals(target.getEmail())) {
82 vars.put("checked", "checked");
84 vars.put("checked", "");
86 if (emailAddress.isVerified()) {
87 vars.put("verification", "Verified");
89 vars.put("verification", "Unverified");
91 if (target.getEmail().equals(emailAddress.getAddress())) {
92 vars.put("delete", "N/A");
94 vars.put("delete", "<input type=\"checkbox\" name=\"delid[]\" value=\"" + mailID + "\"/>");
96 vars.put("address", emailAddress.getAddress());
102 vars.put("emails", ds);
103 t.output(out, l, vars);