From 28586bebec4f84296bd6b3dac28cc42aef2c7ec7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Felix=20D=C3=B6rre?= Date: Mon, 8 Sep 2014 20:34:54 +0200 Subject: [PATCH] Convert Pinglog into form. --- .../gigi/pages/account/DomainOverview.java | 58 +++++---------- .../gigi/pages/account/DomainPinglogForm.java | 71 +++++++++++++++++++ ...nDetails.templ => DomainPinglogForm.templ} | 3 +- 3 files changed, 90 insertions(+), 42 deletions(-) create mode 100644 src/org/cacert/gigi/pages/account/DomainPinglogForm.java rename src/org/cacert/gigi/pages/account/{DomainDetails.templ => DomainPinglogForm.templ} (80%) diff --git a/src/org/cacert/gigi/pages/account/DomainOverview.java b/src/org/cacert/gigi/pages/account/DomainOverview.java index 4a216634..4d5439d0 100644 --- a/src/org/cacert/gigi/pages/account/DomainOverview.java +++ b/src/org/cacert/gigi/pages/account/DomainOverview.java @@ -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()); try { - final DomainPingExecution[] pings = d.getPings(); - HashMap 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 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()); } 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 index 00000000..d91eb6d9 --- /dev/null +++ b/src/org/cacert/gigi/pages/account/DomainPinglogForm.java @@ -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 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 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); + } +} diff --git a/src/org/cacert/gigi/pages/account/DomainDetails.templ b/src/org/cacert/gigi/pages/account/DomainPinglogForm.templ similarity index 80% rename from src/org/cacert/gigi/pages/account/DomainDetails.templ rename to src/org/cacert/gigi/pages/account/DomainPinglogForm.templ index a0784185..854f0d14 100644 --- a/src/org/cacert/gigi/pages/account/DomainDetails.templ +++ b/src/org/cacert/gigi/pages/account/DomainPinglogForm.templ @@ -11,9 +11,8 @@ - +
- \ No newline at end of file -- 2.39.2