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.dila.web;
35
36 import java.util.ArrayList;
37 import java.util.Collections;
38 import java.util.HashMap;
39 import java.util.List;
40 import java.util.Map;
41
42 import javax.servlet.http.HttpServletRequest;
43
44 import org.apache.commons.lang.StringUtils;
45
46 import fr.paris.lutece.plugins.dila.business.donneescomplementaires.dto.ComplementaryDataDTO;
47 import fr.paris.lutece.plugins.dila.business.donneescomplementaires.dto.ComplementaryDataLearnMoreDTO;
48 import fr.paris.lutece.plugins.dila.business.donneescomplementaires.dto.ComplementaryDataLinkDTO;
49 import fr.paris.lutece.plugins.dila.business.donneescomplementaires.dto.ComplementaryDataTeleserviceDTO;
50 import fr.paris.lutece.plugins.dila.business.enums.ActionTypeEnum;
51 import fr.paris.lutece.plugins.dila.business.enums.ComplementaryLinkTypeEnum;
52 import fr.paris.lutece.plugins.dila.business.enums.ResourceTypeEnum;
53 import fr.paris.lutece.plugins.dila.business.fichelocale.dto.AudienceDTO;
54 import fr.paris.lutece.plugins.dila.business.fichelocale.dto.XmlDTO;
55 import fr.paris.lutece.plugins.dila.service.IDilaAudienceService;
56 import fr.paris.lutece.plugins.dila.service.IDilaComplementaryDataLinkService;
57 import fr.paris.lutece.plugins.dila.service.IDilaComplementaryDataService;
58 import fr.paris.lutece.plugins.dila.service.IDilaXmlService;
59 import fr.paris.lutece.plugins.dila.utils.ListUtils;
60 import fr.paris.lutece.plugins.dila.utils.constants.DilaConstants;
61 import fr.paris.lutece.portal.service.admin.AccessDeniedException;
62 import fr.paris.lutece.portal.service.message.AdminMessage;
63 import fr.paris.lutece.portal.service.message.AdminMessageService;
64 import fr.paris.lutece.portal.service.spring.SpringContextService;
65 import fr.paris.lutece.portal.service.template.AppTemplateService;
66 import fr.paris.lutece.portal.service.util.AppPathService;
67 import fr.paris.lutece.portal.service.util.AppPropertiesService;
68 import fr.paris.lutece.portal.web.admin.PluginAdminPageJspBean;
69 import fr.paris.lutece.portal.web.constants.Parameters;
70 import fr.paris.lutece.portal.web.pluginaction.DefaultPluginActionResult;
71 import fr.paris.lutece.portal.web.pluginaction.IPluginActionResult;
72 import fr.paris.lutece.portal.web.util.LocalizedPaginator;
73 import fr.paris.lutece.util.ReferenceList;
74 import fr.paris.lutece.util.html.HtmlTemplate;
75 import fr.paris.lutece.util.html.Paginator;
76 import fr.paris.lutece.util.sort.AttributeComparator;
77
78
79
80
81
82 public class ComplementaryDataJspBean extends PluginAdminPageJspBean
83 {
84
85 public static final String RIGHT_MANAGE_COMPLEMENTARY_DATA = "DILA_COMPLEMENTARY_DATA_MANAGEMENT";
86
87
88 private static final long serialVersionUID = -1328940389092455815L;
89
90
91 private static final String TEMPLATE_MANAGE_COMPLEMENTARY_DATA = "admin/plugins/dila/manage_donnee-complementaire.html";
92 private static final String TEMPLATE_CREATE_COMPLEMENTARY_DATA = "admin/plugins/dila/create_donnee-complementaire.html";
93 private static final String TEMPLATE_MODIFY_COMPLEMENTARY_DATA = "admin/plugins/dila/modify_donnee-complementaire.html";
94
95
96 private static final String JSP_MANAGE_COMPLEMENTARY_DATA = "ManageComplementaryData.jsp";
97
98
99 private static final String PARAMETER_TELESERVICE_ID = "id_teleservice";
100 private static final String PARAMETER_LINK_ID = "id_lien";
101
102
103 private static final String MARK_COMPLEMENTARY_DATA = "donneesComplementaires";
104 private static final String MARK_TELESERVICE_LIST = "list_teleservices";
105 private static final String MARK_LINK_LIST = "list_liens";
106 private static final String MARK_AUDIENCE = "audiences";
107 private static final String MARK_WEBAPP_URL = "webapp_url";
108 private static final String MARK_LOCALE = "locale";
109
110
111 private ComplementaryDataDTO _complementaryData;
112 private String _strAction;
113
114
115 private int _nItemsPerPage;
116 private int _nDefaultItemsPerPage;
117 private String _strCurrentPageIndex;
118 private IDilaComplementaryDataService _dilaComplementaryDataService = SpringContextService
119 .getBean( "dilaComplementaryDataService" );
120 private IDilaComplementaryDataLinkService _dilaComplementaryDataLinkService = SpringContextService
121 .getBean( "dilaComplementaryDataLinkService" );
122 private IDilaXmlService _dilaXmlService = SpringContextService.getBean( "dilaXmlService" );
123 private IDilaAudienceService _dilaAudienceService = SpringContextService.getBean( "dilaAudienceService" );
124
125
126
127
128
129
130 public String getManageComplementaryData( HttpServletRequest request )
131 {
132 Map<String, Object> model = new HashMap<String, Object>( );
133 String strId = request.getParameter( DilaConstants.MARK_ID );
134 String strDataName = request.getParameter( DilaConstants.MARK_NAME );
135
136
137 List<ComplementaryDataDTO> listComplementaryData = _dilaComplementaryDataService.findAll( );
138 List<ComplementaryDataDTO> listToDisplay = filtrer( listComplementaryData, strDataName, strId );
139
140
141 String strSortedAttributeName = request.getParameter( Parameters.SORTED_ATTRIBUTE_NAME );
142 String strAscSort = null;
143
144 if ( strSortedAttributeName != null )
145 {
146 strAscSort = request.getParameter( Parameters.SORTED_ASC );
147
148 boolean bIsAscSort = Boolean.parseBoolean( strAscSort );
149
150 Collections.sort( listToDisplay, new AttributeComparator( strSortedAttributeName, bIsAscSort ) );
151 }
152
153 _nDefaultItemsPerPage = AppPropertiesService.getPropertyInt( DilaConstants.PROPERTY_STYLESHEETS_PER_PAGE, 50 );
154 _strCurrentPageIndex = Paginator.getPageIndex( request, Paginator.PARAMETER_PAGE_INDEX, _strCurrentPageIndex );
155 _nItemsPerPage = Paginator.getItemsPerPage( request, Paginator.PARAMETER_ITEMS_PER_PAGE, _nItemsPerPage,
156 _nDefaultItemsPerPage );
157
158 String strURL = getHomeUrl( request );
159
160 if ( strSortedAttributeName != null )
161 {
162 strURL += ( "?" + Parameters.SORTED_ATTRIBUTE_NAME + "=" + strSortedAttributeName );
163 }
164
165 if ( strAscSort != null )
166 {
167 strURL += ( "&" + Parameters.SORTED_ASC + "=" + strAscSort );
168 }
169
170 LocalizedPaginator<ComplementaryDataDTO> paginator = new LocalizedPaginator<ComplementaryDataDTO>(
171 listToDisplay, _nItemsPerPage, strURL, Paginator.PARAMETER_PAGE_INDEX, _strCurrentPageIndex,
172 getLocale( ) );
173
174 model.put( DilaConstants.MARK_NB_ITEMS_PER_PAGE, "" + _nItemsPerPage );
175 model.put( DilaConstants.MARK_PAGINATOR, paginator );
176 model.put( DilaConstants.MARK_COMP_DATA_LIST, paginator.getPageItems( ) );
177 model.put( DilaConstants.MARK_ID, strId );
178 model.put( DilaConstants.MARK_NAME, strDataName );
179
180 HtmlTemplate templateList = AppTemplateService.getTemplate( TEMPLATE_MANAGE_COMPLEMENTARY_DATA, getLocale( ),
181 model );
182
183 return getAdminPage( templateList.getHtml( ) );
184 }
185
186
187
188
189
190
191 public String getCreateComplementaryData( HttpServletRequest request )
192 {
193 _strAction = ActionTypeEnum.CREATE.getValue( );
194
195 Map<String, Object> model = new HashMap<String, Object>( );
196
197 _complementaryData = new ComplementaryDataDTO( );
198
199 List<ComplementaryDataTeleserviceDTO> listTeleservice = new ArrayList<ComplementaryDataTeleserviceDTO>( );
200 List<ComplementaryDataLearnMoreDTO> listLink = new ArrayList<ComplementaryDataLearnMoreDTO>( );
201
202 model.put( MARK_COMPLEMENTARY_DATA, _complementaryData );
203 model.put( MARK_TELESERVICE_LIST, listTeleservice );
204 model.put( PARAMETER_TELESERVICE_ID, 0 );
205 model.put( MARK_LINK_LIST, listLink );
206 model.put( PARAMETER_LINK_ID, 0 );
207 setDataInModel( request, model );
208
209 HtmlTemplate templateList = AppTemplateService.getTemplate( TEMPLATE_CREATE_COMPLEMENTARY_DATA, getLocale( ),
210 model );
211
212 return getAdminPage( templateList.getHtml( ) );
213 }
214
215
216
217
218
219
220 public String getModifyComplementaryData( HttpServletRequest request )
221 {
222 _strAction = ActionTypeEnum.MODIFY.getValue( );
223
224 String idComplementaryData = request.getParameter( DilaConstants.MARK_ID );
225
226 if ( StringUtils.isEmpty( idComplementaryData ) || !StringUtils.isNumeric( idComplementaryData ) )
227 {
228 return AdminMessageService.getMessageUrl( request, DilaConstants.MESSAGE_ERROR_OCCUR,
229 AdminMessage.TYPE_STOP );
230 }
231
232 _complementaryData = _dilaComplementaryDataService.findById( Long.valueOf( idComplementaryData ) );
233
234 if ( _complementaryData == null )
235 {
236 return AdminMessageService.getMessageUrl( request, DilaConstants.MESSAGE_ERROR_OCCUR,
237 AdminMessage.TYPE_STOP );
238 }
239
240
241 verifyCard( _complementaryData.getCard( ).getIdXml( ) );
242
243 Map<String, Object> model = new HashMap<String, Object>( );
244
245 List<ComplementaryDataLinkDTO> listTeleservice = _dilaComplementaryDataLinkService.findByDataId(
246 Long.valueOf( idComplementaryData ), ComplementaryLinkTypeEnum.TELESERVICE );
247 List<ComplementaryDataLinkDTO> listLink = _dilaComplementaryDataLinkService.findByDataId(
248 Long.valueOf( idComplementaryData ), ComplementaryLinkTypeEnum.LEARN_MORE );
249
250 model.put( MARK_COMPLEMENTARY_DATA, _complementaryData );
251 model.put( MARK_TELESERVICE_LIST, listTeleservice );
252 model.put( PARAMETER_TELESERVICE_ID, listTeleservice.size( ) );
253 model.put( MARK_LINK_LIST, listLink );
254 model.put( PARAMETER_LINK_ID, listLink.size( ) );
255 setDataInModel( request, model );
256
257 HtmlTemplate templateList = AppTemplateService.getTemplate( TEMPLATE_MODIFY_COMPLEMENTARY_DATA, getLocale( ),
258 model );
259
260 return getAdminPage( templateList.getHtml( ) );
261 }
262
263
264
265
266
267
268
269 public String getDeleteComplementaryData( HttpServletRequest request ) throws AccessDeniedException
270 {
271 String id = request.getParameter( DilaConstants.MARK_ID );
272
273 if ( StringUtils.isEmpty( id ) )
274 {
275 return AdminMessageService.getMessageUrl( request, DilaConstants.MESSAGE_ERROR_OCCUR,
276 AdminMessage.TYPE_STOP );
277 }
278
279 Map<String, Object> urlParam = new HashMap<String, Object>( );
280 urlParam.put( DilaConstants.MARK_ID, id );
281
282 return AdminMessageService.getMessageUrl( request, DilaConstants.MESSAGE_CONFIRMATION_DELETE_DONNEE, null,
283 DilaConstants.MESSAGE_TITLE_DELETE_DONNEE, DilaConstants.JSP_DELETE_DONNEE, "_self",
284 AdminMessage.TYPE_CONFIRMATION, urlParam, DilaConstants.JSP_MANAGE_DONNEES );
285 }
286
287
288
289
290
291
292 public String doAddTeleservice( HttpServletRequest request )
293 {
294 Integer nbTeleservice = Integer.valueOf( request.getParameter( PARAMETER_TELESERVICE_ID ) );
295 Map<String, Object> model = new HashMap<String, Object>( );
296
297 populate( _complementaryData, request );
298
299 List<ComplementaryDataLinkDTO> teleservices = getExistingTeleservices( request );
300 List<ComplementaryDataLinkDTO> links = getExistingLinks( request );
301
302 ComplementaryDataTeleserviceDTO teleservice = new ComplementaryDataTeleserviceDTO( );
303 teleservice.setPosition( nbTeleservice + 1 );
304 teleservices.add( teleservice );
305
306 model.put( MARK_COMPLEMENTARY_DATA, _complementaryData );
307 model.put( PARAMETER_TELESERVICE_ID, nbTeleservice + 1 );
308 model.put( MARK_TELESERVICE_LIST, teleservices );
309 model.put( PARAMETER_LINK_ID, links.size( ) );
310 model.put( MARK_LINK_LIST, links );
311 setDataInModel( request, model );
312
313 return getAdminPage( getTemplate( model ) );
314 }
315
316
317
318
319
320
321 public String doDeleteTeleservice( HttpServletRequest request )
322 {
323 Integer nbTeleservice = Integer.valueOf( request.getParameter( PARAMETER_TELESERVICE_ID ) );
324 Map<String, Object> model = new HashMap<String, Object>( );
325
326 populate( _complementaryData, request );
327
328 List<ComplementaryDataLinkDTO> teleservices = getExistingTeleservices( request );
329 List<ComplementaryDataLinkDTO> links = getExistingLinks( request );
330 teleservices.remove( teleservices.size( ) - 1 );
331
332 model.put( MARK_COMPLEMENTARY_DATA, _complementaryData );
333 model.put( PARAMETER_TELESERVICE_ID, nbTeleservice - 1 );
334 model.put( MARK_TELESERVICE_LIST, teleservices );
335 model.put( PARAMETER_LINK_ID, links.size( ) );
336 model.put( MARK_LINK_LIST, links );
337 setDataInModel( request, model );
338
339 return getAdminPage( getTemplate( model ) );
340 }
341
342
343
344
345
346
347 public String doAddLink( HttpServletRequest request )
348 {
349 Integer nbLink = Integer.valueOf( request.getParameter( PARAMETER_LINK_ID ) );
350 Map<String, Object> model = new HashMap<String, Object>( );
351
352 populate( _complementaryData, request );
353
354 List<ComplementaryDataLinkDTO> liens = getExistingLinks( request );
355 List<ComplementaryDataLinkDTO> teleservices = getExistingTeleservices( request );
356
357 ComplementaryDataLearnMoreDTO lien = new ComplementaryDataLearnMoreDTO( );
358 lien.setPosition( nbLink + 1 );
359 liens.add( lien );
360
361 model.put( MARK_COMPLEMENTARY_DATA, _complementaryData );
362 model.put( PARAMETER_TELESERVICE_ID, teleservices.size( ) );
363 model.put( MARK_TELESERVICE_LIST, teleservices );
364 model.put( PARAMETER_LINK_ID, nbLink + 1 );
365 model.put( MARK_LINK_LIST, liens );
366 setDataInModel( request, model );
367
368 return getAdminPage( getTemplate( model ) );
369 }
370
371
372
373
374
375
376 public String doDeleteLink( HttpServletRequest request )
377 {
378 Integer nbLink = Integer.valueOf( request.getParameter( PARAMETER_LINK_ID ) );
379 Map<String, Object> model = new HashMap<String, Object>( );
380
381 populate( _complementaryData, request );
382
383 List<ComplementaryDataLinkDTO> links = getExistingLinks( request );
384 List<ComplementaryDataLinkDTO> teleservices = getExistingTeleservices( request );
385 links.remove( links.size( ) - 1 );
386
387 model.put( MARK_COMPLEMENTARY_DATA, _complementaryData );
388 model.put( PARAMETER_TELESERVICE_ID, teleservices.size( ) );
389 model.put( MARK_TELESERVICE_LIST, teleservices );
390 model.put( PARAMETER_LINK_ID, nbLink - 1 );
391 model.put( MARK_LINK_LIST, links );
392 setDataInModel( request, model );
393
394 return getAdminPage( getTemplate( model ) );
395 }
396
397
398
399
400
401
402 public IPluginActionResult doVerifyCard( HttpServletRequest request )
403 {
404 populate( _complementaryData, request );
405
406 IPluginActionResult result = new DefaultPluginActionResult( );
407 HashMap<String, Object> model = new HashMap<String, Object>( );
408
409 String errorKey = verifyCard( _complementaryData.getCard( ).getIdXml( ) );
410
411 if ( errorKey != null )
412 {
413
414 result.setRedirect( AdminMessageService.getMessageUrl( request, errorKey, AdminMessage.TYPE_STOP ) );
415 }
416 else
417 {
418
419 List<ComplementaryDataLinkDTO> teleservices = getExistingTeleservices( request );
420 List<ComplementaryDataLinkDTO> links = getExistingLinks( request );
421
422 model.put( MARK_COMPLEMENTARY_DATA, _complementaryData );
423 model.put( MARK_TELESERVICE_LIST, teleservices );
424 model.put( PARAMETER_TELESERVICE_ID, teleservices.size( ) );
425 model.put( PARAMETER_LINK_ID, links.size( ) );
426 model.put( MARK_LINK_LIST, links );
427 setDataInModel( request, model );
428
429 HtmlTemplate templateList;
430 templateList = AppTemplateService.getTemplate( TEMPLATE_CREATE_COMPLEMENTARY_DATA, getLocale( ), model );
431 result.setHtmlContent( getAdminPage( templateList.getHtml( ) ) );
432 }
433
434 return result;
435 }
436
437
438
439
440
441
442 public String doCreateComplementaryData( HttpServletRequest request )
443 {
444 String result = null;
445 populate( _complementaryData, request );
446
447 List<ComplementaryDataLinkDTO> teleservices = getExistingTeleservices( request );
448 List<ComplementaryDataLinkDTO> links = getExistingLinks( request );
449
450 String errorKeyCard = verifyCard( _complementaryData.getCard( ).getIdXml( ) );
451 String errorKeyTeleservice = validateLinks( teleservices );
452 String errorKeyLinks = validateLinks( links );
453
454 if ( StringUtils.isNotBlank( errorKeyCard ) )
455 {
456 result = AdminMessageService.getMessageUrl( request, errorKeyCard, AdminMessage.TYPE_STOP );
457 }
458 else if ( StringUtils.isNotBlank( errorKeyTeleservice ) )
459 {
460 result = AdminMessageService.getMessageUrl( request, errorKeyTeleservice, AdminMessage.TYPE_STOP );
461 }
462 else if ( StringUtils.isNotBlank( errorKeyLinks ) )
463 {
464 result = AdminMessageService.getMessageUrl( request, errorKeyLinks, AdminMessage.TYPE_STOP );
465 }
466
467 if ( result != null )
468 {
469
470 return result;
471 }
472
473 Long id = _dilaComplementaryDataService.create( _complementaryData );
474
475 for ( ComplementaryDataLinkDTO teleservice : teleservices )
476 {
477 teleservice.setIdComplementaryData( id );
478 _dilaComplementaryDataLinkService.create( teleservice );
479 }
480
481 for ( ComplementaryDataLinkDTO link : links )
482 {
483 link.setIdComplementaryData( id );
484 _dilaComplementaryDataLinkService.create( link );
485 }
486
487 return JSP_MANAGE_COMPLEMENTARY_DATA;
488 }
489
490
491
492
493
494
495 public String doModifyComplementaryData( HttpServletRequest request )
496 {
497 String result = null;
498
499 populate( _complementaryData, request );
500
501 List<ComplementaryDataLinkDTO> teleservices = getExistingTeleservices( request );
502 List<ComplementaryDataLinkDTO> links = getExistingLinks( request );
503
504 String errorKeyTeleservice = validateLinks( teleservices );
505 String errorKeyLinks = validateLinks( links );
506
507 if ( StringUtils.isNotBlank( errorKeyTeleservice ) )
508 {
509 result = AdminMessageService.getMessageUrl( request, errorKeyTeleservice, AdminMessage.TYPE_STOP );
510 }
511 else if ( StringUtils.isNotBlank( errorKeyLinks ) )
512 {
513 result = AdminMessageService.getMessageUrl( request, errorKeyLinks, AdminMessage.TYPE_STOP );
514 }
515
516 if ( result != null )
517 {
518
519 return result;
520 }
521
522 _dilaComplementaryDataService.update( _complementaryData );
523
524 _dilaComplementaryDataLinkService.deleteFromComplementaryData( _complementaryData.getId( ),
525 ComplementaryLinkTypeEnum.TELESERVICE );
526
527 for ( ComplementaryDataLinkDTO teleservice : teleservices )
528 {
529 teleservice.setIdComplementaryData( _complementaryData.getId( ) );
530 _dilaComplementaryDataLinkService.create( teleservice );
531 }
532
533 _dilaComplementaryDataLinkService.deleteFromComplementaryData( _complementaryData.getId( ),
534 ComplementaryLinkTypeEnum.LEARN_MORE );
535
536 for ( ComplementaryDataLinkDTO link : links )
537 {
538 link.setIdComplementaryData( _complementaryData.getId( ) );
539 _dilaComplementaryDataLinkService.create( link );
540 }
541
542 return JSP_MANAGE_COMPLEMENTARY_DATA;
543 }
544
545
546
547
548
549
550
551 public String doDeleteComplementaryData( HttpServletRequest request ) throws AccessDeniedException
552 {
553 String id = request.getParameter( DilaConstants.MARK_ID );
554
555 if ( StringUtils.isEmpty( id ) || !StringUtils.isNumeric( id ) )
556 {
557 return AdminMessageService.getMessageUrl( request, DilaConstants.MESSAGE_ERROR_OCCUR,
558 AdminMessage.TYPE_STOP );
559 }
560
561 _dilaComplementaryDataLinkService.deleteFromComplementaryData( Long.valueOf( id ),
562 ComplementaryLinkTypeEnum.TELESERVICE );
563 _dilaComplementaryDataLinkService.deleteFromComplementaryData( Long.valueOf( id ),
564 ComplementaryLinkTypeEnum.LEARN_MORE );
565 _dilaComplementaryDataService.delete( Long.valueOf( id ) );
566
567 return AppPathService.getBaseUrl( request ) + DilaConstants.JSP_MANAGE_DONNEES;
568 }
569
570
571
572
573
574
575 private String verifyCard( String id )
576 {
577 String result = null;
578
579 if ( StringUtils.isBlank( _complementaryData.getCard( ).getIdXml( ) )
580 || ( _complementaryData.getCard( ).getIdXml( ).length( ) > 255 ) )
581 {
582 result = "dila.create_donnee.error.ficheFormat";
583 }
584 else if ( _dilaComplementaryDataService.cardHasComplement( _complementaryData.getCard( ).getIdXml( ) ) )
585 {
586 result = "dila.create_donnee.error.ficheExistante";
587 }
588 else
589 {
590 XmlDTO cardLink = null;
591
592 if ( _complementaryData.getCard( ).getIdXml( ).startsWith( "F" ) )
593 {
594
595 List<String> availableTypes = new ArrayList<String>( );
596 availableTypes.add( ResourceTypeEnum.CARD.getLabel( ) );
597
598 cardLink = _dilaXmlService.findByIdAndTypesAndAudience( _complementaryData.getCard( ).getIdXml( ),
599 availableTypes, _complementaryData.getIdAudience( ) );
600 }
601
602 if ( cardLink == null )
603 {
604 result = "dila.create_donnee.error.ficheIntrouvable";
605 }
606 else
607 {
608 _complementaryData.setCard( cardLink );
609 }
610 }
611
612 return result;
613 }
614
615
616
617
618
619
620 private List<ComplementaryDataLinkDTO> getExistingTeleservices( HttpServletRequest request )
621 {
622 Integer nbTeleservice = Integer.valueOf( request.getParameter( PARAMETER_TELESERVICE_ID ) );
623 List<ComplementaryDataLinkDTO> teleservices = new ArrayList<ComplementaryDataLinkDTO>( );
624
625 for ( int i = 1; i <= nbTeleservice; i++ )
626 {
627 String title = request.getParameter( "teleservice_title_" + i );
628 String url = request.getParameter( "teleservice_url_" + i );
629
630 ComplementaryDataTeleserviceDTO teleservice = new ComplementaryDataTeleserviceDTO( );
631 teleservice.setTitle( title );
632 teleservice.setURL( url );
633 teleservice.setPosition( i );
634
635 teleservices.add( teleservice );
636 }
637
638 return teleservices;
639 }
640
641
642
643
644
645
646 private List<ComplementaryDataLinkDTO> getExistingLinks( HttpServletRequest request )
647 {
648 Integer nbLinks = Integer.valueOf( request.getParameter( PARAMETER_LINK_ID ) );
649 List<ComplementaryDataLinkDTO> links = new ArrayList<ComplementaryDataLinkDTO>( );
650
651 for ( int i = 1; i <= nbLinks; i++ )
652 {
653 String title = request.getParameter( "lien_title_" + i );
654 String url = request.getParameter( "lien_url_" + i );
655
656 ComplementaryDataLearnMoreDTO link = new ComplementaryDataLearnMoreDTO( );
657 link.setTitle( title );
658 link.setURL( url );
659 link.setPosition( i );
660
661 links.add( link );
662 }
663
664 return links;
665 }
666
667
668
669
670
671
672 private String validateLinks( List<ComplementaryDataLinkDTO> links )
673 {
674 String result = null;
675
676 for ( ComplementaryDataLinkDTO link : links )
677 {
678 if ( StringUtils.isBlank( link.getTitle( ) ) )
679 {
680 if ( link.getType( ).equals( ComplementaryLinkTypeEnum.TELESERVICE ) )
681 {
682 result = "dila.create_donnee.error.teleserviceTitre";
683 }
684 else
685 {
686 result = "dila.create_donnee.error.lienTitre";
687 }
688
689 break;
690 }
691 else if ( StringUtils.isBlank( link.getURL( ) ) )
692 {
693 if ( link.getType( ).equals( ComplementaryLinkTypeEnum.TELESERVICE ) )
694 {
695 result = "dila.create_donnee.error.teleserviceURL";
696 }
697 else
698 {
699 result = "dila.create_donnee.error.lienURL";
700 }
701
702 break;
703 }
704 }
705
706 return result;
707 }
708
709
710
711
712
713
714
715
716 private List<ComplementaryDataDTO> filtrer( List<ComplementaryDataDTO> listComplementaryData, String strDataName,
717 String strId )
718 {
719 List<ComplementaryDataDTO> result = new ArrayList<ComplementaryDataDTO>( );
720
721 for ( ComplementaryDataDTO data : listComplementaryData )
722 {
723 if ( StringUtils.isNotBlank( strDataName ) && !data.getCard( ).getTitle( ).equals( strDataName ) )
724 {
725 continue;
726 }
727
728 if ( StringUtils.isNotBlank( strId ) && !data.getCard( ).getIdXml( ).equals( strId ) )
729 {
730 continue;
731 }
732
733 result.add( data );
734 }
735
736 return result;
737 }
738
739
740
741
742
743
744 private void setDataInModel( HttpServletRequest request, Map<String, Object> model )
745 {
746 List<AudienceDTO> audienceList = _dilaAudienceService.findAll( );
747 ReferenceList listContentType = ListUtils.toReferenceList( audienceList, "id", "label", null );
748 model.put( MARK_AUDIENCE, listContentType );
749 model.put( MARK_LOCALE, getLocale( ) );
750 model.put( MARK_WEBAPP_URL, AppPathService.getBaseUrl( request ) );
751 }
752
753
754
755
756
757
758 private String getTemplate( Map<String, Object> model )
759 {
760 if ( ActionTypeEnum.CREATE.getValue( ).equals( _strAction ) )
761 {
762 return AppTemplateService.getTemplate( TEMPLATE_CREATE_COMPLEMENTARY_DATA, getLocale( ), model ).getHtml( );
763 }
764 else
765 {
766 return AppTemplateService.getTemplate( TEMPLATE_MODIFY_COMPLEMENTARY_DATA, getLocale( ), model ).getHtml( );
767 }
768 }
769 }