X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Faccount%2FMailManagementForm.java;h=204bb927a46a3db8ae4b783511fb8ef968ae6245;hb=4b95fefc02c3c9f4a1b1f1ff3f3a09715e0a6453;hp=9dc6c8daf3392d2ef2a2656a90509b66d37bca52;hpb=2233a655b4ef4c1122a406e83a0e6334b9fd49b6;p=gigi.git
diff --git a/src/org/cacert/gigi/pages/account/MailManagementForm.java b/src/org/cacert/gigi/pages/account/MailManagementForm.java
index 9dc6c8da..204bb927 100644
--- a/src/org/cacert/gigi/pages/account/MailManagementForm.java
+++ b/src/org/cacert/gigi/pages/account/MailManagementForm.java
@@ -6,62 +6,99 @@ import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.cacert.gigi.EmailAddress;
-import org.cacert.gigi.Language;
+import org.cacert.gigi.GigiApiException;
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 (Exception e) {
- out.println("
Error precessing your request.
");
- 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 (Exception e) {
- out.println("Error precessing your request.
");
- 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);
+ }
}