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 package fr.paris.lutece.plugins.avatarserver.web;
35
36 import fr.paris.lutece.plugins.avatarserver.business.Avatar;
37 import fr.paris.lutece.plugins.avatarserver.business.AvatarHome;
38 import fr.paris.lutece.plugins.avatarserver.service.AvatarService;
39 import fr.paris.lutece.portal.service.message.AdminMessage;
40 import fr.paris.lutece.portal.service.message.AdminMessageService;
41 import fr.paris.lutece.portal.service.util.AppPropertiesService;
42 import fr.paris.lutece.portal.util.mvc.admin.annotations.Controller;
43 import fr.paris.lutece.portal.util.mvc.commons.annotations.Action;
44 import fr.paris.lutece.portal.util.mvc.commons.annotations.View;
45 import fr.paris.lutece.portal.web.upload.MultipartHttpServletRequest;
46 import fr.paris.lutece.portal.web.util.LocalizedPaginator;
47 import fr.paris.lutece.util.html.Paginator;
48 import fr.paris.lutece.util.url.UrlItem;
49
50 import org.apache.commons.fileupload.FileItem;
51
52 import java.util.List;
53 import java.util.Map;
54
55 import javax.servlet.http.HttpServletRequest;
56
57
58
59
60 @Controller( controllerJsp = "ManageAvatars.jsp", controllerPath = "jsp/admin/plugins/avatarserver/", right = "AVATARSERVER_MANAGEMENT" )
61 public class AvatarJspBean extends ManageAvatarserverJspBean
62 {
63
64
65
66 private static final String TEMPLATE_MANAGE_AVATARS = "/admin/plugins/avatarserver/manage_avatars.html";
67 private static final String TEMPLATE_CREATE_AVATAR = "/admin/plugins/avatarserver/create_avatar.html";
68 private static final String TEMPLATE_MODIFY_AVATAR = "/admin/plugins/avatarserver/modify_avatar.html";
69
70
71 private static final String PARAMETER_ID_AVATAR = "id_avatar";
72 private static final String PARAMETER_IMAGE = "avatar_image";
73
74
75 private static final String PROPERTY_PAGE_TITLE_MANAGE_AVATARS = "avatarserver.manage_avatars.pageTitle";
76 private static final String PROPERTY_PAGE_TITLE_MODIFY_AVATAR = "avatarserver.modify_avatar.pageTitle";
77 private static final String PROPERTY_PAGE_TITLE_CREATE_AVATAR = "avatarserver.create_avatar.pageTitle";
78
79
80 private static final String MARK_AVATAR_LIST = "avatar_list";
81 private static final String MARK_AVATAR = "avatar";
82 private static final String JSP_MANAGE_AVATARS = "jsp/admin/plugins/avatarserver/ManageAvatars.jsp";
83
84
85 private static final String MESSAGE_CONFIRM_REMOVE_AVATAR = "avatarserver.message.confirmRemoveAvatar";
86 private static final String VALIDATION_ATTRIBUTES_PREFIX = "avatarserver.model.entity.avatar.attribute.";
87
88
89 private static final String VIEW_MANAGE_AVATARS = "manageAvatars";
90 private static final String VIEW_CREATE_AVATAR = "createAvatar";
91 private static final String VIEW_MODIFY_AVATAR = "modifyAvatar";
92
93
94 private static final String ACTION_CREATE_AVATAR = "createAvatar";
95 private static final String ACTION_MODIFY_AVATAR = "modifyAvatar";
96 private static final String ACTION_REMOVE_AVATAR = "removeAvatar";
97 private static final String ACTION_CONFIRM_REMOVE_AVATAR = "confirmRemoveAvatar";
98
99
100 private static final String INFO_AVATAR_CREATED = "avatarserver.info.avatar.created";
101 private static final String INFO_AVATAR_UPDATED = "avatarserver.info.avatar.updated";
102 private static final String INFO_AVATAR_REMOVED = "avatarserver.info.avatar.removed";
103
104
105 private Avatar _avatar;
106
107
108
109
110
111
112
113
114 @View( value = VIEW_MANAGE_AVATARS, defaultView = true )
115 public String getManageAvatars( HttpServletRequest request )
116 {
117 List<Avatar> listAvatars = (List<Avatar>) AvatarHome.getAvatarsList( );
118 Map<String, Object> model = getPaginatedListModel( request, MARK_AVATAR_LIST, listAvatars, JSP_MANAGE_AVATARS );
119
120 return getPage( PROPERTY_PAGE_TITLE_MANAGE_AVATARS, TEMPLATE_MANAGE_AVATARS, model );
121 }
122
123
124
125
126
127
128
129
130 @View( VIEW_CREATE_AVATAR )
131 public String getCreateAvatar( HttpServletRequest request )
132 {
133 _avatar = ( _avatar != null ) ? _avatar : new Avatar( );
134
135 Map<String, Object> model = getModel( );
136 model.put( MARK_AVATAR, _avatar );
137
138 return getPage( PROPERTY_PAGE_TITLE_CREATE_AVATAR, TEMPLATE_CREATE_AVATAR, model );
139 }
140
141
142
143
144
145
146
147
148 @Action( ACTION_CREATE_AVATAR )
149 public String doCreateAvatar( HttpServletRequest request )
150 {
151 populate( _avatar, request );
152
153 MultipartHttpServletRequest multiPartRequest = (MultipartHttpServletRequest) request;
154 FileItem imageSource = multiPartRequest.getFile( PARAMETER_IMAGE );
155
156 _avatar.setValue( imageSource.get( ) );
157 _avatar.setMimeType( imageSource.getContentType( ) );
158
159
160 if ( !validateBean( _avatar, VALIDATION_ATTRIBUTES_PREFIX ) )
161 {
162 return redirectView( request, VIEW_CREATE_AVATAR );
163 }
164
165 AvatarService.create( _avatar );
166 _avatar = null;
167 addInfo( INFO_AVATAR_CREATED, getLocale( ) );
168
169 return redirectView( request, VIEW_MANAGE_AVATARS );
170 }
171
172
173
174
175
176
177
178
179 @Action( ACTION_CONFIRM_REMOVE_AVATAR )
180 public String getConfirmRemoveAvatar( HttpServletRequest request )
181 {
182 int nId = Integer.parseInt( request.getParameter( PARAMETER_ID_AVATAR ) );
183 UrlItem url = new UrlItem( getActionUrl( ACTION_REMOVE_AVATAR ) );
184 url.addParameter( PARAMETER_ID_AVATAR, nId );
185
186 String strMessageUrl = AdminMessageService.getMessageUrl( request, MESSAGE_CONFIRM_REMOVE_AVATAR, url.getUrl( ), AdminMessage.TYPE_CONFIRMATION );
187
188 return redirect( request, strMessageUrl );
189 }
190
191
192
193
194
195
196
197
198 @Action( ACTION_REMOVE_AVATAR )
199 public String doRemoveAvatar( HttpServletRequest request )
200 {
201 int nId = Integer.parseInt( request.getParameter( PARAMETER_ID_AVATAR ) );
202 AvatarHome.remove( nId );
203 addInfo( INFO_AVATAR_REMOVED, getLocale( ) );
204
205 return redirectView( request, VIEW_MANAGE_AVATARS );
206 }
207
208
209
210
211
212
213
214
215 @View( VIEW_MODIFY_AVATAR )
216 public String getModifyAvatar( HttpServletRequest request )
217 {
218 int nId = Integer.parseInt( request.getParameter( PARAMETER_ID_AVATAR ) );
219
220 if ( _avatar == null )
221 {
222 _avatar = AvatarHome.findByPrimaryKey( nId );
223 }
224
225 Map<String, Object> model = getModel( );
226 model.put( MARK_AVATAR, _avatar );
227
228 return getPage( PROPERTY_PAGE_TITLE_MODIFY_AVATAR, TEMPLATE_MODIFY_AVATAR, model );
229 }
230
231
232
233
234
235
236
237
238 @Action( ACTION_MODIFY_AVATAR )
239 public String doModifyAvatar( HttpServletRequest request )
240 {
241 populate( _avatar, request );
242
243 MultipartHttpServletRequest multiPartRequest = (MultipartHttpServletRequest) request;
244 FileItem imageSource = multiPartRequest.getFile( PARAMETER_IMAGE );
245
246 _avatar.setValue( imageSource.get( ) );
247 _avatar.setMimeType( imageSource.getContentType( ) );
248
249
250 if ( !validateBean( _avatar, VALIDATION_ATTRIBUTES_PREFIX ) )
251 {
252 return redirect( request, VIEW_MODIFY_AVATAR, PARAMETER_ID_AVATAR, _avatar.getId( ) );
253 }
254
255 AvatarService.update( _avatar );
256 _avatar = null;
257 addInfo( INFO_AVATAR_UPDATED, getLocale( ) );
258
259 return redirectView( request, VIEW_MANAGE_AVATARS );
260 }
261 }