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.insertajax.web;
35
36 import fr.paris.lutece.plugins.insertajax.business.InsertAjax;
37 import fr.paris.lutece.plugins.insertajax.business.InsertAjaxHome;
38 import fr.paris.lutece.portal.business.role.RoleHome;
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.AppPathService;
43 import fr.paris.lutece.portal.service.util.AppPropertiesService;
44 import fr.paris.lutece.portal.service.workgroup.AdminWorkgroupService;
45 import fr.paris.lutece.portal.web.admin.PluginAdminPageJspBean;
46 import fr.paris.lutece.portal.web.constants.Messages;
47 import fr.paris.lutece.util.ReferenceList;
48 import fr.paris.lutece.util.html.HtmlTemplate;
49 import fr.paris.lutece.util.html.Paginator;
50 import fr.paris.lutece.util.url.UrlItem;
51
52 import java.util.Collection;
53 import java.util.HashMap;
54 import java.util.List;
55 import java.util.Map;
56
57 import javax.servlet.http.HttpServletRequest;
58
59
60
61
62
63 public class InsertAjaxJspBean extends PluginAdminPageJspBean
64 {
65
66 public static final String RIGHT_MANAGE = "INSERTAJAX_MANAGEMENT";
67
68
69 private static final String PROPERTY_PAGE_TITLE_INSERTAJAX_LIST = "ajax.manage_insertajax.pageTitle";
70 private static final String PROPERTY_PAGE_TITLE_MODIFY = "insertajax.modify_insertajax.pageTitle";
71 private static final String PROPERTY_PAGE_TITLE_CREATE = "insertajax.create_insertajax.pageTitle";
72
73
74 private static final String PROPERTY_DEFAULT_INSERTAJAX_LIST_PER_PAGE = "insertajax.insertAjaxList.itemsPerPage";
75
76
77 private static final String MESSAGE_CONFIRM_REMOVE_INSERTAJAX = "insertajax.message.confirmRemoveInsertAjax";
78
79
80 private static final String MARK_LIST_INSERTAJAX_LIST = "insertajax_list";
81 private static final String MARK_NB_ITEMS_PER_PAGE = "nb_items_per_page";
82 private static final String MARK_WORKGROUPS_LIST = "workgroups_list";
83 private static final String MARK_WEBAPP_URL = "webapp_url";
84 private static final String MARK_LOCALE = "locale";
85 private static final String MARK_HTML_CONTENT = "html_content";
86 private static final String MARK_INSERTAJAX = "insertajax";
87 private static final String MARK_ROLES_LIST = "roles_list";
88 private static final String MARK_PAGINATOR = "paginator";
89
90
91 private static final String PARAMETER_INSERTAJAX_ID = "id";
92 private static final String PARAMETER_INSERTAJAX_NAME = "name";
93 private static final String PARAMETER_INSERTAJAX_HTML = "html_content";
94 private static final String PARAMETER_INSERTAJAX_SQL = "sql";
95 private static final String PARAMETER_INSERTAJAX_WORKGROUP = "workgroup";
96 private static final String PARAMETER_INSERTAJAX_ROLE = "role";
97 private static final String PARAMETER_ID_INSERTAJAX_LIST = "insertajax_list_id";
98 private static final String PARAMETER_PAGE_INDEX = "page_index";
99
100
101 private static final String TEMPLATE_MANAGE_INSERTAJAX = "/admin/plugins/insertajax/manage.html";
102 private static final String TEMPLATE_CREATE_INSERTAJAX = "/admin/plugins/insertajax/create.html";
103 private static final String TEMPLATE_MODIFY_INSERTAJAX = "/admin/plugins/insertajax/modify.html";
104 private static final String TEMPLATE_JAVASCRIPT = "admin/plugins/insertajax/insertajax_javascript.html";
105
106
107 private static final String JSP_DO_REMOVE_INSERTAJAX = "jsp/admin/plugins/insertajax/DoRemove.jsp";
108 private static final String JSP_REDIRECT_TO_MANAGE_INSERTAJAX = "Manage.jsp";
109
110
111 private int _nDefaultItemsPerPage;
112 private String _strCurrentPageIndex;
113 private int _nItemsPerPage;
114
115
116
117
118
119 public String getManage( HttpServletRequest request )
120 {
121 setPageTitleProperty( PROPERTY_PAGE_TITLE_INSERTAJAX_LIST );
122
123 _strCurrentPageIndex = Paginator.getPageIndex( request, Paginator.PARAMETER_PAGE_INDEX, _strCurrentPageIndex );
124 _nDefaultItemsPerPage = AppPropertiesService.getPropertyInt( PROPERTY_DEFAULT_INSERTAJAX_LIST_PER_PAGE, 50 );
125 _nItemsPerPage = Paginator.getItemsPerPage( request, Paginator.PARAMETER_ITEMS_PER_PAGE, _nItemsPerPage,
126 _nDefaultItemsPerPage );
127
128 Collection<InsertAjax> listInsertAjaxList = InsertAjaxHome.findAll( getPlugin( ) );
129 listInsertAjaxList = AdminWorkgroupService.getAuthorizedCollection( listInsertAjaxList, getUser( ) );
130
131 Paginator paginator = new Paginator( (List<InsertAjax>) listInsertAjaxList, _nItemsPerPage,
132 getHomeUrl( request ), PARAMETER_PAGE_INDEX, _strCurrentPageIndex );
133
134 Map<String, Object> model = new HashMap<String, Object>( );
135 model.put( MARK_NB_ITEMS_PER_PAGE, "" + _nItemsPerPage );
136 model.put( MARK_PAGINATOR, paginator );
137 model.put( MARK_LIST_INSERTAJAX_LIST, paginator.getPageItems( ) );
138
139 HtmlTemplate templateList = AppTemplateService.getTemplate( TEMPLATE_MANAGE_INSERTAJAX, getLocale( ), model );
140
141 return getAdminPage( templateList.getHtml( ) );
142 }
143
144
145
146
147
148
149
150 public String getCreate( HttpServletRequest request )
151 {
152 setPageTitleProperty( PROPERTY_PAGE_TITLE_CREATE );
153
154 Map<String, Object> model = new HashMap<String, Object>( );
155 ReferenceList workgroupsList = AdminWorkgroupService.getUserWorkgroups( getUser( ), getLocale( ) );
156 model.put( MARK_WORKGROUPS_LIST, workgroupsList );
157 model.put( MARK_WEBAPP_URL, AppPathService.getBaseUrl( request ) );
158 model.put( MARK_LOCALE, getLocale( ) );
159
160 HtmlTemplate defaultHtml = AppTemplateService.getTemplate( TEMPLATE_JAVASCRIPT );
161 model.put( MARK_HTML_CONTENT, defaultHtml.getHtml( ) );
162 model.put( MARK_ROLES_LIST, RoleHome.getRolesList( ) );
163
164 HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_CREATE_INSERTAJAX, getLocale( ), model );
165
166 return getAdminPage( template.getHtml( ) );
167 }
168
169
170
171
172
173
174
175 public String doCreate( HttpServletRequest request )
176 {
177 String strName = request.getParameter( PARAMETER_INSERTAJAX_NAME );
178 String strHtml = request.getParameter( PARAMETER_INSERTAJAX_HTML );
179 String strSql = request.getParameter( PARAMETER_INSERTAJAX_SQL );
180 String strWorkgroup = request.getParameter( PARAMETER_INSERTAJAX_WORKGROUP );
181 String strRole = request.getParameter( PARAMETER_INSERTAJAX_ROLE );
182
183
184 if ( ( strName == null ) || strName.trim( ).equals( "" ) )
185 {
186 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
187 }
188
189 InsertAjax insertajax = new InsertAjax( );
190
191 insertajax.setName( strName );
192 insertajax.setHtml( strHtml );
193 insertajax.setSql( strSql );
194 insertajax.setWorkgroup( strWorkgroup );
195 insertajax.setRole( strRole );
196
197 InsertAjaxHome.create( insertajax, getPlugin( ) );
198
199
200 return JSP_REDIRECT_TO_MANAGE_INSERTAJAX;
201 }
202
203
204
205
206
207
208
209 public String doDuplicate( HttpServletRequest request )
210 {
211 int nId = Integer.parseInt( request.getParameter( PARAMETER_INSERTAJAX_ID ) );
212
213 InsertAjax insertajax = InsertAjaxHome.findByPrimaryKey( nId, getPlugin( ) );
214
215 InsertAjax duplicateInsertAjax = new InsertAjax( );
216 duplicateInsertAjax.setName( insertajax.getName( ) );
217 duplicateInsertAjax.setHtml( insertajax.getHtml( ) );
218 duplicateInsertAjax.setSql( insertajax.getSql( ) );
219 duplicateInsertAjax.setWorkgroup( insertajax.getWorkgroup( ) );
220 duplicateInsertAjax.setRole( insertajax.getRole( ) );
221
222 InsertAjaxHome.create( duplicateInsertAjax, getPlugin( ) );
223
224
225 return JSP_REDIRECT_TO_MANAGE_INSERTAJAX;
226 }
227
228
229
230
231
232
233
234 public String getModify( HttpServletRequest request )
235 {
236 setPageTitleProperty( PROPERTY_PAGE_TITLE_MODIFY );
237
238 int nId = Integer.parseInt( request.getParameter( PARAMETER_INSERTAJAX_ID ) );
239 InsertAjax insertPage = InsertAjaxHome.findByPrimaryKey( nId, getPlugin( ) );
240
241 Map<String, Object> model = new HashMap<String, Object>( );
242 ReferenceList workgroupsList = AdminWorkgroupService.getUserWorkgroups( getUser( ), getLocale( ) );
243 model.put( MARK_WORKGROUPS_LIST, workgroupsList );
244 model.put( MARK_WEBAPP_URL, AppPathService.getBaseUrl( request ) );
245 model.put( MARK_LOCALE, getLocale( ) );
246 model.put( MARK_INSERTAJAX, insertPage );
247 model.put( MARK_ROLES_LIST, RoleHome.getRolesList( ) );
248
249 HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_MODIFY_INSERTAJAX, getLocale( ), model );
250
251 return getAdminPage( template.getHtml( ) );
252 }
253
254
255
256
257
258
259
260 public String doModify( HttpServletRequest request )
261 {
262
263 if ( request.getParameter( PARAMETER_INSERTAJAX_NAME ).equals( "" ) ||
264 request.getParameter( PARAMETER_INSERTAJAX_HTML ).equals( "" ) )
265 {
266 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
267 }
268
269 int nId = Integer.parseInt( request.getParameter( PARAMETER_INSERTAJAX_ID ) );
270
271 InsertAjax insertPage = InsertAjaxHome.findByPrimaryKey( nId, getPlugin( ) );
272 insertPage.setName( request.getParameter( PARAMETER_INSERTAJAX_NAME ) );
273 insertPage.setHtml( request.getParameter( PARAMETER_INSERTAJAX_HTML ) );
274 insertPage.setSql( request.getParameter( PARAMETER_INSERTAJAX_SQL ) );
275 insertPage.setWorkgroup( request.getParameter( PARAMETER_INSERTAJAX_WORKGROUP ) );
276 insertPage.setRole( request.getParameter( PARAMETER_INSERTAJAX_ROLE ) );
277
278 InsertAjaxHome.update( insertPage, getPlugin( ) );
279
280
281 return JSP_REDIRECT_TO_MANAGE_INSERTAJAX;
282 }
283
284
285
286
287
288
289
290 public String getConfirmRemove( HttpServletRequest request )
291 {
292 int nIdInsertAjax = Integer.parseInt( request.getParameter( PARAMETER_INSERTAJAX_ID ) );
293
294 UrlItem url = new UrlItem( JSP_DO_REMOVE_INSERTAJAX );
295 url.addParameter( PARAMETER_INSERTAJAX_ID, nIdInsertAjax );
296 url.addParameter( PARAMETER_ID_INSERTAJAX_LIST, request.getParameter( PARAMETER_ID_INSERTAJAX_LIST ) );
297
298 Object[] args = { request.getParameter( PARAMETER_INSERTAJAX_NAME ) };
299
300 return AdminMessageService.getMessageUrl( request, MESSAGE_CONFIRM_REMOVE_INSERTAJAX, args, url.getUrl( ),
301 AdminMessage.TYPE_CONFIRMATION );
302 }
303
304
305
306
307
308
309
310 public String doRemove( HttpServletRequest request )
311 {
312 int nIdInsertAjax = Integer.parseInt( request.getParameter( PARAMETER_INSERTAJAX_ID ) );
313
314 InsertAjax insertPage = InsertAjaxHome.findByPrimaryKey( nIdInsertAjax, getPlugin( ) );
315 InsertAjaxHome.remove( insertPage, getPlugin( ) );
316
317
318 return JSP_REDIRECT_TO_MANAGE_INSERTAJAX;
319 }
320 }