1 package org.cacert.gigi.pages.account;
3 import java.io.IOException;
4 import java.util.HashMap;
7 import javax.servlet.http.HttpServletRequest;
8 import javax.servlet.http.HttpServletResponse;
10 import org.cacert.gigi.GigiApiException;
11 import org.cacert.gigi.dbObjects.Domain;
12 import org.cacert.gigi.dbObjects.Domain.DomainPingExecution;
13 import org.cacert.gigi.dbObjects.DomainPingConfiguration;
14 import org.cacert.gigi.dbObjects.User;
15 import org.cacert.gigi.localisation.Language;
16 import org.cacert.gigi.output.Form;
17 import org.cacert.gigi.output.template.IterableDataset;
18 import org.cacert.gigi.output.template.Template;
19 import org.cacert.gigi.pages.Page;
21 public class DomainOverview extends Page {
23 public static final String PATH = "/account/domains/";
25 private Template domainDetails = new Template(DomainOverview.class.getResource("DomainDetails.templ"));
27 public DomainOverview(String title) {
32 public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
33 User u = getUser(req);
34 String pi = req.getPathInfo();
35 if (pi.length() - PATH.length() > 0) {
36 int i = Integer.parseInt(pi.substring(PATH.length()));
37 Domain d = Domain.getById(i);
38 if (u.getId() != d.getOwner().getId()) {
39 System.out.println(u.getId());
40 System.out.println(d.getOwner().getId());
44 final DomainPingExecution[] pings = d.getPings();
45 HashMap<String, Object> vars = new HashMap<>();
46 vars.put("domainname", d.getSuffix());
47 vars.put("pingconfig", new PingconfigForm(req, d));
48 vars.put("pings", new IterableDataset() {
53 public boolean next(Language l, Map<String, Object> vars) {
54 if (counter >= pings.length) {
57 vars.put("state", pings[counter].getState());
58 vars.put("type", pings[counter].getType());
59 vars.put("config", pings[counter].getInfo());
60 String ping3 = pings[counter].getResult();
62 vars.put("result", "");
64 vars.put("result", ping3);
66 DomainPingConfiguration dpc = pings[counter].getConfig();
68 vars.put("configId", Integer.toString(dpc.getId()));
74 domainDetails.output(resp.getWriter(), getLanguage(req), vars);
76 } catch (GigiApiException e) {
77 e.format(resp.getWriter(), getLanguage(req));
82 DomainManagementForm domMan = new DomainManagementForm(req, u);
83 DomainAddForm domAdd = new DomainAddForm(req, u);
84 HashMap<String, Object> vars = new HashMap<>();
85 vars.put("doms", u.getDomains());
86 vars.put("domainman", domMan);
87 vars.put("domainadd", domAdd);
88 getDefaultTemplate().output(resp.getWriter(), getLanguage(req), vars);
89 } catch (GigiApiException e) {
90 e.format(resp.getWriter(), getLanguage(req));
95 public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
96 if (req.getParameter("adddomain") != null) {
97 DomainAddForm f = Form.getForm(req, DomainAddForm.class);
98 if (f.submit(resp.getWriter(), req)) {
99 resp.sendRedirect(PATH);
101 } else if (req.getParameter("domdel") != null) {
102 DomainManagementForm f = Form.getForm(req, DomainManagementForm.class);
103 if (f.submit(resp.getWriter(), req)) {
104 resp.sendRedirect(PATH);
107 super.doPost(req, resp);