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.action;
35
36 import fr.paris.lutece.plugins.directory.business.Directory;
37 import fr.paris.lutece.plugins.directory.modules.pdfproducerarchive.service.DirectoryPDFProducerArchiveResourceIdService;
38 import fr.paris.lutece.plugins.directory.utils.DirectoryUtils;
39 import fr.paris.lutece.plugins.directory.web.action.DirectoryAdminSearchFields;
40 import fr.paris.lutece.plugins.directory.web.action.IDirectoryAction;
41 import fr.paris.lutece.portal.business.rbac.RBAC;
42 import fr.paris.lutece.portal.business.user.AdminUser;
43 import fr.paris.lutece.portal.service.admin.AccessDeniedException;
44 import fr.paris.lutece.portal.service.message.AdminMessage;
45 import fr.paris.lutece.portal.service.message.AdminMessageService;
46 import fr.paris.lutece.portal.service.rbac.RBACService;
47 import fr.paris.lutece.portal.service.util.AppPathService;
48 import fr.paris.lutece.portal.web.pluginaction.AbstractPluginAction;
49 import fr.paris.lutece.portal.web.pluginaction.DefaultPluginActionResult;
50 import fr.paris.lutece.portal.web.pluginaction.IPluginActionResult;
51 import fr.paris.lutece.util.url.UrlItem;
52
53 import org.apache.commons.lang.StringUtils;
54
55 import java.util.Map;
56
57 import javax.servlet.http.HttpServletRequest;
58 import javax.servlet.http.HttpServletResponse;
59
60
61
62
63
64
65 public class MassExportZipAction extends AbstractPluginAction<DirectoryAdminSearchFields> implements IDirectoryAction
66 {
67
68 private static final String ACTION_NAME = "Mass export Zip";
69
70
71 private static final String TEMPLATE_BUTTON = "../directory/modules/pdfproducer/archive/actions/mass_export_zip.html";
72
73
74 private static final String JSP_CONFIRM_ADD_ZIP_BASKET = "jsp/admin/plugins/directory/modules/pdfproducer/archive/basket/ConfirmAddZipToBasket.jsp";
75
76
77 private static final String PARAMETER_MASS_ZIP_BASKET_ACTION = "mass_export_zip";
78
79
80 private static final String MARK_PERMISSION_GENERATE_ZIP = "permission_generate_zip";
81
82
83
84
85 public void fillModel( HttpServletRequest request, AdminUser adminUser, Map<String, Object> model )
86 {
87 String strIdDirectory = request.getParameter( DirectoryUtils.PARAMETER_ID_DIRECTORY );
88 String strIdResource = StringUtils.isNotBlank( strIdDirectory ) ? strIdDirectory : RBAC.WILDCARD_RESOURCES_ID;
89 model.put( MARK_PERMISSION_GENERATE_ZIP,
90 RBACService.isAuthorized( Directory.RESOURCE_TYPE, strIdResource,
91 DirectoryPDFProducerArchiveResourceIdService.PERMISSION_GENERATE_ZIP, adminUser ) );
92 }
93
94
95
96
97 public String getButtonTemplate( )
98 {
99 return TEMPLATE_BUTTON;
100 }
101
102
103
104
105 public String getName( )
106 {
107 return ACTION_NAME;
108 }
109
110
111
112
113 public boolean isInvoked( HttpServletRequest request )
114 {
115 return StringUtils.isNotBlank( request.getParameter( PARAMETER_MASS_ZIP_BASKET_ACTION ) );
116 }
117
118
119
120
121 public IPluginActionResult process( HttpServletRequest request, HttpServletResponse response, AdminUser adminUser,
122 DirectoryAdminSearchFields sessionFields ) throws AccessDeniedException
123 {
124 IPluginActionResult result = new DefaultPluginActionResult( );
125
126 String strRedirect = StringUtils.EMPTY;
127
128 if ( ( sessionFields.getSelectedRecords( ) != null ) && !sessionFields.getSelectedRecords( ).isEmpty( ) )
129 {
130 String strIdDirectory = request.getParameter( DirectoryUtils.PARAMETER_ID_DIRECTORY );
131 UrlItem url = new UrlItem( AppPathService.getBaseUrl( request ) + JSP_CONFIRM_ADD_ZIP_BASKET );
132 url.addParameter( DirectoryUtils.PARAMETER_ID_DIRECTORY, strIdDirectory );
133
134 for ( String strIdRecord : sessionFields.getSelectedRecords( ) )
135 {
136 if ( StringUtils.isNotBlank( strIdRecord ) && StringUtils.isNumeric( strIdRecord ) )
137 {
138 url.addParameter( DirectoryUtils.PARAMETER_ID_DIRECTORY_RECORD, strIdRecord );
139 }
140 }
141
142 strRedirect = url.getUrl( );
143 }
144 else
145 {
146 strRedirect = AdminMessageService.getMessageUrl( request, DirectoryUtils.MESSAGE_SELECT_RECORDS,
147 AdminMessage.TYPE_INFO );
148 }
149
150 result.setRedirect( strRedirect );
151
152 return result;
153 }
154 }