1 package club.wpia.gigi.pages.account.domain;
3 import java.io.PrintWriter;
6 import javax.servlet.http.HttpServletRequest;
8 import club.wpia.gigi.GigiApiException;
9 import club.wpia.gigi.dbObjects.CertificateOwner;
10 import club.wpia.gigi.dbObjects.Domain;
11 import club.wpia.gigi.dbObjects.DomainPingConfiguration;
12 import club.wpia.gigi.dbObjects.DomainPingExecution;
13 import club.wpia.gigi.localisation.Language;
14 import club.wpia.gigi.output.template.Form;
15 import club.wpia.gigi.output.template.IterableDataset;
16 import club.wpia.gigi.output.template.Template;
17 import club.wpia.gigi.pages.LoginPage;
19 public class DomainPinglogForm extends Form {
21 private static final Template t = new Template(DomainPinglogForm.class.getResource("DomainPinglogForm.templ"));
25 public DomainPinglogForm(HttpServletRequest hsr, Domain target) {
31 public SubmissionResult submit(HttpServletRequest req) throws GigiApiException {
32 CertificateOwner u = LoginPage.getAuthorizationContext(req).getTarget();
34 int i = Integer.parseInt(req.getPathInfo().substring(DomainOverview.PATH.length() + 1));
35 Domain d = Domain.getById(i);
36 if (u.getId() != d.getOwner().getId()) {
37 throw new GigiApiException("Error, owner mismatch.");
39 int reping = Integer.parseInt(req.getParameter("configId"));
40 DomainPingConfiguration dpc = DomainPingConfiguration.getById(reping);
41 if (dpc.getTarget() != d) {
42 throw new GigiApiException("Error, target mismatch.");
45 return new RedirectResult(req.getPathInfo());
49 protected void outputContent(PrintWriter out, Language l, Map<String, Object> vars) {
50 final DomainPingExecution[] pings;
52 pings = target.getPings();
53 } catch (GigiApiException e) {
54 e.format(out, l, vars);
57 vars.put("domainname", target.getSuffix());
58 vars.put("pings", new IterableDataset() {
63 public boolean next(Language l, Map<String, Object> vars) {
64 if (counter >= pings.length) {
67 vars.put("state", pings[counter].getState().getDBName());
68 vars.put("type", pings[counter].getType());
69 vars.put("config", pings[counter].getInfo());
70 vars.put("date", pings[counter].getDate());
71 String ping3 = pings[counter].getResult();
73 vars.put("result", "");
75 vars.put("result", ping3);
77 DomainPingConfiguration dpc = pings[counter].getConfig();
79 vars.put("configId", Integer.toString(dpc.getId()));
85 t.output(out, l, vars);