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.document.modules.calendar.service;
35
36 import fr.paris.lutece.plugins.calendar.business.CalendarHome;
37 import fr.paris.lutece.plugins.calendar.service.AgendaResource;
38 import fr.paris.lutece.plugins.calendar.service.CalendarPlugin;
39 import fr.paris.lutece.plugins.calendar.service.CalendarResourceIdService;
40 import fr.paris.lutece.plugins.calendar.web.CalendarJspBean;
41 import fr.paris.lutece.plugins.document.business.Document;
42 import fr.paris.lutece.plugins.document.business.workflow.DocumentAction;
43 import fr.paris.lutece.plugins.document.modules.calendar.business.MappingHome;
44 import fr.paris.lutece.plugins.document.modules.calendar.web.DocumentToCalendarJspBean;
45 import fr.paris.lutece.plugins.document.service.IDocumentActionsService;
46 import fr.paris.lutece.portal.business.rbac.RBAC;
47 import fr.paris.lutece.portal.business.user.AdminUser;
48 import fr.paris.lutece.portal.service.plugin.Plugin;
49 import fr.paris.lutece.portal.service.plugin.PluginService;
50 import fr.paris.lutece.portal.service.rbac.RBACService;
51 import fr.paris.lutece.portal.web.admin.PluginAdminPageJspBean;
52
53 import java.util.ArrayList;
54 import java.util.List;
55 import java.util.Locale;
56
57
58
59
60
61 public class DocumentActionsService extends PluginAdminPageJspBean implements IDocumentActionsService
62 {
63 private static final String PLUGIN_NAME = "documenttocalendar";
64 private static final String PARAMETER_BUTTON_NAME = "module.document.calendar.workflow.action.addEvent.name";
65 private static final String PARAMETER_BUTTON_DESCRIPTION = "module.document.calendar.workflow.action.addEvent.description";
66 private static final String PARAMETER_BUTTON_ACTION_URL = "jsp/admin/plugins/document/modules/calendar/SelectCalendar.jsp?";
67
68
69
70
71 private static final String PARAMETER_BUTTON_ICON_URL = "icon-calendar";
72
73
74
75
76
77
78
79
80 public List<DocumentAction> getActions( Document document, Locale locale, AdminUser user )
81 {
82 List<DocumentAction> documentActionList = new ArrayList<DocumentAction>( );
83
84 Plugin plugin = PluginService.getPlugin( CalendarPlugin.PLUGIN_NAME );
85
86
87 if ( MappingHome.findByCodeDocumentType( document.getCodeDocumentType( ), plugin ) != null )
88 {
89
90 if ( RBACService.isAuthorized( CalendarResourceIdService.RESOURCE_TYPE, RBAC.WILDCARD_RESOURCES_ID,
91 CalendarResourceIdService.PERMISSION_MANAGE, user )
92 && user.checkRight( DocumentToCalendarJspBean.RIGHT_MANAGE_DOCUMENTTOCALENDAR )
93 && user.checkRight( CalendarJspBean.RIGHT_MANAGE_CALENDAR ) )
94 {
95 Plugin calendarPlugin = PluginService.getPlugin( CalendarPlugin.PLUGIN_NAME );
96
97 List<AgendaResource> calendarList = CalendarHome.findAgendaResourcesList( calendarPlugin );
98
99
100 if ( calendarList.size( ) != 0 )
101 {
102 DocumentAction documentAction = new DocumentAction( );
103
104 documentAction.setNameKey( PARAMETER_BUTTON_NAME );
105 documentAction.setDescriptionKey( PARAMETER_BUTTON_DESCRIPTION );
106 documentAction.setUrl( PARAMETER_BUTTON_ACTION_URL );
107 documentAction.setIconUrl( PARAMETER_BUTTON_ICON_URL );
108 documentAction.setLocale( locale );
109
110 documentActionList.add( documentAction );
111 }
112 }
113 }
114
115 return documentActionList;
116 }
117 }