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.mylutece.web.attribute;
35
36 import fr.paris.lutece.plugins.mylutece.business.attribute.AttributeField;
37 import fr.paris.lutece.plugins.mylutece.business.attribute.AttributeFieldHome;
38 import fr.paris.lutece.plugins.mylutece.business.attribute.AttributeHome;
39 import fr.paris.lutece.plugins.mylutece.business.attribute.IAttribute;
40 import fr.paris.lutece.plugins.mylutece.business.attribute.MyLuteceUserFieldHome;
41 import fr.paris.lutece.plugins.mylutece.service.MyLutecePlugin;
42 import fr.paris.lutece.portal.service.message.AdminMessage;
43 import fr.paris.lutece.portal.service.message.AdminMessageService;
44 import fr.paris.lutece.portal.service.plugin.Plugin;
45 import fr.paris.lutece.portal.service.plugin.PluginService;
46 import fr.paris.lutece.portal.service.template.AppTemplateService;
47 import fr.paris.lutece.portal.web.admin.AdminFeaturesPageJspBean;
48 import fr.paris.lutece.portal.web.constants.Messages;
49 import fr.paris.lutece.util.html.HtmlTemplate;
50
51 import java.util.HashMap;
52 import java.util.Iterator;
53 import java.util.List;
54 import java.util.Map;
55
56 import javax.servlet.http.HttpServletRequest;
57
58
59
60
61
62
63 public class AttributeFieldJspBean extends AdminFeaturesPageJspBean
64 {
65
66 private static final String EMPTY_STRING = "";
67
68
69 private static final String PROPERTY_CREATE_ATTRIBUTE_FIELDS_PAGETITLE = "mylutece.create_attribute_field.pageTitle";
70 private static final String PROPERTY_MODIFY_ATTRIBUTE_FIELDS_PAGETITLE = "mylutece.modify_attribute_field.pageTitle";
71 private static final String PROPERTY_MESSAGE_CONFIRM_REMOVE_ATTRIBUTE_FIELD = "mylutece.modify_attribute.message.removeAttributeField";
72
73
74 private static final String TEMPLATE_CREATE_ATTRIBUTE_FIELD = "admin/plugins/mylutece/attribute/create_attribute_field.html";
75 private static final String TEMPLATE_MODIFY_ATTRIBUTE_FIELD = "admin/plugins/mylutece/attribute/modify_attribute_field.html";
76
77
78 private static final String PARAMETER_CANCEL = "cancel";
79 private static final String PARAMETER_ID_ATTRIBUTE = "id_attribute";
80 private static final String PARAMETER_TITLE = "title";
81 private static final String PARAMETER_VALUE = "value";
82 private static final String PARAMETER_DEFAULT_VALUE = "default_value";
83 private static final String PARAMETER_ID_FIELD = "id_field";
84
85
86 private static final String MARK_ATTRIBUTE_FIELD = "attribute_field";
87 private static final String MARK_ATTRIBUTE = "attribute";
88
89
90 private static final String JSP_MODIFY_ATTRIBUTE = "ModifyAttribute.jsp";
91 private static final String JSP_URL_REMOVE_ATTRIBUTE_FIELD = "jsp/admin/plugins/mylutece/attribute/DoRemoveAttributeField.jsp";
92
93
94
95
96
97
98
99
100 public String getCreateAttributeField( HttpServletRequest request )
101 {
102 setPageTitleProperty( PROPERTY_CREATE_ATTRIBUTE_FIELDS_PAGETITLE );
103
104 String strIdAttribute = request.getParameter( PARAMETER_ID_ATTRIBUTE );
105 int nIdAttribute = Integer.parseInt( strIdAttribute );
106 Plugin plugin = PluginService.getPlugin( MyLutecePlugin.PLUGIN_NAME );
107
108 IAttribute attribute = AttributeHome.findByPrimaryKey( nIdAttribute, getLocale( ), plugin );
109
110 HtmlTemplate template;
111 Map<String, Object> model = new HashMap<String, Object>( );
112 model.put( MARK_ATTRIBUTE, attribute );
113
114 template = AppTemplateService.getTemplate( TEMPLATE_CREATE_ATTRIBUTE_FIELD, getLocale( ), model );
115
116 return getAdminPage( template.getHtml( ) );
117 }
118
119
120
121
122
123
124
125 public String doCreateAttributeField( HttpServletRequest request )
126 {
127 String strIdAttribute = request.getParameter( PARAMETER_ID_ATTRIBUTE );
128 int nIdAttribute = Integer.parseInt( strIdAttribute );
129 String strTitle = request.getParameter( PARAMETER_TITLE );
130 String strValue = request.getParameter( PARAMETER_VALUE );
131 String strDefaultValue = request.getParameter( PARAMETER_DEFAULT_VALUE );
132 String strCancel = request.getParameter( PARAMETER_CANCEL );
133
134 if ( strCancel == null )
135 {
136 if ( ( strTitle == null ) || strTitle.equals( EMPTY_STRING ) )
137 {
138 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
139 }
140
141 if ( ( strValue == null ) || strValue.equals( EMPTY_STRING ) )
142 {
143 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
144 }
145
146 Plugin plugin = PluginService.getPlugin( MyLutecePlugin.PLUGIN_NAME );
147 AttributeFieldsiness/attribute/AttributeField.html#AttributeField">AttributeField attributeField = new AttributeField( );
148 attributeField.setTitle( strTitle );
149 attributeField.setValue( strValue );
150 attributeField.setDefaultValue( strDefaultValue != null );
151
152 IAttribute attribute = AttributeHome.findByPrimaryKey( nIdAttribute, getLocale( ), plugin );
153 attributeField.setAttribute( attribute );
154
155 AttributeFieldHome.create( attributeField, plugin );
156 }
157
158 String strUrl = JSP_MODIFY_ATTRIBUTE + "?" + PARAMETER_ID_ATTRIBUTE + "=" + nIdAttribute;
159
160 return strUrl;
161 }
162
163
164
165
166
167
168
169
170 public String getModifyAttributeField( HttpServletRequest request )
171 {
172 setPageTitleProperty( PROPERTY_MODIFY_ATTRIBUTE_FIELDS_PAGETITLE );
173
174 String strIdField = request.getParameter( PARAMETER_ID_FIELD );
175 int nIdField = Integer.parseInt( strIdField );
176 String strIdAttribute = request.getParameter( PARAMETER_ID_ATTRIBUTE );
177 int nIdAttribute = Integer.parseInt( strIdAttribute );
178 Plugin plugin = PluginService.getPlugin( MyLutecePlugin.PLUGIN_NAME );
179
180 IAttribute attribute = AttributeHome.findByPrimaryKey( nIdAttribute, getLocale( ), plugin );
181
182 AttributeField attributeField = AttributeFieldHome.findByPrimaryKey( nIdField, plugin );
183
184 HtmlTemplate template;
185 Map<String, Object> model = new HashMap<String, Object>( );
186 model.put( MARK_ATTRIBUTE_FIELD, attributeField );
187 model.put( MARK_ATTRIBUTE, attribute );
188
189 template = AppTemplateService.getTemplate( TEMPLATE_MODIFY_ATTRIBUTE_FIELD, getLocale( ), model );
190
191 return getAdminPage( template.getHtml( ) );
192 }
193
194
195
196
197
198
199
200
201 public String doModifyAttributeField( HttpServletRequest request )
202 {
203 String strTitle = request.getParameter( PARAMETER_TITLE );
204 String strValue = request.getParameter( PARAMETER_VALUE );
205 String strDefaultValue = request.getParameter( PARAMETER_DEFAULT_VALUE );
206 String strIdField = request.getParameter( PARAMETER_ID_FIELD );
207 int nIdField = Integer.parseInt( strIdField );
208 String strIdAttribute = request.getParameter( PARAMETER_ID_ATTRIBUTE );
209 String strCancel = request.getParameter( PARAMETER_CANCEL );
210
211 if ( strCancel == null )
212 {
213 if ( ( strTitle == null ) || strTitle.equals( EMPTY_STRING ) )
214 {
215 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
216 }
217
218 if ( ( strValue == null ) || strValue.equals( EMPTY_STRING ) )
219 {
220 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
221 }
222
223 Plugin plugin = PluginService.getPlugin( MyLutecePlugin.PLUGIN_NAME );
224
225 AttributeFieldsiness/attribute/AttributeField.html#AttributeField">AttributeField attributeField = new AttributeField( );
226 attributeField.setIdField( nIdField );
227 attributeField.setTitle( strTitle );
228 attributeField.setValue( strValue );
229 attributeField.setDefaultValue( strDefaultValue != null );
230
231 AttributeFieldHome.update( attributeField, plugin );
232 }
233
234 String strUrl = JSP_MODIFY_ATTRIBUTE + "?" + PARAMETER_ID_ATTRIBUTE + "=" + strIdAttribute;
235
236 return strUrl;
237 }
238
239
240
241
242
243
244
245
246 public String doConfirmRemoveAttributeField( HttpServletRequest request )
247 {
248 String strIdAttribute = request.getParameter( PARAMETER_ID_ATTRIBUTE );
249 String strIdField = request.getParameter( PARAMETER_ID_FIELD );
250 String strUrlRemove = JSP_URL_REMOVE_ATTRIBUTE_FIELD + "?" + PARAMETER_ID_ATTRIBUTE + "=" + strIdAttribute + "&" + PARAMETER_ID_FIELD + "="
251 + strIdField;
252
253 String strUrl = AdminMessageService.getMessageUrl( request, PROPERTY_MESSAGE_CONFIRM_REMOVE_ATTRIBUTE_FIELD, strUrlRemove,
254 AdminMessage.TYPE_CONFIRMATION );
255
256 return strUrl;
257 }
258
259
260
261
262
263
264
265
266 public String doRemoveAttributeField( HttpServletRequest request )
267 {
268 String strIdAttribute = request.getParameter( PARAMETER_ID_ATTRIBUTE );
269 String strIdField = request.getParameter( PARAMETER_ID_FIELD );
270 int nIdField = Integer.parseInt( strIdField );
271 Plugin plugin = PluginService.getPlugin( MyLutecePlugin.PLUGIN_NAME );
272
273 AttributeFieldHome.remove( nIdField, plugin );
274 MyLuteceUserFieldHome.removeUserFieldsFromIdField( nIdField, plugin );
275
276 String strUrl = JSP_MODIFY_ATTRIBUTE + "?" + PARAMETER_ID_ATTRIBUTE + "=" + strIdAttribute;
277
278 return strUrl;
279 }
280
281
282
283
284
285
286
287
288 public String doMoveUpAttributeField( HttpServletRequest request )
289 {
290 String strIdAttribute = request.getParameter( PARAMETER_ID_ATTRIBUTE );
291 int nIdAttribute = Integer.parseInt( strIdAttribute );
292 String strIdField = request.getParameter( PARAMETER_ID_FIELD );
293 int nIdField = Integer.parseInt( strIdField );
294 Plugin plugin = PluginService.getPlugin( MyLutecePlugin.PLUGIN_NAME );
295
296 List<AttributeField> listAttributeFields = AttributeFieldHome.selectAttributeFieldsByIdAttribute( nIdAttribute, plugin );
297 AttributeField previousField = null;
298 AttributeField currentField = null;
299
300 Iterator<AttributeField> it = listAttributeFields.iterator( );
301 previousField = it.next( );
302 currentField = it.next( );
303
304 while ( it.hasNext( ) && ( currentField.getIdField( ) != nIdField ) )
305 {
306 previousField = currentField;
307 currentField = it.next( );
308 }
309
310 int previousFieldPosition = previousField.getPosition( );
311 int currentFieldPosition = currentField.getPosition( );
312 previousField.setPosition( currentFieldPosition );
313 currentField.setPosition( previousFieldPosition );
314
315 AttributeFieldHome.update( previousField, plugin );
316 AttributeFieldHome.update( currentField, plugin );
317
318 String strUrl = JSP_MODIFY_ATTRIBUTE + "?" + PARAMETER_ID_ATTRIBUTE + "=" + strIdAttribute;
319
320 return strUrl;
321 }
322
323
324
325
326
327
328
329
330 public String doMoveDownAttributeField( HttpServletRequest request )
331 {
332 String strIdAttribute = request.getParameter( PARAMETER_ID_ATTRIBUTE );
333 int nIdAttribute = Integer.parseInt( strIdAttribute );
334 String strIdField = request.getParameter( PARAMETER_ID_FIELD );
335 int nIdField = Integer.parseInt( strIdField );
336 Plugin plugin = PluginService.getPlugin( MyLutecePlugin.PLUGIN_NAME );
337
338 List<AttributeField> listAttributeFields = AttributeFieldHome.selectAttributeFieldsByIdAttribute( nIdAttribute, plugin );
339 AttributeField currentField = null;
340 AttributeField nextField = null;
341
342 Iterator<AttributeField> it = listAttributeFields.iterator( );
343 currentField = it.next( );
344 nextField = it.next( );
345
346 while ( it.hasNext( ) && ( currentField.getIdField( ) != nIdField ) )
347 {
348 currentField = nextField;
349 nextField = it.next( );
350 }
351
352 int nextFieldPosition = nextField.getPosition( );
353 int currentFieldPosition = currentField.getPosition( );
354 nextField.setPosition( currentFieldPosition );
355 currentField.setPosition( nextFieldPosition );
356
357 AttributeFieldHome.update( nextField, plugin );
358 AttributeFieldHome.update( currentField, plugin );
359
360 String strUrl = JSP_MODIFY_ATTRIBUTE + "?" + PARAMETER_ID_ATTRIBUTE + "=" + strIdAttribute;
361
362 return strUrl;
363 }
364 }