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.directory.modules.exportfile.web;
36
37 import fr.paris.lutece.plugins.directory.modules.exportfile.business.FileName;
38 import fr.paris.lutece.plugins.directory.modules.exportfile.business.FileNameHome;
39 import fr.paris.lutece.plugins.directory.modules.exportfile.business.MappingEntry;
40 import fr.paris.lutece.plugins.directory.modules.exportfile.business.MappingEntryHome;
41 import fr.paris.lutece.plugins.directory.modules.exportfile.service.DirectoryService;
42 import fr.paris.lutece.plugins.directory.modules.exportfile.service.FileNameService;
43 import fr.paris.lutece.portal.service.message.AdminMessage;
44 import fr.paris.lutece.portal.service.message.AdminMessageService;
45 import fr.paris.lutece.portal.util.mvc.admin.annotations.Controller;
46 import fr.paris.lutece.portal.util.mvc.commons.annotations.Action;
47 import fr.paris.lutece.portal.util.mvc.commons.annotations.View;
48 import fr.paris.lutece.util.url.UrlItem;
49
50 import java.util.Collection;
51 import java.util.List;
52 import java.util.Map;
53 import java.util.Vector;
54 import java.util.concurrent.ConcurrentHashMap;
55
56 import javax.servlet.http.HttpServletRequest;
57
58 import org.apache.commons.fileupload.FileItem;
59 import org.apache.commons.lang.StringUtils;
60
61
62
63
64 @Controller( controllerJsp = "ManageMappingEntry.jsp", controllerPath = "jsp/admin/plugins/directory/modules/exportfile/", right = "EXPORTFILE_MANAGEMENT" )
65 public class MappingEntryJspBean extends ManageExportfileJspBean
66 {
67
68
69
70
71
72 private static final String TEMPLATE_MANAGE_MAPPINGENTRYS = "/admin/plugins/directory/modules/exportfile/manage_mappingentry.html";
73 private static final String TEMPLATE_CREATE_MAPPINGENTRY = "/admin/plugins/directory/modules/exportfile/create_mappingentry.html";
74 private static final String TEMPLATE_MODIFY_MAPPINGENTRY = "/admin/plugins/directory/modules/exportfile/modify_mappingentry.html";
75
76
77 private static final String PARAMETER_ID_MAPPINGENTRY = "id";
78 private static final String PARAMETER_ID_DIRECTORY = "idDirectory";
79 private static final String PARAMETER_SAVE_FILENAME = "action_createMappingEntry";
80
81 private static final String PARAMETER_SAVE_FILENAME_VALUE = "save_fileName";
82
83
84 private static final String PROPERTY_PAGE_TITLE_MANAGE_MAPPINGENTRYS = "module.directory.exportfile.manage_mappingentrys.pageTitle";
85 private static final String PROPERTY_PAGE_TITLE_MODIFY_MAPPINGENTRY = "module.directory.exportfile.modify_mappingentry.pageTitle";
86 private static final String PROPERTY_PAGE_TITLE_CREATE_MAPPINGENTRY = "module.directory.exportfile.create_mappingentry.pageTitle";
87
88
89 private static final String MARK_MAPPINGENTRY_LIST = "mappingentry_list";
90 private static final String MARK_MAPPINGENTRY = "mappingentry";
91 private static final String MARK_FILENAME_LIST = "fileName_list";
92
93 private static final String JSP_MANAGE_MAPPINGENTRYS = "jsp/admin/plugins/directory/modules/exportfile/ManageMappingEntry.jsp";
94
95
96 private static final String MESSAGE_CONFIRM_REMOVE_MAPPINGENTRY = "module.directory.exportfile.message.confirmRemoveMappingEntry";
97 private static final String PROPERTY_DEFAULT_LIST_MAPPINGENTRY_PER_PAGE = "module.directory.exportfile.listMappingEntrys.itemsPerPage";
98
99 private static final String VALIDATION_ATTRIBUTES_PREFIX = "module.directory.exportfile.model.entity.mappingentry.attribute.";
100 private static final String VALIDATION_ATTRIBUTES_NAME_PREFIX = "module.directory.exportfile.model.entity.filename.attribute.";
101
102
103 private static final String VIEW_MANAGE_MAPPINGENTRYS = "manageMappingEntrys";
104 private static final String VIEW_CREATE_MAPPINGENTRY = "createMappingEntry";
105 private static final String VIEW_MODIFY_MAPPINGENTRY = "modifyMappingEntry";
106
107
108 private static final String ACTION_CREATE_MAPPINGENTRY = "createMappingEntry";
109 private static final String ACTION_MODIFY_MAPPINGENTRY = "modifyMappingEntry";
110 private static final String ACTION_REMOVE_FILENAME = "removeFileName";
111 private static final String ACTION_REMOVE_MAPPINGENTRY = "removeMappingEntry";
112 private static final String ACTION_CONFIRM_REMOVE_MAPPINGENTRY = "confirmRemoveMappingEntry";
113
114
115 private static final String INFO_MAPPINGENTRY_CREATED = "module.directory.exportfile.info.mappingentry.created";
116 private static final String INFO_MAPPINGENTRY_UPDATED = "module.directory.exportfile.info.mappingentry.updated";
117 private static final String INFO_MAPPINGENTRY_REMOVED = "module.directory.exportfile.info.mappingentry.removed";
118
119 public static final String MARK_DIRECTORY_LIST = "list_directory";
120 public static final String MARK_LIST_ENTRIES = "list_entries";
121
122
123 private MappingEntry _mappingentry;
124 private DirectoryService _directoryService = DirectoryService.getService( );
125 private FileNameService _fileNameService = FileNameService.getService( );
126
127 @View( value = VIEW_MANAGE_MAPPINGENTRYS, defaultView = true )
128 public String getManageMappingEntrys( HttpServletRequest request )
129 {
130 _mappingentry = null;
131 List<MappingEntry> listMappingEntrys = (List<MappingEntry>) MappingEntryHome.getMappingEntrysList( );
132 Map<String, Object> model = getPaginatedListModel( request, MARK_MAPPINGENTRY_LIST, listMappingEntrys, JSP_MANAGE_MAPPINGENTRYS );
133
134 return getPage( PROPERTY_PAGE_TITLE_MANAGE_MAPPINGENTRYS, TEMPLATE_MANAGE_MAPPINGENTRYS, model );
135 }
136
137
138
139
140
141
142
143
144 @View( VIEW_CREATE_MAPPINGENTRY )
145 public String getCreateMappingEntry( HttpServletRequest request )
146 {
147 _mappingentry = ( _mappingentry != null ) ? _mappingentry : new MappingEntry( );
148 String strIdDirectory = request.getParameter( PARAMETER_ID_DIRECTORY );
149 int nIdDirectory = -1;
150
151 if ( strIdDirectory != null && StringUtils.isNotEmpty( strIdDirectory ) )
152 {
153 nIdDirectory = Integer.parseInt( strIdDirectory );
154 _mappingentry.setIdDirectory( nIdDirectory );
155 }
156
157 Map<String, Object> model = getModel( );
158 model.put( MARK_MAPPINGENTRY, _mappingentry );
159 model.put( MARK_DIRECTORY_LIST, _directoryService.getListDirectories( ) );
160 model.put( MARK_LIST_ENTRIES, _directoryService.getListEntries( nIdDirectory, request ) );
161 model.put( MARK_FILENAME_LIST, _fileNameService.getListUploadedFiles( request.getSession( ) ) );
162
163 return getPage( PROPERTY_PAGE_TITLE_CREATE_MAPPINGENTRY, TEMPLATE_CREATE_MAPPINGENTRY, model );
164 }
165
166
167
168
169
170
171
172
173 @Action( ACTION_CREATE_MAPPINGENTRY )
174 public String doCreateMappingEntry( HttpServletRequest request )
175 {
176 populate( _mappingentry, request );
177 if ( request.getParameter( PARAMETER_SAVE_FILENAME ) != null
178 && StringUtils.equals( PARAMETER_SAVE_FILENAME_VALUE, request.getParameter( PARAMETER_SAVE_FILENAME ) ) )
179 {
180 FileName _fileName = new FileName( );
181 populate( _fileName, request );
182
183 if ( !validateBean( _fileName, VALIDATION_ATTRIBUTES_NAME_PREFIX ) )
184 {
185 return redirectView( request, VIEW_CREATE_MAPPINGENTRY );
186 }
187 _fileNameService.addFileNameToUploadedList( _fileName, request );
188 String strIdDirectory = request.getParameter( PARAMETER_ID_DIRECTORY );
189 return redirect( request, VIEW_CREATE_MAPPINGENTRY, PARAMETER_ID_DIRECTORY, Integer.parseInt( strIdDirectory ) );
190
191 }
192
193
194 if ( !validateBean( _mappingentry, VALIDATION_ATTRIBUTES_PREFIX ) )
195 {
196 return redirectView( request, VIEW_CREATE_MAPPINGENTRY );
197 }
198
199 _fileNameService.createEntry( _mappingentry, _fileNameService.getListUploadedFiles( request.getSession( ) ) );
200 _fileNameService.removeFilesName( request.getSession( ) );
201
202 addInfo( INFO_MAPPINGENTRY_CREATED, getLocale( ) );
203
204 return redirectView( request, VIEW_MANAGE_MAPPINGENTRYS );
205 }
206
207
208
209
210
211
212
213
214 @Action( ACTION_CONFIRM_REMOVE_MAPPINGENTRY )
215 public String getConfirmRemoveMappingEntry( HttpServletRequest request )
216 {
217 int nId = Integer.parseInt( request.getParameter( PARAMETER_ID_MAPPINGENTRY ) );
218 UrlItem url = new UrlItem( getActionUrl( ACTION_REMOVE_MAPPINGENTRY ) );
219 url.addParameter( PARAMETER_ID_MAPPINGENTRY, nId );
220
221 String strMessageUrl = AdminMessageService.getMessageUrl( request, MESSAGE_CONFIRM_REMOVE_MAPPINGENTRY, url.getUrl( ), AdminMessage.TYPE_CONFIRMATION );
222
223 return redirect( request, strMessageUrl );
224 }
225
226
227
228
229
230
231
232
233 @Action( ACTION_REMOVE_MAPPINGENTRY )
234 public String doRemoveMappingEntry( HttpServletRequest request )
235 {
236 int nId = Integer.parseInt( request.getParameter( PARAMETER_ID_MAPPINGENTRY ) );
237
238 _fileNameService.removeEntry( nId );
239 _fileNameService.removeFilesName( request.getSession( ) );
240 addInfo( INFO_MAPPINGENTRY_REMOVED, getLocale( ) );
241
242 return redirectView( request, VIEW_MANAGE_MAPPINGENTRYS );
243 }
244
245
246
247
248
249
250
251
252 @View( VIEW_MODIFY_MAPPINGENTRY )
253 public String getModifyMappingEntry( HttpServletRequest request )
254 {
255 int nId = Integer.parseInt( request.getParameter( PARAMETER_ID_MAPPINGENTRY ) );
256 String strIdDirectory = request.getParameter( PARAMETER_ID_DIRECTORY );
257 int nIdDirectory = -1;
258
259 if ( _mappingentry == null || ( _mappingentry.getId( ) != nId ) )
260 {
261 _mappingentry = MappingEntryHome.findByPrimaryKey( nId );
262 nIdDirectory = _mappingentry.getIdDirectory( );
263 }
264 if ( strIdDirectory != null && StringUtils.isNotEmpty( strIdDirectory ) && StringUtils.isNotBlank( strIdDirectory ) )
265 {
266
267 nIdDirectory = Integer.parseInt( strIdDirectory );
268 }
269 if ( _fileNameService.getListUploadedFiles( request.getSession( ) ) == null
270 || _fileNameService.getListUploadedFiles( request.getSession( ) ).size( ) == 0 )
271 {
272 Collection<FileName> fileName = FileNameHome.getFilesList( nId );
273 for ( FileName fileNam : fileName )
274 {
275 _fileNameService.addFileNameToUploadedList( fileNam, request );
276 }
277 }
278 List<FileName> fileNameList = _fileNameService.getListUploadedFiles( request.getSession( ) );
279 Map<String, Object> model = getModel( );
280 model.put( MARK_MAPPINGENTRY, _mappingentry );
281 model.put( MARK_DIRECTORY_LIST, _directoryService.getListDirectories( ) );
282 model.put( MARK_LIST_ENTRIES, _directoryService.getListEntries( nIdDirectory, request ) );
283 model.put( MARK_FILENAME_LIST, fileNameList );
284
285 return getPage( PROPERTY_PAGE_TITLE_MODIFY_MAPPINGENTRY, TEMPLATE_MODIFY_MAPPINGENTRY, model );
286 }
287
288
289
290
291
292
293
294
295 @Action( ACTION_MODIFY_MAPPINGENTRY )
296 public String doModifyMappingEntry( HttpServletRequest request )
297 {
298 populate( _mappingentry, request );
299
300
301 if ( !validateBean( _mappingentry, VALIDATION_ATTRIBUTES_PREFIX ) )
302 {
303 return redirect( request, VIEW_MODIFY_MAPPINGENTRY, PARAMETER_ID_MAPPINGENTRY, _mappingentry.getId( ) );
304 }
305
306 _fileNameService.updateEntry( _mappingentry, _fileNameService.getListUploadedFiles( request.getSession( ) ) );
307 _fileNameService.removeFilesName( request.getSession( ) );
308
309 addInfo( INFO_MAPPINGENTRY_UPDATED, getLocale( ) );
310
311 return redirectView( request, VIEW_MANAGE_MAPPINGENTRYS );
312 }
313
314
315
316
317
318
319
320
321 @Action( ACTION_REMOVE_FILENAME )
322 public String doRemoveFileName( HttpServletRequest request )
323 {
324
325 _fileNameService.removeFilesName( request.getSession( ) );
326 String strIdDirectory = request.getParameter( PARAMETER_ID_DIRECTORY );
327 return redirect( request, VIEW_CREATE_MAPPINGENTRY, PARAMETER_ID_DIRECTORY, Integer.parseInt( strIdDirectory ) );
328 }
329 }