]> WPIA git - gigi.git/blob - src/club/wpia/gigi/pages/account/domain/DomainManagementForm.java
95fce624c6bdd48c27a85fa134137308b5106978
[gigi.git] / src / club / wpia / gigi / pages / account / domain / DomainManagementForm.java
1 package club.wpia.gigi.pages.account.domain;
2
3 import java.io.PrintWriter;
4 import java.util.Map;
5
6 import javax.servlet.http.HttpServletRequest;
7
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.localisation.Language;
12 import club.wpia.gigi.output.template.Form;
13 import club.wpia.gigi.output.template.IterableDataset;
14 import club.wpia.gigi.output.template.Template;
15 import club.wpia.gigi.pages.orga.ViewOrgPage;
16
17 public class DomainManagementForm extends Form {
18
19     private static final Template t = new Template(DomainManagementForm.class.getResource("DomainManagementForm.templ"));
20
21     private CertificateOwner target;
22
23     private boolean foreign;
24
25     public DomainManagementForm(HttpServletRequest hsr, CertificateOwner target, boolean foreign) {
26         super(hsr);
27         this.target = target;
28         this.foreign = foreign;
29     }
30
31     @Override
32     public SubmissionResult submit(HttpServletRequest req) throws GigiApiException {
33         String dels = req.getParameter("delete");
34
35         int delId = Integer.parseInt(dels);
36         Domain d = Domain.getById(delId);
37         if (d != null && d.getOwner() == target) {
38             d.delete();
39         } else {
40             throw new GigiApiException("Domain was not found.");
41         }
42         if (foreign) {
43             return new RedirectResult(ViewOrgPage.DEFAULT_PATH + "/" + target.getId());
44         } else {
45             return new RedirectResult(DomainOverview.PATH);
46         }
47     }
48
49     @Override
50     protected void outputContent(PrintWriter out, Language l, Map<String, Object> vars) {
51         final Domain[] doms = target.getDomains();
52         IterableDataset dts = new IterableDataset() {
53
54             private int point = 0;
55
56             @Override
57             public boolean next(Language l, Map<String, Object> vars) {
58                 if (point >= doms.length) {
59                     return false;
60                 }
61                 Domain domain = doms[point];
62                 vars.put("id", domain.getId());
63                 if ( !foreign) {
64                     vars.put("domainhref", DomainOverview.PATH + "/" + domain.getId());
65                 }
66                 vars.put("domain", domain.getSuffix());
67                 vars.put("status", l.getTranslation(domain.isVerified() ? "verified" : "not verified"));
68                 point++;
69                 return true;
70             }
71         };
72         vars.put("domains", dts);
73         t.output(out, l, vars);
74     }
75 }