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.appstore.web;
35
36 import fr.paris.lutece.plugins.appstore.business.Component;
37 import fr.paris.lutece.plugins.appstore.business.ComponentHome;
38 import fr.paris.lutece.plugins.appstore.service.ComponentInfoService;
39 import fr.paris.lutece.portal.service.message.AdminMessage;
40 import fr.paris.lutece.portal.service.message.AdminMessageService;
41 import fr.paris.lutece.portal.service.template.AppTemplateService;
42 import fr.paris.lutece.portal.service.util.AppPropertiesService;
43 import fr.paris.lutece.portal.web.constants.Messages;
44 import fr.paris.lutece.portal.web.util.LocalizedPaginator;
45 import fr.paris.lutece.util.html.HtmlTemplate;
46 import fr.paris.lutece.util.html.Paginator;
47 import fr.paris.lutece.util.url.UrlItem;
48
49 import java.util.HashMap;
50 import java.util.List;
51 import java.util.Map;
52
53 import javax.servlet.http.HttpServletRequest;
54
55
56
57
58 public class ComponentJspBean extends AppStoreJspBean
59 {
60 private static final String TEMPLATE_MANAGE_COMPONENTS = "/admin/plugins/appstore/manage_component.html";
61 private static final String TEMPLATE_CREATE_COMPONENT = "/admin/plugins/appstore/create_component.html";
62 private static final String TEMPLATE_MODIFY_COMPONENT = "/admin/plugins/appstore/modify_component.html";
63 private static final String PARAMETER_COMPONENT_ID_COMPONENT = "component_id_component";
64 private static final String PARAMETER_COMPONENT_GROUP_ID = "component_group_id";
65 private static final String PARAMETER_COMPONENT_TITLE = "component_title";
66 private static final String PARAMETER_COMPONENT_DESCRIPTION = "component_description";
67 private static final String PARAMETER_COMPONENT_ARTIFACT_ID = "component_artifact_id";
68 private static final String PARAMETER_COMPONENT_VERSION = "component_version";
69 private static final String PARAMETER_COMPONENT_COMPONENT_TYPE = "component_component_type";
70 private static final String PROPERTY_PAGE_TITLE_MANAGE_COMPONENTS = "appstore.manage_components.pageTitle";
71 private static final String PROPERTY_PAGE_TITLE_MODIFY_COMPONENT = "appstore.modify_component.pageTitle";
72 private static final String PROPERTY_PAGE_TITLE_CREATE_COMPONENT = "appstore.create_component.pageTitle";
73 private static final String MARK_COMPONENT_LIST = "component_list";
74 private static final String MARK_COMPONENT = "component";
75 private static final String JSP_DO_REMOVE_COMPONENT = "jsp/admin/plugins/appstore/DoRemoveComponent.jsp";
76 private static final String JSP_MANAGE_COMPONENTS = "jsp/admin/plugins/appstore/ManageComponents.jsp";
77 private static final String JSP_REDIRECT_TO_MANAGE_COMPONENTS = "ManageComponents.jsp";
78 private static final String PROPERTY_DEFAULT_LIST_COMPONENT_PER_PAGE = "appstore.listComponents.itemsPerPage";
79 private static final String MESSAGE_CONFIRM_REMOVE_COMPONENT = "appstore.message.confirmRemoveComponent";
80
81
82
83
84
85
86
87
88 public String getManageComponents( HttpServletRequest request )
89 {
90 setPageTitleProperty( PROPERTY_PAGE_TITLE_MANAGE_COMPONENTS );
91
92 _strCurrentPageIndex = Paginator.getPageIndex( request, Paginator.PARAMETER_PAGE_INDEX, _strCurrentPageIndex );
93 _nDefaultItemsPerPage = AppPropertiesService.getPropertyInt( PROPERTY_DEFAULT_LIST_COMPONENT_PER_PAGE, 50 );
94 _nItemsPerPage = Paginator.getItemsPerPage( request, Paginator.PARAMETER_ITEMS_PER_PAGE, _nItemsPerPage, _nDefaultItemsPerPage );
95
96 UrlItem url = new UrlItem( JSP_MANAGE_COMPONENTS );
97 String strUrl = url.getUrl( );
98 List<Component> listComponents = (List<Component>) ComponentHome.getComponentsList( );
99
100
101 LocalizedPaginator paginator = new LocalizedPaginator( listComponents, _nItemsPerPage, strUrl, PARAMETER_PAGE_INDEX, _strCurrentPageIndex, getLocale( ) );
102
103 Map<String, Object> model = new HashMap<String, Object>( );
104
105 model.put( MARK_NB_ITEMS_PER_PAGE, "" + _nItemsPerPage );
106 model.put( MARK_PAGINATOR, paginator );
107
108 model.put( MARK_COMPONENT_LIST, paginator.getPageItems( ) );
109
110 HtmlTemplate templateList = AppTemplateService.getTemplate( TEMPLATE_MANAGE_COMPONENTS, getLocale( ), model );
111
112 return getAdminPage( templateList.getHtml( ) );
113 }
114
115
116
117
118
119
120
121
122 public String getCreateComponent( HttpServletRequest request )
123 {
124 setPageTitleProperty( PROPERTY_PAGE_TITLE_CREATE_COMPONENT );
125
126 Map<String, Object> model = new HashMap<String, Object>( );
127
128 HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_CREATE_COMPONENT, getLocale( ), model );
129
130 return getAdminPage( template.getHtml( ) );
131 }
132
133
134
135
136
137
138
139
140 public String doCreateComponent( HttpServletRequest request )
141 {
142 Component component = new Component( );
143
144 if ( request.getParameter( PARAMETER_COMPONENT_TITLE ).equals( "" ) )
145 {
146 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
147 }
148
149 if ( request.getParameter( PARAMETER_COMPONENT_DESCRIPTION ).equals( "" ) )
150 {
151 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
152 }
153
154 if ( request.getParameter( PARAMETER_COMPONENT_ARTIFACT_ID ).equals( "" ) )
155 {
156 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
157 }
158
159 component.setTitle( request.getParameter( PARAMETER_COMPONENT_TITLE ) );
160 component.setDescription( request.getParameter( PARAMETER_COMPONENT_DESCRIPTION ) );
161 component.setArtifactId( request.getParameter( PARAMETER_COMPONENT_ARTIFACT_ID ) );
162 component.setGroupId( request.getParameter( PARAMETER_COMPONENT_GROUP_ID ) );
163 component.setComponentType( request.getParameter( PARAMETER_COMPONENT_COMPONENT_TYPE ) );
164 ComponentInfoService.setReleaseVersion( component );
165
166 ComponentHome.create( component );
167
168 return JSP_REDIRECT_TO_MANAGE_COMPONENTS;
169 }
170
171
172
173
174
175
176
177
178 public String getConfirmRemoveComponent( HttpServletRequest request )
179 {
180 int nId = Integer.parseInt( request.getParameter( PARAMETER_COMPONENT_ID_COMPONENT ) );
181 UrlItem url = new UrlItem( JSP_DO_REMOVE_COMPONENT );
182 url.addParameter( PARAMETER_COMPONENT_ID_COMPONENT, nId );
183
184 return AdminMessageService.getMessageUrl( request, MESSAGE_CONFIRM_REMOVE_COMPONENT, url.getUrl( ), AdminMessage.TYPE_CONFIRMATION );
185 }
186
187
188
189
190
191
192
193
194 public String doRemoveComponent( HttpServletRequest request )
195 {
196 int nId = Integer.parseInt( request.getParameter( PARAMETER_COMPONENT_ID_COMPONENT ) );
197 ComponentHome.remove( nId );
198
199 return JSP_REDIRECT_TO_MANAGE_COMPONENTS;
200 }
201
202
203
204
205
206
207
208
209 public String getModifyComponent( HttpServletRequest request )
210 {
211 setPageTitleProperty( PROPERTY_PAGE_TITLE_MODIFY_COMPONENT );
212
213 int nId = Integer.parseInt( request.getParameter( PARAMETER_COMPONENT_ID_COMPONENT ) );
214 Component component = ComponentHome.findByPrimaryKey( nId );
215
216 Map<String, Object> model = new HashMap<String, Object>( );
217 model.put( MARK_COMPONENT, component );
218
219 HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_MODIFY_COMPONENT, getLocale( ), model );
220
221 return getAdminPage( template.getHtml( ) );
222 }
223
224
225
226
227
228
229
230
231 public String doModifyComponent( HttpServletRequest request )
232 {
233 int nId = Integer.parseInt( request.getParameter( PARAMETER_COMPONENT_ID_COMPONENT ) );
234 Component component = ComponentHome.findByPrimaryKey( nId );
235
236 if ( request.getParameter( PARAMETER_COMPONENT_TITLE ).equals( "" ) )
237 {
238 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
239 }
240
241 if ( request.getParameter( PARAMETER_COMPONENT_DESCRIPTION ).equals( "" ) )
242 {
243 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
244 }
245
246 if ( request.getParameter( PARAMETER_COMPONENT_ARTIFACT_ID ).equals( "" ) )
247 {
248 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
249 }
250
251 component.setTitle( request.getParameter( PARAMETER_COMPONENT_TITLE ) );
252 component.setDescription( request.getParameter( PARAMETER_COMPONENT_DESCRIPTION ) );
253 component.setArtifactId( request.getParameter( PARAMETER_COMPONENT_ARTIFACT_ID ) );
254 component.setGroupId( request.getParameter( PARAMETER_COMPONENT_GROUP_ID ) );
255 component.setComponentType( request.getParameter( PARAMETER_COMPONENT_COMPONENT_TYPE ) );
256 ComponentInfoService.setReleaseVersion( component );
257 ComponentHome.update( component );
258
259 return JSP_REDIRECT_TO_MANAGE_COMPONENTS;
260 }
261 }