]> WPIA git - gigi.git/blob - src/club/wpia/gigi/pages/account/domain/DomainAddForm.java
upd: rename package name and all references to it
[gigi.git] / src / club / wpia / gigi / pages / account / domain / DomainAddForm.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.Domain;
10 import club.wpia.gigi.dbObjects.User;
11 import club.wpia.gigi.localisation.Language;
12 import club.wpia.gigi.output.template.Form;
13 import club.wpia.gigi.output.template.Outputable;
14 import club.wpia.gigi.output.template.Template;
15
16 public class DomainAddForm extends Form {
17
18     private static final Template t = new Template(DomainManagementForm.class.getResource("DomainAddForm.templ"));
19
20     private User target;
21
22     PingConfigForm pcf;
23
24     public DomainAddForm(HttpServletRequest hsr, User target) throws GigiApiException {
25         super(hsr);
26         this.target = target;
27         pcf = new PingConfigForm(hsr, null);
28     }
29
30     @Override
31     public SubmissionResult submit(HttpServletRequest req) throws GigiApiException {
32         try {
33             String parameter = req.getParameter("newdomain");
34             if (parameter.trim().isEmpty()) {
35                 throw new GigiApiException("No domain inserted.");
36             }
37             Domain d = new Domain(target, target, parameter);
38             pcf.setTarget(d);
39             pcf.submit(req);
40             return new RedirectResult(DomainOverview.PATH);
41         } catch (NumberFormatException e) {
42             throw new GigiApiException("A number could not be parsed");
43         }
44     }
45
46     @Override
47     protected void outputContent(PrintWriter out, Language l, Map<String, Object> vars) {
48         vars.put("pingconfig", new Outputable() {
49
50             @Override
51             public void output(PrintWriter out, Language l, Map<String, Object> vars) {
52                 pcf.outputEmbeddableContent(out, l, vars);
53             }
54         });
55         t.output(out, l, vars);
56     }
57 }