1
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
27
28
29
30
31
32
33
34
35 package fr.paris.lutece.plugins.transparency.web;
36
37 import fr.paris.lutece.plugins.transparency.business.Lobby;
38 import fr.paris.lutece.plugins.transparency.business.LobbyHome;
39 import fr.paris.lutece.util.httpaccess.HttpAccess;
40 import fr.paris.lutece.portal.service.i18n.I18nService;
41 import fr.paris.lutece.portal.service.message.AdminMessage;
42 import fr.paris.lutece.portal.service.message.AdminMessageService;
43 import fr.paris.lutece.portal.service.util.AppPropertiesService;
44 import fr.paris.lutece.portal.util.mvc.admin.annotations.Controller;
45 import fr.paris.lutece.portal.util.mvc.commons.annotations.Action;
46 import fr.paris.lutece.portal.util.mvc.commons.annotations.View;
47 import fr.paris.lutece.util.httpaccess.HttpAccessException;
48 import fr.paris.lutece.util.url.UrlItem;
49 import java.io.IOException;
50 import java.sql.Date;
51 import java.text.MessageFormat;
52 import java.util.Iterator;
53
54 import java.util.List;
55 import java.util.Map;
56 import javax.servlet.http.HttpServletRequest;
57 import org.apache.commons.beanutils.ConvertUtils;
58 import org.apache.commons.beanutils.converters.DateConverter;
59
60 import com.fasterxml.jackson.databind.JsonNode;
61 import com.fasterxml.jackson.databind.ObjectMapper;
62 import fr.paris.lutece.plugins.transparency.service.LobbyService;
63 import java.util.HashMap;
64
65
66
67
68 @Controller( controllerJsp = "ManageLobbies.jsp", controllerPath = "jsp/admin/plugins/transparency/", right = "TRANSPARENCY_LOBBIES_MANAGEMENT" )
69 public class LobbyJspBean extends AbstractManageLobbiesJspBean
70 {
71
72 private static final String TEMPLATE_MANAGE_LOBBIES = "/admin/plugins/transparency/manage_lobbies.html";
73 private static final String TEMPLATE_CREATE_LOBBY = "/admin/plugins/transparency/create_lobby.html";
74 private static final String TEMPLATE_MODIFY_LOBBY = "/admin/plugins/transparency/modify_lobby.html";
75
76
77 private static final String PARAMETER_ID_LOBBY = "id";
78
79
80 private static final String PROPERTY_PAGE_TITLE_MANAGE_LOBBIES = "transparency.manage_lobbies.pageTitle";
81 private static final String PROPERTY_PAGE_TITLE_MODIFY_LOBBY = "transparency.modify_lobby.pageTitle";
82 private static final String PROPERTY_PAGE_TITLE_CREATE_LOBBY = "transparency.create_lobby.pageTitle";
83
84
85 private static final String MARK_LOBBY_LIST = "lobby_list";
86 private static final String MARK_LOBBY = "lobby";
87
88 private static final String JSP_MANAGE_LOBBIES = "jsp/admin/plugins/transparency/ManageLobbies.jsp";
89
90
91 private static final String MESSAGE_CONFIRM_REMOVE_LOBBY = "transparency.message.confirmRemoveLobby";
92 private static final String MSG_SYNCHRO_KEY = "transparency.message.synchro";
93
94
95 private static final String VALIDATION_ATTRIBUTES_PREFIX = "transparency.model.entity.lobby.attribute.";
96
97
98 private static final String VIEW_MANAGE_LOBBIES = "manageLobbies";
99 private static final String VIEW_CREATE_LOBBY = "createLobby";
100 private static final String VIEW_MODIFY_LOBBY = "modifyLobby";
101
102
103 private static final String ACTION_CREATE_LOBBY = "createLobby";
104 private static final String ACTION_MODIFY_LOBBY = "modifyLobby";
105 private static final String ACTION_REMOVE_LOBBY = "removeLobby";
106 private static final String ACTION_CONFIRM_REMOVE_LOBBY = "confirmRemoveLobby";
107 private static final String ACTION_SYNCHRONIZE_LOBBIES = "synchronizeLobbies";
108
109
110 private static final String INFO_LOBBY_CREATED = "transparency.info.lobby.created";
111 private static final String INFO_LOBBY_UPDATED = "transparency.info.lobby.updated";
112 private static final String INFO_LOBBY_REMOVED = "transparency.info.lobby.removed";
113
114
115 private Lobby _lobby;
116
117
118
119
120
121
122
123
124 @View( value = VIEW_MANAGE_LOBBIES, defaultView = true )
125 public String getManageLobbies( HttpServletRequest request )
126 {
127 _lobby = null;
128 List<Lobby> listLobbies = LobbyHome.getLobbiesList( );
129 Map<String, Object> model = getPaginatedListModel( request, MARK_LOBBY_LIST, listLobbies, JSP_MANAGE_LOBBIES );
130
131 return getPage( PROPERTY_PAGE_TITLE_MANAGE_LOBBIES, TEMPLATE_MANAGE_LOBBIES, model );
132 }
133
134
135
136
137
138
139
140
141 @View( VIEW_CREATE_LOBBY )
142 public String getCreateLobby( HttpServletRequest request )
143 {
144 _lobby = ( _lobby != null ) ? _lobby : new Lobby( );
145
146 Map<String, Object> model = getModel( );
147 model.put( MARK_LOBBY, _lobby );
148
149 return getPage( PROPERTY_PAGE_TITLE_CREATE_LOBBY, TEMPLATE_CREATE_LOBBY, model );
150 }
151
152
153
154
155
156
157
158
159 @Action( ACTION_CREATE_LOBBY )
160 public String doCreateLobby( HttpServletRequest request )
161 {
162
163 DateConverter converter = new DateConverter( null );
164 converter.setPattern( I18nService.getDateFormatShortPattern( I18nService.getDefaultLocale( ) ) );
165 ConvertUtils.register( converter, Date.class );
166
167 populate( _lobby, request );
168
169
170 if ( !validateBean( _lobby, VALIDATION_ATTRIBUTES_PREFIX ) )
171 {
172 return redirectView( request, VIEW_CREATE_LOBBY );
173 }
174
175 LobbyHome.create( _lobby );
176 addInfo( INFO_LOBBY_CREATED, getLocale( ) );
177
178 return redirectView( request, VIEW_MANAGE_LOBBIES );
179 }
180
181
182
183
184
185
186
187
188 @Action( ACTION_CONFIRM_REMOVE_LOBBY )
189 public String getConfirmRemoveLobby( HttpServletRequest request )
190 {
191 int nId = Integer.parseInt( request.getParameter( PARAMETER_ID_LOBBY ) );
192 UrlItem url = new UrlItem( getActionUrl( ACTION_REMOVE_LOBBY ) );
193 url.addParameter( PARAMETER_ID_LOBBY, nId );
194
195 String strMessageUrl = AdminMessageService.getMessageUrl( request, MESSAGE_CONFIRM_REMOVE_LOBBY, url.getUrl( ), AdminMessage.TYPE_CONFIRMATION );
196
197 return redirect( request, strMessageUrl );
198 }
199
200
201
202
203
204
205
206
207 @Action( ACTION_REMOVE_LOBBY )
208 public String doRemoveLobby( HttpServletRequest request )
209 {
210 int nId = Integer.parseInt( request.getParameter( PARAMETER_ID_LOBBY ) );
211 LobbyHome.remove( nId );
212 addInfo( INFO_LOBBY_REMOVED, getLocale( ) );
213
214 return redirectView( request, VIEW_MANAGE_LOBBIES );
215 }
216
217
218
219
220
221
222
223
224 @View( VIEW_MODIFY_LOBBY )
225 public String getModifyLobby( HttpServletRequest request )
226 {
227 int nId = Integer.parseInt( request.getParameter( PARAMETER_ID_LOBBY ) );
228
229 if ( _lobby == null || ( _lobby.getId( ) != nId ) )
230 {
231 _lobby = LobbyHome.findByPrimaryKey( nId );
232 }
233
234 Map<String, Object> model = getModel( );
235 model.put( MARK_LOBBY, _lobby );
236
237 return getPage( PROPERTY_PAGE_TITLE_MODIFY_LOBBY, TEMPLATE_MODIFY_LOBBY, model );
238 }
239
240
241
242
243
244
245
246
247 @Action( ACTION_MODIFY_LOBBY )
248 public String doModifyLobby( HttpServletRequest request )
249 {
250
251 DateConverter converter = new DateConverter( null );
252 converter.setPattern( I18nService.getDateFormatShortPattern( I18nService.getDefaultLocale( ) ) );
253 ConvertUtils.register( converter, Date.class );
254
255 populate( _lobby, request );
256
257
258 if ( !validateBean( _lobby, VALIDATION_ATTRIBUTES_PREFIX ) )
259 {
260 return redirect( request, VIEW_MODIFY_LOBBY, PARAMETER_ID_LOBBY, _lobby.getId( ) );
261 }
262
263 LobbyHome.update( _lobby );
264 addInfo( INFO_LOBBY_UPDATED, getLocale( ) );
265
266 return redirectView( request, VIEW_MANAGE_LOBBIES );
267 }
268
269
270
271
272
273
274
275
276 @Action( ACTION_SYNCHRONIZE_LOBBIES )
277 public String synchronizeLobbies( HttpServletRequest request )
278 {
279
280 String msg = LobbyService.synchronizeLobbies( getLocale( ) );
281
282 addInfo( msg );
283 return redirectView( request, VIEW_MANAGE_LOBBIES );
284 }
285
286 }