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.web.action;
35
36 import fr.paris.lutece.plugins.directory.utils.DirectoryErrorException;
37 import fr.paris.lutece.plugins.directory.utils.DirectoryUtils;
38 import fr.paris.lutece.portal.business.user.AdminUser;
39 import fr.paris.lutece.portal.service.admin.AccessDeniedException;
40 import fr.paris.lutece.portal.service.message.AdminMessage;
41 import fr.paris.lutece.portal.service.message.AdminMessageService;
42 import fr.paris.lutece.portal.web.pluginaction.AbstractPluginAction;
43 import fr.paris.lutece.portal.web.pluginaction.DefaultPluginActionResult;
44 import fr.paris.lutece.portal.web.pluginaction.IPluginActionResult;
45
46 import org.apache.commons.lang.StringUtils;
47
48 import java.util.Locale;
49 import java.util.Map;
50
51 import javax.servlet.http.HttpServletRequest;
52 import javax.servlet.http.HttpServletResponse;
53
54
55
56
57
58 public class SearchRecordDirectoryAction extends AbstractPluginAction<DirectoryAdminSearchFields> implements IDirectoryAction
59 {
60 private static final String PARAMETER_BUTTON_SEARCH = "search";
61 private static final String ACTION_NAME = "Search Directory";
62 private static final String PARAMETER_DATE_BEGIN_CREATION = "date_begin_creation";
63 private static final String PARAMETER_DATE_CREATION = "date_creation";
64 private static final String PARAMETER_DATE_END_CREATION = "date_end_creation";
65 private static final String PARAMETER_DATE_BEGIN_MODIFICATION = "date_begin_modification";
66 private static final String PARAMETER_DATE_MODIFICATION = "date_modification";
67 private static final String PARAMETER_DATE_END_MODIFICATION = "date_end_modification";
68 private static final String PARAMETER_WORKFLOW_STATE_SELECTED = "search_state_workflow";
69
70
71
72
73 public void fillModel( HttpServletRequest request, AdminUser adminUser, Map<String, Object> model )
74 {
75
76 }
77
78
79
80
81 public String getButtonTemplate( )
82 {
83 return StringUtils.EMPTY;
84 }
85
86
87
88
89 public String getName( )
90 {
91 return ACTION_NAME;
92 }
93
94
95
96
97 public boolean isInvoked( HttpServletRequest request )
98 {
99 return request.getParameter( PARAMETER_BUTTON_SEARCH ) != null;
100 }
101
102
103
104
105 public IPluginActionResult process( HttpServletRequest request, HttpServletResponse response, AdminUser adminUser, DirectoryAdminSearchFields searchFields )
106 throws AccessDeniedException
107 {
108 DefaultPluginActionResult result = new DefaultPluginActionResult( );
109 String strIdDirectory = request.getParameter( DirectoryUtils.PARAMETER_ID_DIRECTORY );
110 int nIdDirectory = DirectoryUtils.convertStringToInt( strIdDirectory );
111
112 searchFields.setIdWorkflowSate( DirectoryUtils.convertStringToInt( request.getParameter( PARAMETER_WORKFLOW_STATE_SELECTED ) ) );
113
114 try
115 {
116 Locale locale = adminUser.getLocale( );
117
118 searchFields.setMapQuery( DirectoryUtils.getSearchRecordData( request, nIdDirectory, DirectoryUtils.getPlugin( ), locale ) );
119 searchFields.setDateCreationBeginRecord( DirectoryUtils.getSearchRecordDateCreationFromRequest( request, PARAMETER_DATE_BEGIN_CREATION, locale ) );
120 searchFields.setDateCreationEndRecord( DirectoryUtils.getSearchRecordDateCreationFromRequest( request, PARAMETER_DATE_END_CREATION, locale ) );
121 searchFields.setDateCreationRecord( DirectoryUtils.getSearchRecordDateCreationFromRequest( request, PARAMETER_DATE_CREATION, locale ) );
122 searchFields.setDateModificationBeginRecord( DirectoryUtils.getSearchRecordDateCreationFromRequest( request, PARAMETER_DATE_BEGIN_MODIFICATION,
123 locale ) );
124 searchFields
125 .setDateModificationEndRecord( DirectoryUtils.getSearchRecordDateCreationFromRequest( request, PARAMETER_DATE_END_MODIFICATION, locale ) );
126 searchFields.setDateModificationRecord( DirectoryUtils.getSearchRecordDateCreationFromRequest( request, PARAMETER_DATE_MODIFICATION, locale ) );
127
128
129 result.setRedirect( DirectoryUtils.getJspManageDirectoryRecord( request, nIdDirectory ) );
130 }
131 catch( DirectoryErrorException error )
132 {
133 String strErrorMessage = DirectoryUtils.EMPTY_STRING;
134
135 if ( error.isMandatoryError( ) )
136 {
137 Object [ ] tabRequiredFields = {
138 error.getTitleField( )
139 };
140 strErrorMessage = AdminMessageService.getMessageUrl( request, DirectoryUtils.MESSAGE_DIRECTORY_ERROR_MANDATORY_FIELD, tabRequiredFields,
141 AdminMessage.TYPE_STOP );
142 }
143 else
144 {
145 Object [ ] tabRequiredFields = {
146 error.getTitleField( ), error.getErrorMessage( )
147 };
148 strErrorMessage = AdminMessageService
149 .getMessageUrl( request, DirectoryUtils.MESSAGE_DIRECTORY_ERROR, tabRequiredFields, AdminMessage.TYPE_STOP );
150 }
151
152 result.setRedirect( strErrorMessage );
153 }
154
155 return result;
156 }
157 }