]> WPIA git - gigi.git/commitdiff
Convert Pinglog into form.
authorFelix Dörre <felix@dogcraft.de>
Mon, 8 Sep 2014 18:34:54 +0000 (20:34 +0200)
committerFelix Dörre <felix@dogcraft.de>
Mon, 8 Sep 2014 19:32:03 +0000 (21:32 +0200)
src/org/cacert/gigi/pages/account/DomainOverview.java
src/org/cacert/gigi/pages/account/DomainPinglogForm.java [new file with mode: 0644]
src/org/cacert/gigi/pages/account/DomainPinglogForm.templ [moved from src/org/cacert/gigi/pages/account/DomainDetails.templ with 80% similarity]

index 4a2166342b63a19e0f670b77419a9a2b0024beb5..4d5439d01a6c80ebc592f113e50e604263b3f484 100644 (file)
@@ -2,28 +2,20 @@ 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.GigiApiException;
 import org.cacert.gigi.dbObjects.Domain;
-import org.cacert.gigi.dbObjects.Domain.DomainPingExecution;
 import org.cacert.gigi.dbObjects.DomainPingConfiguration;
 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;
 
 public class DomainOverview extends Page {
 
     public static final String PATH = "/account/domains/";
 
-    private Template domainDetails = new Template(DomainOverview.class.getResource("DomainDetails.templ"));
-
     public DomainOverview(String title) {
         super(title);
     }
@@ -40,42 +32,13 @@ public class DomainOverview extends Page {
                 System.out.println(d.getOwner().getId());
                 return;
             }
+            new DomainPinglogForm(req, d).output(resp.getWriter(), getLanguage(req), new HashMap<String, Object>());
             try {
-                final DomainPingExecution[] pings = d.getPings();
-                HashMap<String, Object> vars = new HashMap<>();
-                vars.put("domainname", d.getSuffix());
-                vars.put("pingconfig", new PingconfigForm(req, d));
-                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].getState());
-                        vars.put("type", pings[counter].getType());
-                        vars.put("config", pings[counter].getInfo());
-                        String ping3 = pings[counter].getResult();
-                        if (ping3 == null) {
-                            vars.put("result", "");
-                        } else {
-                            vars.put("result", ping3);
-                        }
-                        DomainPingConfiguration dpc = pings[counter].getConfig();
-                        if (dpc != null) {
-                            vars.put("configId", Integer.toString(dpc.getId()));
-                        }
-                        counter++;
-                        return true;
-                    }
-                });
-                domainDetails.output(resp.getWriter(), getLanguage(req), vars);
-                return;
+                new PingconfigForm(req, d).output(resp.getWriter(), getLanguage(req), new HashMap<String, Object>());
             } catch (GigiApiException e) {
                 e.format(resp.getWriter(), getLanguage(req));
             }
+            return;
 
         }
         try {
@@ -93,6 +56,21 @@ public class DomainOverview extends Page {
 
     @Override
     public void doPost(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()) {
+                return;
+            }
+            int reping = Integer.parseInt(req.getParameter("configId"));
+            DomainPingConfiguration dpc = DomainPingConfiguration.getById(reping);
+            if (dpc.getTarget() != d) {
+                return;
+            }
+            System.out.println("Would now reping: " + dpc.getInfo());
+        }
         if (req.getParameter("adddomain") != null) {
             DomainAddForm f = Form.getForm(req, DomainAddForm.class);
             if (f.submit(resp.getWriter(), req)) {
diff --git a/src/org/cacert/gigi/pages/account/DomainPinglogForm.java b/src/org/cacert/gigi/pages/account/DomainPinglogForm.java
new file mode 100644 (file)
index 0000000..d91eb6d
--- /dev/null
@@ -0,0 +1,71 @@
+package org.cacert.gigi.pages.account;
+
+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.DomainPingConfiguration;
+import org.cacert.gigi.dbObjects.Domain.DomainPingExecution;
+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;
+
+public class DomainPinglogForm extends Form {
+
+    static Template t = new Template(DomainPinglogForm.class.getResource("DomainPinglogForm.templ"));
+
+    Domain target;
+
+    public DomainPinglogForm(HttpServletRequest hsr, Domain target) {
+        super(hsr);
+        this.target = target;
+    }
+
+    @Override
+    public boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException {
+        return false;
+    }
+
+    @Override
+    protected void outputContent(PrintWriter out, Language l, Map<String, Object> vars) {
+        final DomainPingExecution[] pings;
+        try {
+            pings = target.getPings();
+        } catch (GigiApiException e) {
+            e.format(out, l);
+            return;
+        }
+        vars.put("domainname", target.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].getState());
+                vars.put("type", pings[counter].getType());
+                vars.put("config", pings[counter].getInfo());
+                String ping3 = pings[counter].getResult();
+                if (ping3 == null) {
+                    vars.put("result", "");
+                } else {
+                    vars.put("result", ping3);
+                }
+                DomainPingConfiguration dpc = pings[counter].getConfig();
+                if (dpc != null) {
+                    vars.put("configId", Integer.toString(dpc.getId()));
+                }
+                counter++;
+                return true;
+            }
+        });
+        t.output(out, l, vars);
+    }
+}
similarity index 80%
rename from src/org/cacert/gigi/pages/account/DomainDetails.templ
rename to src/org/cacert/gigi/pages/account/DomainPinglogForm.templ
index a07841850cdf51f120bb304dff2aaaf6b587edc2..854f0d1495d6dc0aa1135d4a04c829f48b59cf18 100644 (file)
@@ -11,9 +11,8 @@
 <td><?=$state?></td>
 <td><?=$config?></td>
 <td><?=$result?></td>
-<td><?=$configId?></td>
+<td><button name='configId' value="<?=$configId?>"><?=_Re-execute?></button></td>
 </tr>
 <?}?>
 </table>
 <br/>
-<?=$pingconfig?>
\ No newline at end of file