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.List;
38 import java.util.Locale;
39 import java.util.Map;
40
41 import javax.inject.Inject;
42 import javax.inject.Named;
43 import javax.servlet.http.HttpServletRequest;
44 import javax.servlet.http.HttpSession;
45
46 import org.apache.commons.lang3.StringUtils;
47
48 import fr.paris.lutece.plugins.mydashboard.modules.notification.business.Notification;
49 import fr.paris.lutece.plugins.mydashboard.modules.notification.service.INotificationService;
50 import fr.paris.lutece.plugins.mydashboard.modules.notification.service.NotificationService;
51 import fr.paris.lutece.plugins.mydashboard.modules.notification.util.NotificationConstants;
52 import fr.paris.lutece.plugins.mydashboard.service.MyDashboardComponent;
53 import fr.paris.lutece.portal.service.i18n.I18nService;
54 import fr.paris.lutece.portal.service.security.LuteceUser;
55 import fr.paris.lutece.portal.service.security.SecurityService;
56 import fr.paris.lutece.portal.service.template.AppTemplateService;
57 import fr.paris.lutece.portal.service.util.AppPropertiesService;
58 import fr.paris.lutece.portal.web.util.LocalizedPaginator;
59 import fr.paris.lutece.util.html.AbstractPaginator;
60 import fr.paris.lutece.util.html.HtmlTemplate;
61
62
63
64
65
66
67 public class MyDashboardComponentAllNotification extends MyDashboardComponent
68 {
69
70
71
72
73 private static final long serialVersionUID = 8297192924908575568L;
74
75 private static final String TEMPLATE_ALL_NOTIFICATION_LIST = "skin/plugins/mydashboard/modules/notification/dashboard_all_notification.html";
76 private static final String DASHBOARD_COMPONENT_ID = "notification.myDashboardComponentAllNotification";
77 private static final String MESSAGE_COMPONENT_DESCRIPTION = "module.mydashboard.notification.myDashboardComponentAllNotification.description";
78
79 @Inject
80 @Named( NotificationService.BEAN_NAME )
81 private INotificationService _notificationService;
82
83 @Override
84 public String getDashboardData( HttpServletRequest request )
85 {
86 LuteceUser user = SecurityService.getInstance( ).getRegisteredUser( request );
87 String strPanel = request.getParameter( NotificationConstants.PARAMETER_PANEL );
88 boolean isPanelAll = StringUtils.isNotEmpty( strPanel ) && strPanel.equals( NotificationConstants.MES_NOTIFICATIONS );
89
90 if ( user != null && isPanelAll )
91 {
92 Map<String, Object> model = new HashMap<>( );
93
94 HttpSession session = request.getSession( true );
95
96 String strCurrentPageIndex = session.getAttribute( NotificationConstants.CURRENT_PAGE_INDEX ) != null
97 ? (String) session.getAttribute( NotificationConstants.CURRENT_PAGE_INDEX )
98 : null;
99
100 strCurrentPageIndex = AbstractPaginator.getPageIndex( request, AbstractPaginator.PARAMETER_PAGE_INDEX, strCurrentPageIndex );
101 session.setAttribute( NotificationConstants.CURRENT_PAGE_INDEX, strCurrentPageIndex );
102
103 int nDefaultItemsPerPage = AppPropertiesService.getPropertyInt( NotificationConstants.PROPERTY_NUMBER_OF_DEMAND_PER_PAGE, 10 );
104
105 List<Notification> listNotification = _notificationService.findNotificationsByUser( user.getName( ), null );
106
107
108 LocalizedPaginator<Notification> paginator = new LocalizedPaginator<>( listNotification, nDefaultItemsPerPage,
109 AppPropertiesService.getProperty( NotificationConstants.PROPERTY_URL_MES_NOTIFICATIONS ), AbstractPaginator.PARAMETER_PAGE_INDEX,
110 strCurrentPageIndex, request.getLocale( ) );
111
112 model.put( NotificationConstants.MARK_NB_ITEMS_PER_PAGE, "" + nDefaultItemsPerPage );
113 model.put( NotificationConstants.MARK_PAGINATOR, paginator );
114 model.put( NotificationConstants.MARK_NOTIFICATION_LIST, paginator.getPageItems( ) );
115
116 HtmlTemplate htmTemplate = AppTemplateService.getTemplate( TEMPLATE_ALL_NOTIFICATION_LIST, request.getLocale( ), model );
117
118 return htmTemplate.getHtml( );
119 }
120
121 return StringUtils.EMPTY;
122 }
123
124 @Override
125 public String getComponentId( )
126 {
127 return DASHBOARD_COMPONENT_ID;
128 }
129
130 @Override
131 public String getComponentDescription( Locale locale )
132 {
133 return I18nService.getLocalizedString( MESSAGE_COMPONENT_DESCRIPTION, locale );
134 }
135
136 }