1 package fr.ifremer.quadrige2.synchro.server.pages.home;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 import fr.ifremer.quadrige2.synchro.server.application.Application;
27 import fr.ifremer.quadrige2.synchro.server.application.WebSession;
28 import fr.ifremer.quadrige2.synchro.server.pages.BasePage;
29 import fr.ifremer.quadrige2.synchro.server.pages.admin.JobManagerPage;
30 import fr.ifremer.quadrige2.synchro.server.pages.admin.ToolsPage;
31 import fr.ifremer.quadrige2.synchro.server.pages.doc.DocPage;
32 import fr.ifremer.quadrige2.synchro.server.pages.synchro.NewDatabasePage;
33 import org.apache.wicket.ajax.AjaxRequestTarget;
34 import org.apache.wicket.ajax.markup.html.form.AjaxButton;
35 import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
36 import org.apache.wicket.markup.html.form.Form;
37 import org.apache.wicket.model.CompoundPropertyModel;
38 import org.apache.wicket.model.IModel;
39 import org.apache.wicket.request.mapper.parameter.PageParameters;
40
41 @AuthorizeInstantiation("ROLE_USER")
42 public class HomePage extends BasePage {
43
44
45
46
47 private static final long serialVersionUID = 1L;
48
49 public HomePage(final PageParameters parameters) {
50 super(parameters);
51
52 IModel<HomePage> model = new CompoundPropertyModel<HomePage>(this);
53
54 setVersioned(false);
55
56 final boolean isUserAdmin = getWebSession().isUserAdmin();
57
58 Form<HomePage> form = new Form<HomePage>("form", model);
59 form.setOutputMarkupId(true);
60 add(form);
61
62
63 AjaxButton synchroButton = new AjaxButton("synchroLink", form) {
64 private static final long serialVersionUID = 1L;
65
66 @Override
67 protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
68 setResponsePage(NewDatabasePage.class);
69 }
70 };
71 form.add(synchroButton);
72
73
74 AjaxButton jobManagerButton = new AjaxButton("jobManagerLink", form) {
75 private static final long serialVersionUID = 1L;
76 @Override
77 protected void onConfigure() {
78 super.onConfigure();
79 setVisibilityAllowed(isUserAdmin);
80 }
81 @Override
82 protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
83 setResponsePage(JobManagerPage.class);
84 }
85 };
86 form.add(jobManagerButton);
87
88
89 AjaxButton toolsButton = new AjaxButton("toolsLink", form) {
90 private static final long serialVersionUID = 1L;
91 @Override
92 protected void onConfigure() {
93 super.onConfigure();
94 setVisibilityAllowed(isUserAdmin);
95 }
96 @Override
97 protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
98 setResponsePage(ToolsPage.class);
99 }
100 };
101 form.add(toolsButton);
102
103
104 AjaxButton docButton = new AjaxButton("docLink", form) {
105 @Override
106 protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
107 setResponsePage(DocPage.class);
108 }
109 };
110 form.add(docButton);
111
112
113 AjaxButton logoutButton = new AjaxButton("logoutLink", form) {
114 private static final long serialVersionUID = 1L;
115 @Override
116 protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
117 WebSession session = (WebSession)getWebSession();
118 session.invalidate();
119 session.signOut();
120 setResponsePage(Application.get().getHomePage());
121 }
122 };
123 form.add(logoutButton);
124
125 }
126 }