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.mydashboard.modules.notification.web;
35
36 import java.util.HashMap;
37 import java.util.Locale;
38 import java.util.Map;
39
40 import javax.inject.Inject;
41 import javax.inject.Named;
42 import javax.servlet.http.HttpServletRequest;
43
44 import org.apache.commons.lang3.StringUtils;
45
46 import fr.paris.lutece.plugins.mydashboard.modules.notification.service.INotificationService;
47 import fr.paris.lutece.plugins.mydashboard.modules.notification.service.NotificationService;
48 import fr.paris.lutece.plugins.mydashboard.modules.notification.util.NotificationConstants;
49 import fr.paris.lutece.plugins.mydashboard.service.MyDashboardComponent;
50 import fr.paris.lutece.portal.service.i18n.I18nService;
51 import fr.paris.lutece.portal.service.security.LuteceUser;
52 import fr.paris.lutece.portal.service.security.SecurityService;
53 import fr.paris.lutece.portal.service.template.AppTemplateService;
54 import fr.paris.lutece.portal.service.util.AppPropertiesService;
55 import fr.paris.lutece.util.html.HtmlTemplate;
56
57
58
59
60
61
62 public class MyDashboardComponentLastNotification extends MyDashboardComponent
63 {
64
65
66
67
68 private static final long serialVersionUID = 8297192924908575568L;
69
70 private static final String TEMPLATE_LAST_NOTIFICATION_LIST = "skin/plugins/mydashboard/modules/notification/dashboard_last_notification.html";
71 private static final String DASHBOARD_COMPONENT_ID = "notification.myDashboardComponentLastNotification";
72 private static final String MESSAGE_COMPONENT_DESCRIPTION = "module.mydashboard.notification.myDashboardComponentLastNotification.description";
73
74 @Inject
75 @Named( NotificationService.BEAN_NAME )
76 private INotificationService _notificationService;
77
78 @Override
79 public String getDashboardData( HttpServletRequest request )
80 {
81 LuteceUser user = SecurityService.getInstance( ).getRegisteredUser( request );
82
83 String strPanel = request.getParameter( NotificationConstants.PARAMETER_PANEL );
84 boolean isPanelAll = !( StringUtils.isNotEmpty( strPanel ) && strPanel.equals( NotificationConstants.MES_NOTIFICATIONS ) );
85
86 if ( user != null && isPanelAll )
87 {
88 Map<String, Object> model = new HashMap<>( );
89
90 model.put( NotificationConstants.MARK_NOTIFICATION_LIST, _notificationService.findNotificationsByUser( user.getName( ),
91 AppPropertiesService.getPropertyInt( NotificationConstants.PROPERTY_NUMBER_OF_NOTIFICATION, 5 ) ) );
92
93 HtmlTemplate htmTemplate = AppTemplateService.getTemplate( TEMPLATE_LAST_NOTIFICATION_LIST, request.getLocale( ), model );
94
95 return htmTemplate.getHtml( );
96 }
97
98 return StringUtils.EMPTY;
99 }
100
101 @Override
102 public String getComponentId( )
103 {
104 return DASHBOARD_COMPONENT_ID;
105 }
106
107 @Override
108 public String getComponentDescription( Locale locale )
109 {
110 return I18nService.getLocalizedString( MESSAGE_COMPONENT_DESCRIPTION, locale );
111 }
112
113 }