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.directories.service.entrytype;
35
36 import java.util.List;
37 import java.util.Locale;
38 import javax.servlet.http.HttpServletRequest;
39 import org.apache.commons.lang.StringUtils;
40 import fr.paris.lutece.plugins.directories.service.DirectoriesPlugin;
41 import fr.paris.lutece.plugins.directories.service.EntryService;
42 import fr.paris.lutece.plugins.genericattributes.business.Entry;
43 import fr.paris.lutece.plugins.genericattributes.business.GenericAttributeError;
44 import fr.paris.lutece.plugins.genericattributes.business.Response;
45 import fr.paris.lutece.plugins.genericattributes.service.entrytype.AbstractEntryTypeMyLuteceUser;
46 import fr.paris.lutece.plugins.genericattributes.util.GenericAttributesUtils;
47 import fr.paris.lutece.plugins.mylutece.business.attribute.AttributeHome;
48 import fr.paris.lutece.plugins.mylutece.business.attribute.IAttribute;
49 import fr.paris.lutece.portal.service.i18n.I18nService;
50 import fr.paris.lutece.util.ReferenceItem;
51 import fr.paris.lutece.util.ReferenceList;
52
53
54
55
56 public class EntryTypeMyLuteceAttribute extends AbstractEntryTypeMyLuteceUser
57 {
58
59
60
61 public static final String BEAN_NAME = "directories.entryTypeMyLuteceAttribute";
62 public static final String CONSTANT_COMMA = ",";
63 private static final String TEMPLATE_CREATE = "admin/plugins/directories/entries/create_entry_type_mylutece_user_attribute.html";
64 private static final String TEMPLATE_MODIFY = "admin/plugins/directories/entries/modify_entry_type_mylutece_user_attribute.html";
65 private static final String TEMPLATE_READONLY_BACKOFFICE = "admin/plugins/directories/entries/readonly_entry_type_mylutece_user_attribute.html";
66 private static final String TEMPLATE_EDITION_BACKOFFICE = "admin/plugins/directories/entries/fill_entry_type_mylutece_user_attribute.html";
67 private static final String TEMPLATE_EDITION_FRONTOFFICE = "skin/plugins/directories/entries/fill_entry_type_mylutece_user_attribute.html";
68 private static final String TEMPLATE_READONLY_FRONTOFFICE = "skin/plugins/directories/entries/readonly_entry_type_mylutece_user_attribute.html";
69 private static final String PROPERTY_ENTRY_TITLE = "directories.entryTypeMyLuteceUserAttribute.title";
70 private static final String PARAMETER_ONLY_DISPLAY_IN_BACK = "only_display_in_back";
71 private static final String PARAMETER_MYLUTECE_ATTRIBUTE_NAME = "mylutece_attribute_name";
72
73
74
75
76 @Override
77 public String getTemplateHtmlForm( Entry entry, boolean bDisplayFront )
78 {
79 if ( bDisplayFront )
80 {
81 return TEMPLATE_EDITION_FRONTOFFICE;
82 }
83 return TEMPLATE_EDITION_BACKOFFICE;
84 }
85
86
87
88
89 @Override
90 public String getTemplateCreate( Entry entry, boolean bDisplayFront )
91 {
92 return TEMPLATE_CREATE;
93 }
94
95
96
97
98 @Override
99 public String getTemplateModify( Entry entry, boolean bDisplayFront )
100 {
101 return TEMPLATE_MODIFY;
102 }
103
104
105
106
107 @Override
108 public String getRequestData( Entry entry, HttpServletRequest request, Locale locale )
109 {
110 initCommonRequestData( entry, request );
111 String strOnlyDisplayInBack = request.getParameter( PARAMETER_ONLY_DISPLAY_IN_BACK );
112 entry.setTitle( I18nService.getLocalizedString( PROPERTY_ENTRY_TITLE, locale ) );
113 entry.setComment( StringUtils.EMPTY );
114 entry.setMandatory( Boolean.parseBoolean( request.getParameter( PARAMETER_MANDATORY ) ) );
115 entry.setCSSClass( request.getParameter( PARAMETER_CSS_CLASS ) );
116 entry.setTitle( request.getParameter( PARAMETER_TITLE ) );
117 entry.setHelpMessage( request.getParameter( PARAMETER_HELP_MESSAGE ) );
118 entry.setIndexed( request.getParameter( PARAMETER_INDEXED ) != null );
119 entry.setOnlyDisplayInBack( strOnlyDisplayInBack != null );
120 entry.setCode( request.getParameter( PARAMETER_ENTRY_CODE ) );
121 GenericAttributesUtils.createOrUpdateField( entry, FIELD_MYLUTECE_ATTRIBUTE_NAME_CODE, null,
122 request.getParameter( PARAMETER_MYLUTECE_ATTRIBUTE_NAME ) );
123 return null;
124 }
125
126
127
128
129 @Override
130 public GenericAttributeError getResponseData( Entry entry, HttpServletRequest request, List<Response> listResponse, Locale locale )
131 {
132 String strValueEntry = request.getParameter( PREFIX_ATTRIBUTE + entry.getIdEntry( ) ).trim( );
133 if ( strValueEntry == null )
134 {
135 strValueEntry = "";
136 }
137 Response response = new Response( );
138 response.setEntry( entry );
139 response.setResponseValue( strValueEntry );
140 if ( StringUtils.isNotBlank( response.getResponseValue( ) ) )
141 {
142 response.setToStringValueResponse( getResponseValueForRecap( entry, request, response, locale ) );
143 }
144 else
145 {
146 response.setToStringValueResponse( StringUtils.EMPTY );
147 }
148
149 response.setIterationNumber( getResponseIterationValue( request ) );
150 listResponse.add( response );
151 return null;
152 }
153
154
155
156
157
158
159
160
161 public ReferenceList getLuteceUserAttributesRefList( String strLangage )
162 {
163 ReferenceList referenceList = new ReferenceList( );
164 List<IAttribute> listMyLuteceAttribute = AttributeHome.findAll( Locale.forLanguageTag( strLangage ), DirectoriesPlugin.getPlugin( ) );
165 for ( IAttribute attribute : listMyLuteceAttribute )
166 {
167 ReferenceItem item = new ReferenceItem( );
168 item.setName( attribute.getTitle( ) );
169 item.setCode( String.valueOf( attribute.getIdAttribute( ) ) );
170 referenceList.add( item );
171 }
172 return referenceList;
173 }
174
175
176
177
178
179
180
181
182 public ReferenceList getMyLuteceUserPickerList( String strIdEntryType, String strIdDirectory )
183 {
184 List<Entry> listEntry = EntryService.getEntryListFromType( Integer.valueOf( strIdEntryType ), Integer.valueOf( strIdDirectory ) );
185 ReferenceList listEntryOpt = new ReferenceList( );
186 for ( Entry entry : listEntry )
187 {
188 ReferenceItem entryOpt = new ReferenceItem( );
189 entryOpt.setName( entry.getTitle( ) );
190 entryOpt.setCode( String.valueOf( entry.getIdEntry( ) ) );
191 listEntryOpt.add( entryOpt );
192 }
193 return listEntryOpt;
194 }
195
196
197
198
199 @Override
200 public String getResponseValueForExport( Entry entry, HttpServletRequest request, Response response, Locale locale )
201 {
202 return response.getResponseValue( );
203 }
204
205
206
207
208 @Override
209 public String getResponseValueForRecap( Entry entry, HttpServletRequest request, Response response, Locale locale )
210 {
211 return response.getResponseValue( );
212 }
213
214
215
216
217 @Override
218 public String getTemplateEntryReadOnly( boolean bDisplayFront )
219 {
220 if ( bDisplayFront )
221 {
222 return TEMPLATE_READONLY_FRONTOFFICE;
223 }
224 return TEMPLATE_READONLY_BACKOFFICE;
225 }
226 }