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.Category;
37 import fr.paris.lutece.plugins.appstore.business.CategoryHome;
38 import fr.paris.lutece.portal.service.message.AdminMessage;
39 import fr.paris.lutece.portal.service.message.AdminMessageService;
40 import fr.paris.lutece.portal.service.template.AppTemplateService;
41 import fr.paris.lutece.portal.service.util.AppPropertiesService;
42 import fr.paris.lutece.portal.web.constants.Messages;
43 import fr.paris.lutece.portal.web.util.LocalizedPaginator;
44 import fr.paris.lutece.util.html.HtmlTemplate;
45 import fr.paris.lutece.util.html.Paginator;
46 import fr.paris.lutece.util.url.UrlItem;
47
48 import java.util.HashMap;
49 import java.util.List;
50 import java.util.Map;
51
52 import javax.servlet.http.HttpServletRequest;
53
54
55
56
57 public class CategoryJspBean extends AppStoreJspBean
58 {
59 private static final String TEMPLATE_MANAGE_CATEGORYS = "/admin/plugins/appstore/manage_category.html";
60 private static final String TEMPLATE_CREATE_CATEGORY = "/admin/plugins/appstore/create_category.html";
61 private static final String TEMPLATE_MODIFY_CATEGORY = "/admin/plugins/appstore/modify_category.html";
62 private static final String PARAMETER_CATEGORY_ID_CATEGORY = "category_id_category";
63 private static final String PARAMETER_CATEGORY_NAME = "category_name";
64 private static final String PARAMETER_CATEGORY_CATEGORY_ORDER = "category_category_order";
65 private static final String PROPERTY_PAGE_TITLE_MANAGE_CATEGORYS = "appstore.manage_categorys.pageTitle";
66 private static final String PROPERTY_PAGE_TITLE_MODIFY_CATEGORY = "appstore.modify_category.pageTitle";
67 private static final String PROPERTY_PAGE_TITLE_CREATE_CATEGORY = "appstore.create_category.pageTitle";
68 private static final String MARK_CATEGORY_LIST = "category_list";
69 private static final String MARK_CATEGORY = "category";
70 private static final String JSP_DO_REMOVE_CATEGORY = "jsp/admin/plugins/appstore/DoRemoveCategory.jsp";
71 private static final String JSP_MANAGE_CATEGORYS = "jsp/admin/plugins/appstore/ManageCategories.jsp";
72 private static final String JSP_REDIRECT_TO_MANAGE_CATEGORYS = "ManageCategories.jsp";
73 private static final String PROPERTY_DEFAULT_LIST_CATEGORY_PER_PAGE = "appstore.listCategorys.itemsPerPage";
74 private static final String MESSAGE_CONFIRM_REMOVE_CATEGORY = "appstore.message.confirmRemoveCategory";
75
76
77
78
79
80
81
82
83 public String getManageCategories( HttpServletRequest request )
84 {
85 setPageTitleProperty( PROPERTY_PAGE_TITLE_MANAGE_CATEGORYS );
86
87 _strCurrentPageIndex = Paginator.getPageIndex( request, Paginator.PARAMETER_PAGE_INDEX, _strCurrentPageIndex );
88 _nDefaultItemsPerPage = AppPropertiesService.getPropertyInt( PROPERTY_DEFAULT_LIST_CATEGORY_PER_PAGE, 50 );
89 _nItemsPerPage = Paginator.getItemsPerPage( request, Paginator.PARAMETER_ITEMS_PER_PAGE, _nItemsPerPage, _nDefaultItemsPerPage );
90
91 UrlItem url = new UrlItem( JSP_MANAGE_CATEGORYS );
92 String strUrl = url.getUrl( );
93 List<Category> listCategorys = (List<Category>) CategoryHome.getCategorysList( );
94
95
96 LocalizedPaginator paginator = new LocalizedPaginator( listCategorys, _nItemsPerPage, strUrl, PARAMETER_PAGE_INDEX, _strCurrentPageIndex, getLocale( ) );
97
98 Map<String, Object> model = new HashMap<String, Object>( );
99
100 model.put( MARK_NB_ITEMS_PER_PAGE, "" + _nItemsPerPage );
101 model.put( MARK_PAGINATOR, paginator );
102
103 model.put( MARK_CATEGORY_LIST, paginator.getPageItems( ) );
104
105 HtmlTemplate templateList = AppTemplateService.getTemplate( TEMPLATE_MANAGE_CATEGORYS, getLocale( ), model );
106
107 return getAdminPage( templateList.getHtml( ) );
108 }
109
110
111
112
113
114
115
116
117 public String getCreateCategory( HttpServletRequest request )
118 {
119 setPageTitleProperty( PROPERTY_PAGE_TITLE_CREATE_CATEGORY );
120
121 Map<String, Object> model = new HashMap<String, Object>( );
122
123 HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_CREATE_CATEGORY, getLocale( ), model );
124
125 return getAdminPage( template.getHtml( ) );
126 }
127
128
129
130
131
132
133
134
135 public String doCreateCategory( HttpServletRequest request )
136 {
137 Category category = new Category( );
138
139 if ( request.getParameter( PARAMETER_CATEGORY_NAME ).equals( "" ) )
140 {
141 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
142 }
143
144 category.setName( request.getParameter( PARAMETER_CATEGORY_NAME ) );
145
146 if ( request.getParameter( PARAMETER_CATEGORY_CATEGORY_ORDER ).equals( "" ) )
147 {
148 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
149 }
150
151 int nCategoryOrder = Integer.parseInt( request.getParameter( PARAMETER_CATEGORY_CATEGORY_ORDER ) );
152 category.setOrder( nCategoryOrder );
153
154 CategoryHome.create( category );
155
156 return JSP_REDIRECT_TO_MANAGE_CATEGORYS;
157 }
158
159
160
161
162
163
164
165
166 public String getConfirmRemoveCategory( HttpServletRequest request )
167 {
168 int nId = Integer.parseInt( request.getParameter( PARAMETER_CATEGORY_ID_CATEGORY ) );
169 UrlItem url = new UrlItem( JSP_DO_REMOVE_CATEGORY );
170 url.addParameter( PARAMETER_CATEGORY_ID_CATEGORY, nId );
171
172 return AdminMessageService.getMessageUrl( request, MESSAGE_CONFIRM_REMOVE_CATEGORY, url.getUrl( ), AdminMessage.TYPE_CONFIRMATION );
173 }
174
175
176
177
178
179
180
181
182 public String doRemoveCategory( HttpServletRequest request )
183 {
184 int nId = Integer.parseInt( request.getParameter( PARAMETER_CATEGORY_ID_CATEGORY ) );
185 CategoryHome.remove( nId );
186
187 return JSP_REDIRECT_TO_MANAGE_CATEGORYS;
188 }
189
190
191
192
193
194
195
196
197 public String getModifyCategory( HttpServletRequest request )
198 {
199 setPageTitleProperty( PROPERTY_PAGE_TITLE_MODIFY_CATEGORY );
200
201 int nId = Integer.parseInt( request.getParameter( PARAMETER_CATEGORY_ID_CATEGORY ) );
202 Category category = CategoryHome.findByPrimaryKey( nId );
203
204 Map<String, Object> model = new HashMap<String, Object>( );
205 model.put( MARK_CATEGORY, category );
206
207 HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_MODIFY_CATEGORY, getLocale( ), model );
208
209 return getAdminPage( template.getHtml( ) );
210 }
211
212
213
214
215
216
217
218
219 public String doModifyCategory( HttpServletRequest request )
220 {
221 int nId = Integer.parseInt( request.getParameter( PARAMETER_CATEGORY_ID_CATEGORY ) );
222 Category category = CategoryHome.findByPrimaryKey( nId );
223
224 if ( request.getParameter( PARAMETER_CATEGORY_ID_CATEGORY ).equals( "" ) )
225 {
226 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
227 }
228
229 int nIdCategory = Integer.parseInt( request.getParameter( PARAMETER_CATEGORY_ID_CATEGORY ) );
230 category.setId( nIdCategory );
231
232 if ( request.getParameter( PARAMETER_CATEGORY_NAME ).equals( "" ) )
233 {
234 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
235 }
236
237 category.setName( request.getParameter( PARAMETER_CATEGORY_NAME ) );
238
239 if ( request.getParameter( PARAMETER_CATEGORY_CATEGORY_ORDER ).equals( "" ) )
240 {
241 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
242 }
243
244 int nCategoryOrder = Integer.parseInt( request.getParameter( PARAMETER_CATEGORY_CATEGORY_ORDER ) );
245 category.setOrder( nCategoryOrder );
246 CategoryHome.update( category );
247
248 return JSP_REDIRECT_TO_MANAGE_CATEGORYS;
249 }
250 }