]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/account/domain/DomainManagementForm.java
Move email/certs/mail to their own packages
[gigi.git] / src / org / cacert / gigi / pages / account / domain / DomainManagementForm.java
diff --git a/src/org/cacert/gigi/pages/account/domain/DomainManagementForm.java b/src/org/cacert/gigi/pages/account/domain/DomainManagementForm.java
new file mode 100644 (file)
index 0000000..6965382
--- /dev/null
@@ -0,0 +1,74 @@
+package org.cacert.gigi.pages.account.domain;
+
+import java.io.PrintWriter;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.cacert.gigi.GigiApiException;
+import org.cacert.gigi.dbObjects.Domain;
+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;
+import org.cacert.gigi.util.ServerConstants;
+
+public class DomainManagementForm extends Form {
+
+    private static final Template t = new Template(DomainManagementForm.class.getResource("DomainManagementForm.templ"));
+
+    private User target;
+
+    public DomainManagementForm(HttpServletRequest hsr, User target) {
+        super(hsr);
+        this.target = target;
+    }
+
+    @Override
+    public boolean submit(PrintWriter out, HttpServletRequest req) {
+        try {
+            String[] dels = req.getParameterValues("delid[]");
+            Domain[] usDomains = target.getDomains();
+            for (int i = 0; i < dels.length; i++) {
+                int delId = Integer.parseInt(dels[i]);
+                for (int j = 0; j < usDomains.length; j++) {
+                    if (usDomains[j].getId() == delId) {
+                        usDomains[j].delete();
+                        break;
+                    }
+                }
+            }
+        } catch (GigiApiException e) {
+            e.format(out, Page.getLanguage(req));
+            return false;
+        }
+        return true;
+    }
+
+    @Override
+    protected void outputContent(PrintWriter out, Language l, Map<String, Object> vars) {
+        final Domain[] doms = (Domain[]) vars.get("doms");
+        IterableDataset dts = new IterableDataset() {
+
+            private int point = 0;
+
+            @Override
+            public boolean next(Language l, Map<String, Object> vars) {
+                if (point >= doms.length) {
+                    return false;
+                }
+                Domain domain = doms[point];
+                vars.put("id", domain.getId());
+                vars.put("domainhref", "https://" + ServerConstants.getWwwHostNamePortSecure() + DomainOverview.PATH + domain.getId());
+                vars.put("domain", domain.getSuffix());
+                vars.put("status", l.getTranslation(domain.isVerified() ? "verified" : "not verified"));
+                point++;
+                return true;
+            }
+        };
+        vars.put("domains", dts);
+        t.output(out, l, vars);
+    }
+}