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.indicator.web;
35
36 import fr.paris.lutece.plugins.indicator.business.Indicator;
37 import fr.paris.lutece.plugins.indicator.business.IndicatorHome;
38 import fr.paris.lutece.plugins.indicator.service.TimeCodeService;
39 import fr.paris.lutece.portal.service.message.AdminMessage;
40 import fr.paris.lutece.portal.service.message.AdminMessageService;
41 import fr.paris.lutece.portal.util.mvc.admin.annotations.Controller;
42 import fr.paris.lutece.portal.util.mvc.commons.annotations.Action;
43 import fr.paris.lutece.portal.util.mvc.commons.annotations.View;
44 import fr.paris.lutece.util.url.UrlItem;
45
46 import java.util.List;
47 import java.util.Map;
48
49 import javax.servlet.http.HttpServletRequest;
50
51
52
53
54
55 @Controller( controllerJsp = "ManageIndicators.jsp", controllerPath = "jsp/admin/plugins/indicator/", right = "INDICATOR_MANAGEMENT" )
56 public class IndicatorJspBean extends ManageIndicatorJspBean
57 {
58
59
60
61
62 private static final String TEMPLATE_MANAGE_INDICATORS = "/admin/plugins/indicator/manage_indicators.html";
63 private static final String TEMPLATE_CREATE_INDICATOR = "/admin/plugins/indicator/create_indicator.html";
64 private static final String TEMPLATE_MODIFY_INDICATOR = "/admin/plugins/indicator/modify_indicator.html";
65
66
67 private static final String PARAMETER_ID_INDICATOR = "id";
68
69
70 private static final String PROPERTY_PAGE_TITLE_MANAGE_INDICATORS = "indicator.manage_indicators.pageTitle";
71 private static final String PROPERTY_PAGE_TITLE_MODIFY_INDICATOR = "indicator.modify_indicator.pageTitle";
72 private static final String PROPERTY_PAGE_TITLE_CREATE_INDICATOR = "indicator.create_indicator.pageTitle";
73
74
75 private static final String MARK_INDICATOR_LIST = "indicator_list";
76 private static final String MARK_INDICATOR = "indicator";
77 private static final String MARK_PERIODS_LIST = "periods_list";
78 private static final String JSP_MANAGE_INDICATORS = "jsp/admin/plugins/indicator/ManageIndicators.jsp";
79
80
81 private static final String MESSAGE_CONFIRM_REMOVE_INDICATOR = "indicator.message.confirmRemoveIndicator";
82 private static final String VALIDATION_ATTRIBUTES_PREFIX = "indicator.model.entity.indicator.attribute.";
83
84
85 private static final String VIEW_MANAGE_INDICATORS = "manageIndicators";
86 private static final String VIEW_CREATE_INDICATOR = "createIndicator";
87 private static final String VIEW_MODIFY_INDICATOR = "modifyIndicator";
88
89
90 private static final String ACTION_CREATE_INDICATOR = "createIndicator";
91 private static final String ACTION_MODIFY_INDICATOR = "modifyIndicator";
92 private static final String ACTION_REMOVE_INDICATOR = "removeIndicator";
93 private static final String ACTION_CONFIRM_REMOVE_INDICATOR = "confirmRemoveIndicator";
94
95
96 private static final String INFO_INDICATOR_CREATED = "indicator.info.indicator.created";
97 private static final String INFO_INDICATOR_UPDATED = "indicator.info.indicator.updated";
98 private static final String INFO_INDICATOR_REMOVED = "indicator.info.indicator.removed";
99 private static final long serialVersionUID = 1L;
100
101
102 private Indicator _indicator;
103
104
105
106
107
108
109 @View( value = VIEW_MANAGE_INDICATORS, defaultView = true )
110 public String getManageIndicators( HttpServletRequest request )
111 {
112 _indicator = null;
113
114 List<Indicator> listIndicators = (List<Indicator>) IndicatorHome.getIndicatorsList( );
115 Map<String, Object> model = getPaginatedListModel( request, MARK_INDICATOR_LIST, listIndicators,
116 JSP_MANAGE_INDICATORS );
117
118 return getPage( PROPERTY_PAGE_TITLE_MANAGE_INDICATORS, TEMPLATE_MANAGE_INDICATORS, model );
119 }
120
121
122
123
124
125
126
127 @View( VIEW_CREATE_INDICATOR )
128 public String getCreateIndicator( HttpServletRequest request )
129 {
130 _indicator = ( _indicator != null ) ? _indicator : new Indicator( );
131
132 Map<String, Object> model = getModel( );
133 model.put( MARK_INDICATOR, _indicator );
134 model.put( MARK_PERIODS_LIST, TimeCodeService.getPeriod( getLocale( ) ) );
135
136 return getPage( PROPERTY_PAGE_TITLE_CREATE_INDICATOR, TEMPLATE_CREATE_INDICATOR, model );
137 }
138
139
140
141
142
143
144
145 @Action( ACTION_CREATE_INDICATOR )
146 public String doCreateIndicator( HttpServletRequest request )
147 {
148 populate( _indicator, request );
149
150
151 if ( !validateBean( _indicator, VALIDATION_ATTRIBUTES_PREFIX ) )
152 {
153 return redirectView( request, VIEW_CREATE_INDICATOR );
154 }
155
156 IndicatorHome.create( _indicator );
157 addInfo( INFO_INDICATOR_CREATED, getLocale( ) );
158
159 return redirectView( request, VIEW_MANAGE_INDICATORS );
160 }
161
162
163
164
165
166
167
168
169 @Action( ACTION_CONFIRM_REMOVE_INDICATOR )
170 public String getConfirmRemoveIndicator( HttpServletRequest request )
171 {
172 int nId = Integer.parseInt( request.getParameter( PARAMETER_ID_INDICATOR ) );
173 UrlItem url = new UrlItem( getActionUrl( ACTION_REMOVE_INDICATOR ) );
174 url.addParameter( PARAMETER_ID_INDICATOR, nId );
175
176 String strMessageUrl = AdminMessageService.getMessageUrl( request, MESSAGE_CONFIRM_REMOVE_INDICATOR,
177 url.getUrl( ), AdminMessage.TYPE_CONFIRMATION );
178
179 return redirect( request, strMessageUrl );
180 }
181
182
183
184
185
186
187
188 @Action( ACTION_REMOVE_INDICATOR )
189 public String doRemoveIndicator( HttpServletRequest request )
190 {
191 int nId = Integer.parseInt( request.getParameter( PARAMETER_ID_INDICATOR ) );
192 IndicatorHome.remove( nId );
193 addInfo( INFO_INDICATOR_REMOVED, getLocale( ) );
194
195 return redirectView( request, VIEW_MANAGE_INDICATORS );
196 }
197
198
199
200
201
202
203
204 @View( VIEW_MODIFY_INDICATOR )
205 public String getModifyIndicator( HttpServletRequest request )
206 {
207 int nId = Integer.parseInt( request.getParameter( PARAMETER_ID_INDICATOR ) );
208
209 if ( ( _indicator == null ) || ( _indicator.getId( ) != nId ) )
210 {
211 _indicator = IndicatorHome.findByPrimaryKey( nId );
212 }
213
214 Map<String, Object> model = getModel( );
215 model.put( MARK_INDICATOR, _indicator );
216 model.put( MARK_PERIODS_LIST, TimeCodeService.getPeriod( getLocale( ) ) );
217
218 return getPage( PROPERTY_PAGE_TITLE_MODIFY_INDICATOR, TEMPLATE_MODIFY_INDICATOR, model );
219 }
220
221
222
223
224
225
226
227 @Action( ACTION_MODIFY_INDICATOR )
228 public String doModifyIndicator( HttpServletRequest request )
229 {
230 populate( _indicator, request );
231
232
233 if ( !validateBean( _indicator, VALIDATION_ATTRIBUTES_PREFIX ) )
234 {
235 return redirect( request, VIEW_MODIFY_INDICATOR, PARAMETER_ID_INDICATOR, _indicator.getId( ) );
236 }
237
238 IndicatorHome.update( _indicator );
239 addInfo( INFO_INDICATOR_UPDATED, getLocale( ) );
240
241 return redirectView( request, VIEW_MANAGE_INDICATORS );
242 }
243 }