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.tagcloud.web;
35
36 import fr.paris.lutece.plugins.tagcloud.business.Tag;
37 import fr.paris.lutece.plugins.tagcloud.business.TagCloud;
38 import fr.paris.lutece.plugins.tagcloud.business.TagHome;
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.admin.PluginAdminPageJspBean;
44 import fr.paris.lutece.portal.web.constants.Messages;
45 import fr.paris.lutece.portal.web.util.LocalizedPaginator;
46 import fr.paris.lutece.util.ReferenceList;
47 import fr.paris.lutece.util.html.HtmlTemplate;
48 import fr.paris.lutece.util.html.Paginator;
49 import fr.paris.lutece.util.url.UrlItem;
50
51 import java.util.HashMap;
52 import java.util.List;
53
54 import javax.servlet.http.HttpServletRequest;
55
56
57
58
59
60 public class TagCloudJspBean extends PluginAdminPageJspBean
61 {
62
63
64
65
66 public static final String RIGHT_MANAGE_TAGCLOUD = "TAGCLOUD_MANAGEMENT";
67
68
69
70
71 private static final String TEMPLATE_MANAGE_TAGCLOUD = "/admin/plugins/tagcloud/manage_tagcloud.html";
72 private static final String TEMPLATE_MODIFY_TAGCLOUD = "/admin/plugins/tagcloud/modify_tagcloud.html";
73 private static final String TEMPLATE_CREATE_TAGCLOUD = "/admin/plugins/tagcloud/create_tagcloud.html";
74 private static final String TEMPLATE_CREATE_TAG = "/admin/plugins/tagcloud/create_tag.html";
75 private static final String TEMPLATE_MODIFY_TAG = "/admin/plugins/tagcloud/modify_tag.html";
76
77
78 private static final String PROPERTY_PAGE_TITLE_MANAGE_TAGCLOUD = "tagcloud.manage_tagcloud.pageTitle";
79 private static final String PROPERTY_PAGE_TITLE_MODIFY_TAGCLOUD = "tagcloud.modify_tagcloud.pageTitle";
80 private static final String PROPERTY_PAGE_TITLE_CREATE_TAGCLOUD = "tagcloud.create_tagcloud.pageTitle";
81 private static final String PROPERTY_PAGE_TITLE_CREATE_TAG = "tagcloud.create_tag.pageTitle";
82 private static final String PROPERTY_PAGE_TITLE_MODIFY_TAG = "tagcloud.modify_tag.pageTitle";
83 private static final String PROPERTY_PLUGIN_NAME = "tagcloud";
84
85
86 private static final String JSP_DO_REMOVE_TAGCLOUD = "jsp/admin/plugins/tagcloud/DoRemoveTagCloud.jsp";
87 private static final String JSP_DO_REMOVE_TAG = "jsp/admin/plugins/tagcloud/DoRemoveTag.jsp";
88 private static final String MARK_TAG_CLOUD_LIST = "tagcloud_list";
89 private static final String MARK_TAGCLOUD_ID = "tagcloud_id";
90 private static final String MARK_TAGCLOUD = "tagcloud";
91 private static final String MARK_NB_ITEMS_PER_PAGE = "nb_items_per_page";
92 private static final String MARK_PAGINATOR = "paginator";
93 private static final String MARK_LIST_WEIGHT = "list_weight";
94 private static final String JSP_MODIFY_TAG_CLOUD = "jsp/admin/plugins/tagcloud/ModifyTagCloud.jsp";
95 private static final String JSP_MODIFY_HOME = "ModifyTagCloud.jsp";
96 private static final String MARK_TAG_LIST = "tag_list";
97 private static final String MARK_TAG = "tagObject";
98 private static final String PROPERTY_TAGS_PER_PAGE = "tagcloud.eventsPerPage";
99 private static final String PARAMETER_PLUGIN_NAME = "plugin_name";
100 private static final String PARAMETER_TAG_CLOUD_NAME = "tagcloud_name";
101 private static final String PARAMETER_TAG_CLOUD_ID = "tagcloud_id";
102 private static final String PARAMETER_TAG_NAME = "tag_name";
103 private static final String PARAMETER_TAG_URL = "tag_url";
104 private static final String PARAMETER_TAG_WEIGHT = "tag_weight";
105 private static final String PARAMETER_TAG_ID = "tag_id";
106
107
108 private static final String MESSAGE_CONFIRM_REMOVE_TAGCLOUD = "tagcloud.message.confirmRemoveTagCloud";
109 private static final String MESSAGE_CONFIRM_REMOVE_TAG = "tagcloud.message.confirmRemoveTag";
110 private String _strCurrentPageIndex;
111 private int _nItemsPerPage;
112 private int _nDefaultItemsPerPage;
113
114
115
116
117
118
119
120
121 public TagCloudJspBean( )
122 {
123 _nDefaultItemsPerPage = AppPropertiesService.getPropertyInt( PROPERTY_TAGS_PER_PAGE, 5 );
124 }
125
126
127
128
129
130
131
132 public String getManageTagClouds( HttpServletRequest request )
133 {
134 setPageTitleProperty( PROPERTY_PAGE_TITLE_MANAGE_TAGCLOUD );
135 _strCurrentPageIndex = Paginator.getPageIndex( request, Paginator.PARAMETER_PAGE_INDEX, _strCurrentPageIndex );
136 _nItemsPerPage = Paginator.getItemsPerPage( request, Paginator.PARAMETER_ITEMS_PER_PAGE, _nItemsPerPage,
137 _nDefaultItemsPerPage );
138
139 HashMap model = new HashMap( );
140 List listClouds = (List) TagHome.getTagClouds( getPlugin( ) );
141 LocalizedPaginator paginator = new LocalizedPaginator( listClouds, _nItemsPerPage, getHomeUrl( request ),
142 Paginator.PARAMETER_PAGE_INDEX, _strCurrentPageIndex , getLocale() );
143
144 model.put( MARK_TAG_CLOUD_LIST, listClouds );
145 model.put( MARK_PAGINATOR, paginator );
146 model.put( MARK_NB_ITEMS_PER_PAGE, "" + _nItemsPerPage );
147
148 HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_MANAGE_TAGCLOUD, getLocale( ), model );
149
150 return getAdminPage( template.getHtml( ) );
151 }
152
153
154
155
156
157
158
159 public String getModifyTagCloud( HttpServletRequest request )
160 {
161 setPageTitleProperty( PROPERTY_PAGE_TITLE_MODIFY_TAGCLOUD );
162
163 int nCloudId = Integer.parseInt( request.getParameter( PARAMETER_TAG_CLOUD_ID ) );
164 TagCloud tagCloud = TagHome.findCloudById( nCloudId, getPlugin( ) );
165 HashMap model = new HashMap( );
166 List listTags = TagHome.findTagsByCloud( nCloudId, getPlugin( ) );
167
168
169 _strCurrentPageIndex = Paginator.getPageIndex( request, Paginator.PARAMETER_PAGE_INDEX, _strCurrentPageIndex );
170 _nItemsPerPage = Paginator.getItemsPerPage( request, Paginator.PARAMETER_ITEMS_PER_PAGE, _nItemsPerPage,
171 _nDefaultItemsPerPage );
172
173 UrlItem url = new UrlItem( JSP_MODIFY_TAG_CLOUD );
174 url.addParameter( PARAMETER_PLUGIN_NAME, PROPERTY_PLUGIN_NAME );
175 url.addParameter( PARAMETER_TAG_CLOUD_ID, nCloudId );
176
177 LocalizedPaginator paginator = new LocalizedPaginator( listTags, _nItemsPerPage, url.getUrl( ), Paginator.PARAMETER_PAGE_INDEX,
178 _strCurrentPageIndex , getLocale() );
179 model.put( MARK_TAGCLOUD, tagCloud );
180 model.put( MARK_PAGINATOR, paginator );
181 model.put( MARK_NB_ITEMS_PER_PAGE, "" + _nItemsPerPage );
182 model.put( MARK_TAG_LIST, paginator.getPageItems( ) );
183
184 HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_MODIFY_TAGCLOUD, getLocale( ), model );
185
186 return getAdminPage( template.getHtml( ) );
187 }
188
189
190
191
192
193
194
195 public String getCreateTagCloud( HttpServletRequest request )
196 {
197 setPageTitleProperty( PROPERTY_PAGE_TITLE_CREATE_TAGCLOUD );
198
199 HashMap model = new HashMap( );
200
201 HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_CREATE_TAGCLOUD, getLocale( ), model );
202
203 return getAdminPage( template.getHtml( ) );
204 }
205
206
207
208
209
210
211
212 public String doCreateTagCloud( HttpServletRequest request )
213 {
214 String strName = request.getParameter( PARAMETER_TAG_CLOUD_NAME );
215
216
217 if ( strName.equals( "" ) )
218 {
219 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
220 }
221
222 TagCloudgcloud/business/TagCloud.html#TagCloud">TagCloud tagcloud = new TagCloud( );
223 tagcloud.setTagCloudDescription( strName );
224 TagHome.create( tagcloud, getPlugin( ) );
225
226 return getHomeUrl( request );
227 }
228
229
230
231
232
233
234
235 public String doModifyTagCloud( HttpServletRequest request )
236 {
237 String strName = request.getParameter( PARAMETER_TAG_CLOUD_NAME );
238
239
240 int nCloudId = Integer.parseInt( request.getParameter( PARAMETER_TAG_CLOUD_ID ) );
241
242 if ( strName.equals( "" ) )
243 {
244 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
245 }
246
247 TagCloud tagcloud = TagHome.findCloudById( nCloudId, getPlugin( ) );
248 tagcloud.setTagCloudDescription( strName );
249 TagHome.update( tagcloud, getPlugin( ) );
250
251 return getHomeUrl( request );
252 }
253
254
255
256
257
258
259
260 public String getConfirmRemoveTagCloud( HttpServletRequest request )
261 {
262 UrlItem url = new UrlItem( JSP_DO_REMOVE_TAGCLOUD );
263 url.addParameter( PARAMETER_TAG_CLOUD_ID, Integer.parseInt( request.getParameter( PARAMETER_TAG_CLOUD_ID ) ) );
264
265 return AdminMessageService.getMessageUrl( request, MESSAGE_CONFIRM_REMOVE_TAGCLOUD, url.getUrl( ),
266 AdminMessage.TYPE_CONFIRMATION );
267 }
268
269
270
271
272
273
274
275 public String getConfirmRemoveTag( HttpServletRequest request )
276 {
277 UrlItem url = new UrlItem( JSP_DO_REMOVE_TAG );
278 url.addParameter( PARAMETER_TAG_CLOUD_ID, Integer.parseInt( request.getParameter( PARAMETER_TAG_CLOUD_ID ) ) );
279 url.addParameter( PARAMETER_TAG_ID, Integer.parseInt( request.getParameter( PARAMETER_TAG_ID ) ) );
280
281 return AdminMessageService.getMessageUrl( request, MESSAGE_CONFIRM_REMOVE_TAG, url.getUrl( ),
282 AdminMessage.TYPE_CONFIRMATION );
283 }
284
285
286
287
288
289
290
291 public String doRemoveTagCloud( HttpServletRequest request )
292 {
293 int nCloudId = Integer.parseInt( request.getParameter( PARAMETER_TAG_CLOUD_ID ) );
294 List<Tag> listTags = TagHome.findTagsByCloud( nCloudId, getPlugin( ) );
295
296 for ( Tag tag : listTags )
297 {
298 TagHome.removeTag( tag.getIdTag( ), tag.getIdTagCloud( ), getPlugin( ) );
299 }
300
301 TagHome.removeCloud( nCloudId, getPlugin( ) );
302
303
304 return getHomeUrl( request );
305 }
306
307
308
309
310
311
312
313 public String doRemoveTag( HttpServletRequest request )
314 {
315 int nCloudId = Integer.parseInt( request.getParameter( PARAMETER_TAG_CLOUD_ID ) );
316 int nTagId = Integer.parseInt( request.getParameter( PARAMETER_TAG_ID ) );
317
318 TagHome.removeTag( nTagId, nCloudId, getPlugin( ) );
319
320 UrlItem url = new UrlItem( JSP_MODIFY_HOME );
321 url.addParameter( PARAMETER_TAG_CLOUD_ID, nCloudId );
322
323 return url.getUrl( );
324 }
325
326
327
328
329
330
331
332 public String getCreateTag( HttpServletRequest request )
333 {
334 setPageTitleProperty( PROPERTY_PAGE_TITLE_CREATE_TAG );
335
336 HashMap model = new HashMap( );
337 model.put( MARK_TAGCLOUD_ID, Integer.parseInt( request.getParameter( PARAMETER_TAG_CLOUD_ID ) ) );
338 model.put( MARK_LIST_WEIGHT, getListWeight( ) );
339
340 HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_CREATE_TAG, getLocale( ), model );
341
342 return getAdminPage( template.getHtml( ) );
343 }
344
345
346
347
348
349
350
351 public String doCreateTag( HttpServletRequest request )
352 {
353 int nCloudId = Integer.parseInt( request.getParameter( PARAMETER_TAG_CLOUD_ID ) );
354 String strTagName = request.getParameter( PARAMETER_TAG_NAME );
355 String strTagUrl = request.getParameter( PARAMETER_TAG_URL );
356 String strTagWeight = request.getParameter( PARAMETER_TAG_WEIGHT );
357
358
359 if ( ( strTagName == null ) || strTagName.equals( "" ) )
360 {
361 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
362 }
363
364 Tagplugins/tagcloud/business/Tag.html#Tag">Tag tag = new Tag( );
365 tag.setIdTagCloud( nCloudId );
366 tag.setTagName( strTagName );
367 tag.setTagUrl( strTagUrl.replaceAll( "&", "&" ) );
368 tag.setTagWeight( strTagWeight );
369 TagHome.create( tag, getPlugin( ) );
370
371 UrlItem url = new UrlItem( JSP_MODIFY_HOME );
372 url.addParameter( PARAMETER_TAG_CLOUD_ID, nCloudId );
373
374 return url.getUrl( );
375 }
376
377
378
379
380
381
382
383 public String doModifyTag( HttpServletRequest request )
384 {
385 int nCloudId = Integer.parseInt( request.getParameter( PARAMETER_TAG_CLOUD_ID ) );
386 int nTagId = Integer.parseInt( request.getParameter( PARAMETER_TAG_ID ) );
387 String strTagName = request.getParameter( PARAMETER_TAG_NAME );
388
389
390 if ( ( strTagName == null ) || strTagName.equals( "" ) )
391 {
392 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
393 }
394
395 Tag tag = TagHome.findByPrimaryKey( nCloudId, nTagId, getPlugin( ) );
396
397 String strTagUrl = request.getParameter( PARAMETER_TAG_URL );
398 String strTagWeight = request.getParameter( PARAMETER_TAG_WEIGHT );
399 tag.setTagName( strTagName );
400 tag.setTagUrl( strTagUrl.replaceAll( "&", "&" ) );
401 tag.setTagWeight( strTagWeight );
402 TagHome.update( tag, getPlugin( ) );
403
404 UrlItem url = new UrlItem( JSP_MODIFY_HOME );
405 url.addParameter( PARAMETER_TAG_CLOUD_ID, nCloudId );
406
407 return url.getUrl( );
408 }
409
410
411
412
413
414
415
416 public String getModifyTag( HttpServletRequest request )
417 {
418 setPageTitleProperty( PROPERTY_PAGE_TITLE_MODIFY_TAG );
419
420 int nCloudId = Integer.parseInt( request.getParameter( PARAMETER_TAG_CLOUD_ID ) );
421 int nTagId = Integer.parseInt( request.getParameter( PARAMETER_TAG_ID ) );
422 Tag tag = TagHome.findByPrimaryKey( nCloudId, nTagId, getPlugin( ) );
423
424 HashMap model = new HashMap( );
425 model.put( MARK_TAG, tag );
426 model.put( MARK_LIST_WEIGHT, getListWeight( ) );
427
428 HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_MODIFY_TAG, getLocale( ), model );
429
430 return getAdminPage( template.getHtml( ) );
431 }
432
433
434
435
436
437 private ReferenceList getListWeight( )
438 {
439 ReferenceList listWeight = new ReferenceList( );
440
441 for ( int i = 1; i < 11; i++ )
442 {
443 listWeight.addItem( "" + i, "" + i );
444 }
445
446 return listWeight;
447 }
448 }