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.portal.business.user.attribute;
35
36 import fr.paris.lutece.portal.business.user.AdminUser;
37 import fr.paris.lutece.portal.service.message.AdminMessage;
38 import fr.paris.lutece.portal.service.message.AdminMessageService;
39 import fr.paris.lutece.portal.service.user.attribute.AttributeFieldService;
40 import fr.paris.lutece.portal.web.constants.Messages;
41
42 import org.apache.commons.lang3.StringUtils;
43
44 import java.util.ArrayList;
45 import java.util.List;
46 import java.util.Locale;
47
48 import javax.servlet.http.HttpServletRequest;
49
50
51
52
53
54
55 public class AttributeComboBox extends AbstractAttribute implements ISimpleValuesAttributes
56 {
57
58 private static final String CONSTANT_UNDERSCORE = "_";
59
60
61 private static final String PARAMETER_TITLE = "title";
62 private static final String PARAMETER_HELP_MESSAGE = "help_message";
63 private static final String PARAMETER_MANDATORY = "mandatory";
64 private static final String PARAMETER_MULTIPLE = "multiple";
65 private static final String PARAMETER_IS_SHOWN_IN_SEARCH = "is_shown_in_search";
66 private static final String PARAMETER_IS_SHOWN_IN_RESULT_LIST = "is_shown_in_result_list";
67 private static final String PARAMETER_ATTRIBUTE = "attribute";
68
69
70 private static final String PROPERTY_TYPE_COMBOBOX = "portal.users.attribute.type.comboBox";
71 private static final String PROPERTY_CREATE_COMBOBOX_PAGETITLE = "portal.users.create_attribute.pageTitleAttributeComboBox";
72 private static final String PROPERTY_MODIFY_COMBOBOX_PAGETITLE = "portal.users.modify_attribute.pageTitleAttributeComboBox";
73
74
75 private static final String TEMPLATE_CREATE_ATTRIBUTE = "admin/user/attribute/combobox/create_attribute_combobox.html";
76 private static final String TEMPLATE_MODIFY_ATTRIBUTE = "admin/user/attribute/combobox/modify_attribute_combobox.html";
77 private static final String TEMPLATE_HTML_FORM_ATTRIBUTE = "admin/user/attribute/combobox/html_code_form_attribute_combobox.html";
78 private static final String TEMPLATE_HTML_FORM_SEARCH_ATTRIBUTE = "admin/user/attribute/combobox/html_code_form_search_attribute_combobox.html";
79 private static final String TEMPLATE_HTML_VALUE = "admin/user/attribute/combobox/html_code_value_attribute_combobox.html";
80
81
82
83
84 public AttributeComboBox( )
85 {
86
87 }
88
89
90
91
92
93
94 @Override
95 public String getTemplateCreateAttribute( )
96 {
97 return TEMPLATE_CREATE_ATTRIBUTE;
98 }
99
100
101
102
103
104
105 @Override
106 public String getTemplateModifyAttribute( )
107 {
108 return TEMPLATE_MODIFY_ATTRIBUTE;
109 }
110
111
112
113
114
115
116 @Override
117 public String getTemplateHtmlFormAttribute( )
118 {
119 return TEMPLATE_HTML_FORM_ATTRIBUTE;
120 }
121
122
123
124
125
126
127 @Override
128 public String getTemplateHtmlFormSearchAttribute( )
129 {
130 return TEMPLATE_HTML_FORM_SEARCH_ATTRIBUTE;
131 }
132
133
134
135
136
137
138 @Override
139 public String getTemplateHtmlValue( )
140 {
141 return TEMPLATE_HTML_VALUE;
142 }
143
144
145
146
147
148
149 @Override
150 public String getPropertyCreatePageTitle( )
151 {
152 return PROPERTY_CREATE_COMBOBOX_PAGETITLE;
153 }
154
155
156
157
158
159
160 @Override
161 public String getPropertyModifyPageTitle( )
162 {
163 return PROPERTY_MODIFY_COMBOBOX_PAGETITLE;
164 }
165
166
167
168
169
170
171
172
173 @Override
174 public String setAttributeData( HttpServletRequest request )
175 {
176 String strTitle = request.getParameter( PARAMETER_TITLE );
177 String strHelpMessage = ( request.getParameter( PARAMETER_HELP_MESSAGE ) != null ) ? request.getParameter( PARAMETER_HELP_MESSAGE ).trim( ) : null;
178 String strIsShownInSearch = request.getParameter( PARAMETER_IS_SHOWN_IN_SEARCH );
179 String strIsShownInResultList = request.getParameter( PARAMETER_IS_SHOWN_IN_RESULT_LIST );
180 String strMandatory = request.getParameter( PARAMETER_MANDATORY );
181 String strMultiple = request.getParameter( PARAMETER_MULTIPLE );
182
183 if ( StringUtils.isNotBlank( strTitle ) )
184 {
185 setTitle( strTitle );
186 setHelpMessage( strHelpMessage );
187 setMandatory( strMandatory != null );
188 setShownInSearch( strIsShownInSearch != null );
189 setShownInResultList( strIsShownInResultList != null );
190
191 if ( getListAttributeFields( ) == null )
192 {
193 List<AttributeField> listAttributeFields = new ArrayList<>( );
194 AttributeFieldr/attribute/AttributeField.html#AttributeField">AttributeField attributeField = new AttributeField( );
195 listAttributeFields.add( attributeField );
196 setListAttributeFields( listAttributeFields );
197 }
198
199 getListAttributeFields( ).get( 0 ).setMultiple( strMultiple != null );
200
201 return null;
202 }
203
204 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
205 }
206
207
208
209
210
211
212
213 @Override
214 public void setAttributeType( Locale locale )
215 {
216 AttributeTypeser/attribute/AttributeType.html#AttributeType">AttributeType attributeType = new AttributeType( );
217 attributeType.setLocale( locale );
218 attributeType.setClassName( this.getClass( ).getName( ) );
219 attributeType.setLabelType( PROPERTY_TYPE_COMBOBOX );
220 setAttributeType( attributeType );
221 }
222
223
224
225
226
227
228
229
230
231
232 @Override
233 public List<AdminUserField> getUserFieldsData( HttpServletRequest request, AdminUser user )
234 {
235 String [ ] strValues = request.getParameterValues( PARAMETER_ATTRIBUTE + CONSTANT_UNDERSCORE + getIdAttribute( ) );
236
237 return getUserFieldsData( strValues, user );
238 }
239
240
241
242
243
244
245
246
247
248
249 @Override
250 public List<AdminUserField> getUserFieldsData( String [ ] strValues, AdminUser user )
251 {
252 List<AdminUserField> listUserFields = new ArrayList<>( );
253
254 if ( strValues != null )
255 {
256 for ( String strValue : strValues )
257 {
258 AdminUserFields/user/attribute/AdminUserField.html#AdminUserField">AdminUserField userField = new AdminUserField( );
259 AttributeField attributeField;
260
261 if ( StringUtils.isNotBlank( strValue ) && StringUtils.isNumeric( strValue ) )
262 {
263 int nIdField = Integer.parseInt( strValue );
264 attributeField = AttributeFieldService.getInstance( ).getAttributeField( nIdField );
265 }
266 else
267 {
268 attributeField = new AttributeField( );
269 attributeField.setAttribute( this );
270 attributeField.setTitle( strValue );
271 attributeField.setValue( strValue );
272 }
273
274 userField.setUser( user );
275 userField.setAttribute( this );
276 userField.setAttributeField( attributeField );
277 userField.setValue( attributeField.getTitle( ) );
278
279 listUserFields.add( userField );
280 }
281 }
282
283 else
284 {
285 AdminUserFields/user/attribute/AdminUserField.html#AdminUserField">AdminUserField userField = new AdminUserField( );
286 AttributeField attributeField;
287 attributeField = new AttributeField( );
288 attributeField.setAttribute( this );
289 attributeField.setTitle( "" );
290 attributeField.setValue( "" );
291 userField.setUser( user );
292 userField.setAttribute( this );
293 userField.setAttributeField( attributeField );
294 userField.setValue( attributeField.getTitle( ) );
295
296 listUserFields.add( userField );
297 }
298
299 return listUserFields;
300 }
301
302
303
304
305
306
307 @Override
308 public boolean isAnonymizable( )
309 {
310 return false;
311 }
312 }