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.directory.modules.pdfproducerarchive.web;
35
36 import fr.paris.lutece.plugins.directory.business.Directory;
37 import fr.paris.lutece.plugins.directory.business.Record;
38 import fr.paris.lutece.plugins.directory.modules.pdfproducer.service.ConfigProducerService;
39 import fr.paris.lutece.plugins.directory.modules.pdfproducer.service.DirectoryPDFProducerPlugin;
40 import fr.paris.lutece.plugins.directory.modules.pdfproducerarchive.business.zipbasket.ZipBasket;
41 import fr.paris.lutece.plugins.directory.modules.pdfproducerarchive.business.zipbasket.queue.ZipItem;
42 import fr.paris.lutece.plugins.directory.modules.pdfproducerarchive.service.DirectoryManageZipBasketService;
43 import fr.paris.lutece.plugins.directory.modules.pdfproducerarchive.service.DirectoryPDFProducerArchiveResourceIdService;
44 import fr.paris.lutece.plugins.directory.modules.pdfproducerarchive.service.daemon.AddZipToBasketDaemon;
45 import fr.paris.lutece.plugins.directory.modules.pdfproducerarchive.utils.StatusZipEnum;
46 import fr.paris.lutece.plugins.directory.utils.DirectoryUtils;
47 import fr.paris.lutece.portal.service.admin.AccessDeniedException;
48 import fr.paris.lutece.portal.service.admin.AdminUserService;
49 import fr.paris.lutece.portal.service.daemon.AppDaemonService;
50 import fr.paris.lutece.portal.service.daemon.DaemonEntry;
51 import fr.paris.lutece.portal.service.i18n.I18nService;
52 import fr.paris.lutece.portal.service.message.AdminMessage;
53 import fr.paris.lutece.portal.service.message.AdminMessageService;
54 import fr.paris.lutece.portal.service.rbac.RBACService;
55 import fr.paris.lutece.portal.service.spring.SpringContextService;
56 import fr.paris.lutece.portal.service.template.AppTemplateService;
57 import fr.paris.lutece.portal.service.util.AppPathService;
58 import fr.paris.lutece.portal.web.admin.PluginAdminPageJspBean;
59 import fr.paris.lutece.portal.web.constants.Messages;
60 import fr.paris.lutece.portal.web.constants.Parameters;
61 import fr.paris.lutece.util.html.HtmlTemplate;
62 import fr.paris.lutece.util.sort.AttributeComparator;
63 import fr.paris.lutece.util.string.StringUtil;
64 import fr.paris.lutece.util.url.UrlItem;
65
66 import java.text.ParseException;
67 import java.text.SimpleDateFormat;
68 import java.util.Collection;
69 import java.util.Collections;
70 import java.util.Date;
71 import java.util.HashMap;
72 import java.util.List;
73 import java.util.Locale;
74 import java.util.Map;
75
76 import javax.servlet.http.HttpServletRequest;
77
78 import org.apache.commons.lang.StringUtils;
79
80
81
82
83
84
85 public class ZipBasketJspBean extends PluginAdminPageJspBean
86 {
87
88 private static final String TEMPLATE_MANAGE_ZIP_BASKET = "admin/plugins/directory/modules/pdfproducer/archive/basket/manage_zip_basket.html";
89
90
91 private static final String MESSAGE_CONFIRM_ADD_ZIP_TO_BASKET = "module.directory.pdfproducerarchive.message.confirm_add_zip_to_basket";
92 private static final String MESSAGE_ADD_ZIP_TO_BASKET = "module.directory.pdfproducerarchive.message.add_zip_to_basket";
93 private static final String MESSAGE_CONFIRM_REMOVE_ZIP_TO_BASKET = "module.directory.pdfproducerarchive.message.confirm_remove_zip_to_basket";
94 private static final String MESSAGE_REMOVE_ZIP_TO_BASKET = "module.directory.pdfproducerarchive.message.remove_zip_to_basket";
95 private static final String MESSAGE_ERROR_REMOVE_ZIP_TO_BASKET = "module.directory.pdfproducerarchive.message.error_remove_zip_to_basket";
96 private static final String MESSAGE_CONFIRM_EXPORT_ALL_ZIP = "module.directory.pdfproducerarchive.message.confirm_export_all_zip";
97 private static final String MESSAGE_EXPORT_ALL_ZIP = "module.directory.pdfproducerarchive.message.export_all_zip";
98 private static final String MESSAGE_ERROR_EXPORT_ALL_ZIP = "module.directory.pdfproducerarchive.message.error_export_all_zip";
99 private static final String MESSAGE_EXPORT_ALL_ZIP_ALREADY_EXISTS = "module.directory.pdfproducerarchive.message.error_export_all_zip.already_exists";
100 private static final String MESSAGE_ERROR_REMOVE_ZIP_TO_BASKET_ALLEXPORT = "module.directory.pdfproducerarchive.message.error_remove_zip_to_basket.allexport";
101 private static final String MESSAGE_CONFIRM_REMOVE_ALL_ZIP = "module.directory.pdfproducerarchive.message.confirm_remove_all_zip";
102 private static final String MESSAGE_REMOVE_ALL_ZIP = "module.directory.pdfproducerarchive.message.remove_all_zip";
103 private static final String MESSAGE_ERROR_REMOVE_ALL_ZIP = "module.directory.pdfproducerarchive.message.error_remove_all_zip";
104 private static final String MESSAGE_DAEMON_NEXT_PASS = "module.directory.pdfproducerarchive.message.daemonArchiveNextPass";
105 private static final String MESSAGE_DAEMON_RUNNING = "module.directory.pdfproducerarchive.message.daemonArchiveRunning";
106 private static final String MESSAGE_DAEMON_UPDATE_STATUS_NEXT_PASS = "module.directory.pdfproducerarchive.message.daemonUpdateStatusNextPass";
107 private static final String MESSAGE_DAEMON_UPDATE_STATUS_RUNNING = "module.directory.pdfproducerarchive.message.daemonUpdateStatusRunning";
108
109
110 private static final String MARK_ID_DIRECTORY = "idDirectory";
111
112
113 private static final String MARK_LIST_ZIPBASKET = "list_zipbasket";
114 private static final String MARK_PERMISSION_DELETE_ZIP = "permission_delete_zip";
115 private static final String MARK_DAEMON_NEXT_SCHEDULE = "daemon_next_schedule";
116 private static final String MARK_DAEMON_UPDATE_STATUS_NEXT_SCHEDULE = "daemon_update_status_next_schedule";
117
118
119 private static final String JSP_MANAGE_DIRECTORY_RECORD = DirectoryUtils.JSP_MANAGE_DIRECTORY_RECORD;
120 private static final String JSP_MANAGE_ZIPBASKET = "jsp/admin/plugins/directory/modules/pdfproducer/archive/basket/ManageZipBasket.jsp";
121 private static final String JSP_DO_ADD_ZIP_TO_BASKET = "jsp/admin/plugins/directory/modules/pdfproducer/archive/basket/AddZipToBasket.jsp";
122 private static final String JSP_DO_REMOVE_ZIP_TO_BASKET = "jsp/admin/plugins/directory/modules/pdfproducer/archive/basket/DoRemoveZipBasket.jsp";
123 private static final String JSP_DO_EXPORT_ALL_ZIP = "jsp/admin/plugins/directory/modules/pdfproducer/archive/basket/ExportAllZip.jsp";
124 private static final String JSP_DO_REMOVE_ALL_ZIP = "jsp/admin/plugins/directory/modules/pdfproducer/archive/basket/RemoveAllZip.jsp";
125
126
127 private static final String PARAMETER_ID_DIRECTORY = DirectoryUtils.PARAMETER_ID_DIRECTORY;
128 private static final String PARAMETER_ID_DIRECTORY_RECORD = "id_directory_record";
129 private static final String PARAMETER_SESSION = DirectoryUtils.PARAMETER_SESSION;
130 private static final String PARAMETER_ID_ZIPBASKET = "id_zipbasket";
131
132
133 public static final String DAEMON_ARCHIVE_ID = "archiveIndexer";
134 public static final String DAEMON_UPDATE_STATUS_ID = "zipBasketCheckStatus";
135 private static final DirectoryManageZipBasketService _manageZipBasketService = (DirectoryManageZipBasketService) SpringContextService.getPluginBean( DirectoryPDFProducerPlugin.PLUGIN_NAME,
136 "directory-pdfproducer-archive.directoryManageZipBasketService" );
137 private static final ConfigProducerService _manageConfigProducerService = (ConfigProducerService) SpringContextService.getPluginBean( DirectoryPDFProducerPlugin.PLUGIN_NAME,
138 "directory-pdfproducer.manageConfigProducer" );
139
140
141
142
143
144
145
146 public String getManageZipToBasket( HttpServletRequest request )
147 throws AccessDeniedException
148 {
149 String strIdDirectory = request.getParameter( PARAMETER_ID_DIRECTORY );
150
151 if ( !RBACService.isAuthorized( Directory.RESOURCE_TYPE, strIdDirectory,
152 DirectoryPDFProducerArchiveResourceIdService.PERMISSION_GENERATE_ZIP, getUser( ) ) ||
153 StringUtils.isBlank( strIdDirectory ) || !StringUtils.isNumeric( strIdDirectory ) )
154 {
155 throw new AccessDeniedException( );
156 }
157
158 Map<String, Object> model = new HashMap<String, Object>( );
159
160 List<ZipBasket> listZipBasket = _manageZipBasketService.loadAllZipBasketByAdminUserOrder( getPlugin( ),
161 getUser( ).getUserId( ), DirectoryUtils.convertStringToInt( strIdDirectory ) );
162
163 String strSortedAttributeName = request.getParameter( Parameters.SORTED_ATTRIBUTE_NAME );
164 String strAscSort = null;
165
166 if ( strSortedAttributeName != null )
167 {
168 strAscSort = request.getParameter( Parameters.SORTED_ASC );
169
170 boolean bIsAscSort = Boolean.parseBoolean( strAscSort );
171
172 Collections.sort( listZipBasket, new AttributeComparator( strSortedAttributeName, bIsAscSort ) );
173 }
174
175 model.put( MARK_ID_DIRECTORY, strIdDirectory );
176 model.put( MARK_LIST_ZIPBASKET, listZipBasket );
177 model.put( MARK_PERMISSION_DELETE_ZIP,
178 RBACService.isAuthorized( Directory.RESOURCE_TYPE, strIdDirectory,
179 DirectoryPDFProducerArchiveResourceIdService.PERMISSION_DELETE_ZIP, getUser( ) ) );
180
181 Directory directory = _manageZipBasketService.getDirectory( DirectoryUtils.convertStringToInt( strIdDirectory ) );
182
183 if ( !listZipBasket.isEmpty( ) && ( directory != null ) )
184 {
185 for ( ZipBasket zipBasket : listZipBasket )
186 {
187 zipBasket.setListZipBasketAction( _manageZipBasketService.selectActionsByZipBasketState(
188 DirectoryUtils.convertStringToInt( zipBasket.getZipStatus( ) ), getLocale( ), directory,
189 getUser( ), getPlugin( ) ) );
190 }
191 }
192
193 model.put(
194 MARK_DAEMON_NEXT_SCHEDULE,
195 getLabelTimeBeforeNextDaemonPassage( MESSAGE_DAEMON_NEXT_PASS, MESSAGE_DAEMON_RUNNING, request,
196 DAEMON_ARCHIVE_ID ) );
197 model.put(
198 MARK_DAEMON_UPDATE_STATUS_NEXT_SCHEDULE,
199 getLabelTimeBeforeNextDaemonPassage( MESSAGE_DAEMON_UPDATE_STATUS_NEXT_PASS,
200 MESSAGE_DAEMON_UPDATE_STATUS_RUNNING, request, DAEMON_UPDATE_STATUS_ID ) );
201
202 HtmlTemplate templateList = AppTemplateService.getTemplate( TEMPLATE_MANAGE_ZIP_BASKET, getLocale( ), model );
203
204 return getAdminPage( templateList.getHtml( ) );
205 }
206
207
208
209
210
211
212
213 public String getConfirmAddZipBasket( HttpServletRequest request )
214 throws AccessDeniedException
215 {
216 String[] listIdsDirectoryRecord = request.getParameterValues( PARAMETER_ID_DIRECTORY_RECORD );
217
218 if ( ( listIdsDirectoryRecord != null ) && ( listIdsDirectoryRecord.length > 0 ) )
219 {
220 String strIdDirectory = request.getParameter( PARAMETER_ID_DIRECTORY );
221
222
223
224 if ( StringUtils.isBlank( strIdDirectory ) || !StringUtils.isNumeric( strIdDirectory ) )
225 {
226 String strIdDirectoryRecord = listIdsDirectoryRecord[0];
227 int nIdDirectoryRecord = DirectoryUtils.convertStringToInt( strIdDirectoryRecord );
228 Record record = _manageZipBasketService.getRecord( nIdDirectoryRecord );
229
230 if ( record != null )
231 {
232 strIdDirectory = Integer.toString( record.getDirectory( ).getIdDirectory( ) );
233 }
234 }
235
236 if ( !RBACService.isAuthorized( Directory.RESOURCE_TYPE, strIdDirectory,
237 DirectoryPDFProducerArchiveResourceIdService.PERMISSION_GENERATE_ZIP, getUser( ) ) ||
238 StringUtils.isBlank( strIdDirectory ) || !StringUtils.isNumeric( strIdDirectory ) )
239 {
240 return AdminMessageService.getMessageUrl( request, Messages.USER_ACCESS_DENIED,
241 AdminMessage.TYPE_CONFIRMATION );
242 }
243
244 int nIdDirectory = DirectoryUtils.convertStringToInt( strIdDirectory );
245 UrlItem url = new UrlItem( JSP_DO_ADD_ZIP_TO_BASKET );
246 url.addParameter( PARAMETER_ID_DIRECTORY, nIdDirectory );
247
248 for ( String strIdDirectoryRecord : listIdsDirectoryRecord )
249 {
250 int nIdDirectoryRecord = DirectoryUtils.convertStringToInt( strIdDirectoryRecord );
251 Record record = _manageZipBasketService.getRecord( nIdDirectoryRecord );
252
253 if ( ( record == null ) || ( record.getDirectory( ).getIdDirectory( ) != nIdDirectory ) )
254 {
255 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
256 }
257
258 url.addParameter( PARAMETER_ID_DIRECTORY_RECORD, nIdDirectoryRecord );
259 }
260
261 return AdminMessageService.getMessageUrl( request, MESSAGE_CONFIRM_ADD_ZIP_TO_BASKET, url.getUrl( ),
262 AdminMessage.TYPE_CONFIRMATION );
263 }
264
265 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
266 }
267
268
269
270
271
272
273
274 public String addZipToBasket( HttpServletRequest request )
275 throws AccessDeniedException
276 {
277 String strIdDirectory = request.getParameter( PARAMETER_ID_DIRECTORY );
278
279 if ( !RBACService.isAuthorized( Directory.RESOURCE_TYPE, strIdDirectory,
280 DirectoryPDFProducerArchiveResourceIdService.PERMISSION_GENERATE_ZIP, getUser( ) ) )
281 {
282 return AdminMessageService.getMessageUrl( request, Messages.USER_ACCESS_DENIED,
283 AdminMessage.TYPE_CONFIRMATION );
284 }
285
286 String[] listIdsRecord = request.getParameterValues( PARAMETER_ID_DIRECTORY_RECORD );
287
288
289 if ( ( listIdsRecord == null ) || ( listIdsRecord.length == 0 ) || StringUtils.isBlank( strIdDirectory ) )
290 {
291 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
292 }
293
294
295 int nIdDirectory = DirectoryUtils.convertStringToInt( strIdDirectory );
296
297 ZipItem item = new ZipItem( );
298 item.setIdAdminUser( getUser( ).getUserId( ) );
299 item.setIdDirectory( nIdDirectory );
300 item.setListIdRecord( listIdsRecord );
301 item.setLocale( AdminUserService.getLocale( request ) );
302
303 AddZipToBasketDaemon.addItemToQueue( item );
304
305 UrlItem url = new UrlItem( getJspManageDirectoryRecord( request, nIdDirectory ) );
306 return AdminMessageService.getMessageUrl( request, MESSAGE_ADD_ZIP_TO_BASKET, url.getUrl( ),
307 AdminMessage.TYPE_INFO );
308 }
309
310
311
312
313
314
315 public String getConfirmRemoveZipBasket( HttpServletRequest request )
316 {
317 String strIdDirectory = request.getParameter( PARAMETER_ID_DIRECTORY );
318
319 if ( !RBACService.isAuthorized( Directory.RESOURCE_TYPE, strIdDirectory,
320 DirectoryPDFProducerArchiveResourceIdService.PERMISSION_DELETE_ZIP, getUser( ) ) )
321 {
322 return AdminMessageService.getMessageUrl( request, Messages.USER_ACCESS_DENIED,
323 AdminMessage.TYPE_CONFIRMATION );
324 }
325
326 String strIdZipBasket = request.getParameter( PARAMETER_ID_ZIPBASKET );
327 String strIdRecord = request.getParameter( PARAMETER_ID_DIRECTORY_RECORD );
328
329 UrlItem url = new UrlItem( JSP_DO_REMOVE_ZIP_TO_BASKET );
330 url.addParameter( PARAMETER_ID_ZIPBASKET, strIdZipBasket );
331 url.addParameter( PARAMETER_ID_DIRECTORY, strIdDirectory );
332 url.addParameter( PARAMETER_ID_DIRECTORY_RECORD, strIdRecord );
333
334 return AdminMessageService.getMessageUrl( request, MESSAGE_CONFIRM_REMOVE_ZIP_TO_BASKET, url.getUrl( ),
335 AdminMessage.TYPE_CONFIRMATION );
336 }
337
338
339
340
341
342
343 public String removeZipToBasket( HttpServletRequest request )
344 {
345 String strIdDirectory = request.getParameter( PARAMETER_ID_DIRECTORY );
346
347 if ( !RBACService.isAuthorized( Directory.RESOURCE_TYPE, strIdDirectory,
348 DirectoryPDFProducerArchiveResourceIdService.PERMISSION_DELETE_ZIP, getUser( ) ) )
349 {
350 return AdminMessageService.getMessageUrl( request, Messages.USER_ACCESS_DENIED,
351 AdminMessage.TYPE_CONFIRMATION );
352 }
353
354 String strIdZipBasket = request.getParameter( PARAMETER_ID_ZIPBASKET );
355 String strIdRecord = request.getParameter( PARAMETER_ID_DIRECTORY_RECORD );
356
357 int nIdDirectory = DirectoryUtils.convertStringToInt( strIdDirectory );
358
359 UrlItem url = new UrlItem( JSP_MANAGE_ZIPBASKET );
360 url.addParameter( PARAMETER_ID_DIRECTORY, nIdDirectory );
361
362 int nIdAdminUser = getUser( ).getUserId( );
363 boolean bAllExportAlreadyExists = _manageZipBasketService.existsZipBasket( nIdAdminUser, getPlugin( ),
364 nIdDirectory, -1 );
365
366 if ( ( DirectoryUtils.convertStringToInt( strIdRecord ) == DirectoryUtils.CONSTANT_ID_NULL ) ||
367 !bAllExportAlreadyExists )
368 {
369 if ( _manageZipBasketService.deleteZipBasket( getPlugin( ),
370 DirectoryUtils.convertStringToInt( strIdZipBasket ), strIdRecord ) )
371 {
372 return AdminMessageService.getMessageUrl( request, MESSAGE_REMOVE_ZIP_TO_BASKET, url.getUrl( ),
373 AdminMessage.TYPE_INFO );
374 }
375
376 return AdminMessageService.getMessageUrl( request, MESSAGE_ERROR_REMOVE_ZIP_TO_BASKET, url.getUrl( ),
377 AdminMessage.TYPE_STOP );
378 }
379
380 return AdminMessageService.getMessageUrl( request, MESSAGE_ERROR_REMOVE_ZIP_TO_BASKET_ALLEXPORT,
381 url.getUrl( ), AdminMessage.TYPE_STOP );
382 }
383
384
385
386
387
388
389 public String getConfirmExportAllZipBasket( HttpServletRequest request )
390 {
391 String strIdDirectory = request.getParameter( PARAMETER_ID_DIRECTORY );
392
393 if ( !RBACService.isAuthorized( Directory.RESOURCE_TYPE, strIdDirectory,
394 DirectoryPDFProducerArchiveResourceIdService.PERMISSION_GENERATE_ZIP, getUser( ) ) )
395 {
396 return AdminMessageService.getMessageUrl( request, Messages.USER_ACCESS_DENIED,
397 AdminMessage.TYPE_CONFIRMATION );
398 }
399
400 UrlItem url = new UrlItem( JSP_DO_EXPORT_ALL_ZIP );
401 url.addParameter( PARAMETER_ID_DIRECTORY, DirectoryUtils.convertStringToInt( strIdDirectory ) );
402
403 return AdminMessageService.getMessageUrl( request, MESSAGE_CONFIRM_EXPORT_ALL_ZIP, url.getUrl( ),
404 AdminMessage.TYPE_CONFIRMATION );
405 }
406
407
408
409
410
411
412 public String exportAllZipBasket( HttpServletRequest request )
413 {
414 String strIdDirectory = request.getParameter( PARAMETER_ID_DIRECTORY );
415
416 if ( !RBACService.isAuthorized( Directory.RESOURCE_TYPE, strIdDirectory,
417 DirectoryPDFProducerArchiveResourceIdService.PERMISSION_GENERATE_ZIP, getUser( ) ) )
418 {
419 return AdminMessageService.getMessageUrl( request, Messages.USER_ACCESS_DENIED,
420 AdminMessage.TYPE_CONFIRMATION );
421 }
422
423 List<ZipBasket> listZipBasket = _manageZipBasketService.loadAllZipBasketByAdminUser( getPlugin( ),
424 getUser( ).getUserId( ), DirectoryUtils.convertStringToInt( strIdDirectory ) );
425
426 boolean bCheckAllFileZipped = true;
427
428 for ( ZipBasket zipBasket : listZipBasket )
429 {
430 if ( !StatusZipEnum.FINISHED.getId( ).equals( zipBasket.getZipStatus( ) ) )
431 {
432 bCheckAllFileZipped = false;
433 }
434 }
435
436 UrlItem url = new UrlItem( JSP_MANAGE_ZIPBASKET );
437 url.addParameter( PARAMETER_ID_DIRECTORY, DirectoryUtils.convertStringToInt( strIdDirectory ) );
438
439 int nIdDirectory = DirectoryUtils.convertStringToInt( strIdDirectory );
440 int nIdAdminUser = getUser( ).getUserId( );
441 boolean bAllExportAlreadyExists = _manageZipBasketService.existsZipBasket( nIdAdminUser, getPlugin( ),
442 nIdDirectory, -1 );
443
444 if ( bCheckAllFileZipped && !bAllExportAlreadyExists && ( nIdDirectory != DirectoryUtils.CONSTANT_ID_NULL ) )
445 {
446 Directory directory = _manageZipBasketService.getDirectory( nIdDirectory );
447
448 String strName = StringUtil.replaceAccent( directory.getTitle( ) ).replace( " ", "_" );
449
450 _manageZipBasketService.exportAllZipFile( strName, nIdAdminUser, getPlugin( ), nIdDirectory );
451
452 return AdminMessageService.getMessageUrl( request, MESSAGE_EXPORT_ALL_ZIP, url.getUrl( ),
453 AdminMessage.TYPE_INFO );
454 }
455 else if ( bAllExportAlreadyExists )
456 {
457 return AdminMessageService.getMessageUrl( request, MESSAGE_EXPORT_ALL_ZIP_ALREADY_EXISTS, url.getUrl( ),
458 AdminMessage.TYPE_STOP );
459 }
460 else
461 {
462 return AdminMessageService.getMessageUrl( request, MESSAGE_ERROR_EXPORT_ALL_ZIP, url.getUrl( ),
463 AdminMessage.TYPE_STOP );
464 }
465 }
466
467
468
469
470
471
472 public String getConfirmRemoveAllZipBasket( HttpServletRequest request )
473 {
474 String strIdDirectory = request.getParameter( PARAMETER_ID_DIRECTORY );
475
476 if ( !RBACService.isAuthorized( Directory.RESOURCE_TYPE, strIdDirectory,
477 DirectoryPDFProducerArchiveResourceIdService.PERMISSION_GENERATE_ZIP, getUser( ) ) )
478 {
479 return AdminMessageService.getMessageUrl( request, Messages.USER_ACCESS_DENIED,
480 AdminMessage.TYPE_CONFIRMATION );
481 }
482
483 UrlItem url = new UrlItem( JSP_DO_REMOVE_ALL_ZIP );
484 url.addParameter( PARAMETER_ID_DIRECTORY, DirectoryUtils.convertStringToInt( strIdDirectory ) );
485
486 return AdminMessageService.getMessageUrl( request, MESSAGE_CONFIRM_REMOVE_ALL_ZIP, url.getUrl( ),
487 AdminMessage.TYPE_CONFIRMATION );
488 }
489
490
491
492
493
494
495 public String removeAllZip( HttpServletRequest request )
496 {
497 String strIdDirectory = request.getParameter( PARAMETER_ID_DIRECTORY );
498
499 if ( !RBACService.isAuthorized( Directory.RESOURCE_TYPE, strIdDirectory,
500 DirectoryPDFProducerArchiveResourceIdService.PERMISSION_DELETE_ZIP, getUser( ) ) )
501 {
502 return AdminMessageService.getMessageUrl( request, Messages.USER_ACCESS_DENIED,
503 AdminMessage.TYPE_CONFIRMATION );
504 }
505
506 int nIdDirectory = DirectoryUtils.convertStringToInt( strIdDirectory );
507 int nIdAdminUser = getUser( ).getUserId( );
508
509 if ( nIdDirectory != DirectoryUtils.CONSTANT_ID_NULL )
510 {
511 UrlItem url = new UrlItem( JSP_MANAGE_ZIPBASKET );
512 url.addParameter( PARAMETER_ID_DIRECTORY, nIdDirectory );
513
514 if ( _manageZipBasketService.deleteAllZipBasket( getPlugin( ), nIdDirectory, nIdAdminUser ) )
515 {
516 return AdminMessageService.getMessageUrl( request, MESSAGE_REMOVE_ALL_ZIP, url.getUrl( ),
517 AdminMessage.TYPE_INFO );
518 }
519
520 return AdminMessageService.getMessageUrl( request, MESSAGE_ERROR_REMOVE_ALL_ZIP, url.getUrl( ),
521 AdminMessage.TYPE_STOP );
522 }
523
524 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
525 }
526
527
528
529
530
531
532
533 private String getJspManageDirectoryRecord( HttpServletRequest request, int nIdDirectory )
534 {
535 return AppPathService.getBaseUrl( request ) + JSP_MANAGE_DIRECTORY_RECORD + "?" + PARAMETER_ID_DIRECTORY + "=" +
536 nIdDirectory + "&" + PARAMETER_SESSION + "=" + PARAMETER_SESSION;
537 }
538
539 private String getLabelTimeBeforeNextDaemonPassage( String strI18nKeyWait, String strI18nKeyDaemonRunning,
540 HttpServletRequest request, String strDaemonId )
541 {
542 DaemonEntry daemonEntry = null;
543 Collection<DaemonEntry> listDaemonEntries = AppDaemonService.getDaemonEntries( );
544 if ( listDaemonEntries != null && listDaemonEntries.size( ) > 0 )
545 {
546 for ( DaemonEntry entry : listDaemonEntries )
547 {
548 if ( StringUtils.equals( entry.getId( ), strDaemonId ) )
549 {
550 daemonEntry = entry;
551 }
552 }
553 Locale locale = AdminUserService.getLocale( request );
554
555
556 SimpleDateFormat formatterDateTime = new SimpleDateFormat( "dd'/'MM'/'yyyy' 'HH':'mm", Locale.FRANCE );
557 Date dateLastRun;
558 try
559 {
560 dateLastRun = formatterDateTime.parse( daemonEntry.getLastRunDate( ) );
561 }
562 catch ( ParseException e )
563 {
564 dateLastRun = null;
565 }
566 if ( dateLastRun != null )
567 {
568 String strLabelNextDaemonPass = StringUtils.EMPTY;
569 Date currentDate = new Date( );
570 long lTimbeBeforeNextPassage = daemonEntry.getInterval( ) * 1000l
571 - ( currentDate.getTime( ) - dateLastRun.getTime( ) );
572 if ( lTimbeBeforeNextPassage > 0 )
573 {
574 int nHours = (int) lTimbeBeforeNextPassage / 3600000;
575 lTimbeBeforeNextPassage = lTimbeBeforeNextPassage % 3600000;
576 int nMinutes = (int) lTimbeBeforeNextPassage / 60000;
577 lTimbeBeforeNextPassage = lTimbeBeforeNextPassage % 60000;
578 int nSeconds = (int) lTimbeBeforeNextPassage / 1000;
579 Object[] args = { Integer.toString( nHours ), Integer.toString( nMinutes ),
580 Integer.toString( nSeconds ) };
581 strLabelNextDaemonPass = I18nService.getLocalizedString( strI18nKeyWait, args, locale );
582 }
583 else
584 {
585 strLabelNextDaemonPass = I18nService.getLocalizedString( strI18nKeyDaemonRunning, locale );
586 }
587 return strLabelNextDaemonPass;
588 }
589 }
590 return null;
591 }
592 }