]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/account/DomainOverview.java
ADD: output pinglog, test DNS and email ping.
[gigi.git] / src / org / cacert / gigi / pages / account / DomainOverview.java
index 4b298f87e5db08dbc2497277d3f9808291664f76..d8868f93817178023661515cec0879012785a39b 100644 (file)
@@ -2,17 +2,25 @@ package org.cacert.gigi.pages.account;
 
 import java.io.IOException;
 import java.util.HashMap;
+import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.cacert.gigi.Domain;
+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 DomainOverview extends Page {
 
-    public static final String PATH = "/account/domains";
+    public static final String PATH = "/account/domains/";
+
+    private Template domainDetails = new Template(DomainOverview.class.getResource("DomainDetails.templ"));
 
     public DomainOverview(String title) {
         super(title);
@@ -21,6 +29,48 @@ public class DomainOverview extends Page {
     @Override
     public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
         User u = getUser(req);
+        String pi = req.getPathInfo();
+        if (pi.length() - PATH.length() > 0) {
+            int i = Integer.parseInt(pi.substring(PATH.length()));
+            Domain d = Domain.getById(i);
+            if (u.getId() != d.getOwner().getId()) {
+                System.out.println(u.getId());
+                System.out.println(d.getOwner().getId());
+                return;
+            }
+            try {
+                final String[][] pings = d.getPings();
+                HashMap<String, Object> vars = new HashMap<>();
+                vars.put("domainname", d.getSuffix());
+                vars.put("pings", new IterableDataset() {
+
+                    int counter = 0;
+
+                    @Override
+                    public boolean next(Language l, Map<String, Object> vars) {
+                        if (counter >= pings.length) {
+                            return false;
+                        }
+                        vars.put("state", pings[counter][0]);
+                        vars.put("type", pings[counter][1]);
+                        vars.put("config", pings[counter][2]);
+                        String ping3 = pings[counter][3];
+                        if (ping3 == null) {
+                            vars.put("result", "");
+                        } else {
+                            vars.put("result", ping3);
+                        }
+                        counter++;
+                        return true;
+                    }
+                });
+                domainDetails.output(resp.getWriter(), getLanguage(req), vars);
+                return;
+            } catch (GigiApiException e) {
+                e.format(resp.getWriter(), getLanguage(req));
+            }
+
+        }
         DomainManagementForm domMan = new DomainManagementForm(req, u);
         DomainAddForm domAdd = new DomainAddForm(req, u);
         HashMap<String, Object> vars = new HashMap<>();