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.dbpage.web.portlet;
35
36 import fr.paris.lutece.plugins.dbpage.business.DbPage;
37 import fr.paris.lutece.plugins.dbpage.business.portlet.DbPagePortlet;
38 import fr.paris.lutece.plugins.dbpage.business.portlet.DbPagePortletHome;
39 import fr.paris.lutece.plugins.dbpage.service.DbPageService;
40 import fr.paris.lutece.portal.business.portlet.PortletHome;
41 import fr.paris.lutece.portal.service.message.AdminMessage;
42 import fr.paris.lutece.portal.service.message.AdminMessageService;
43 import fr.paris.lutece.portal.service.template.AppTemplateService;
44 import fr.paris.lutece.portal.service.workgroup.AdminWorkgroupService;
45 import fr.paris.lutece.portal.web.constants.Messages;
46 import fr.paris.lutece.portal.web.portlet.PortletJspBean;
47 import fr.paris.lutece.util.ReferenceList;
48 import fr.paris.lutece.util.html.HtmlTemplate;
49
50 import java.util.Collection;
51 import java.util.HashMap;
52
53 import javax.servlet.http.HttpServletRequest;
54
55
56
57
58
59 public class DbPagePortletJspBean extends PortletJspBean
60 {
61
62
63 private static final String PARAMETER_PAGE_ID = "page_id";
64 private static final String PARAMETER_PORTLET_ID = "portlet_id";
65 private static final String PARAMETER_PORTLET_TYPE_ID = "portlet_type_id";
66 private static final String PARAMETER_DBPAGE_NAME = "dbpage_name";
67 private static final String PARAMETER_DBPAGE_VALUES = "dbpage_param_values";
68 private static final String COMBO_DBPAGE_LIST = "@combo_dbpage@";
69 private static final String MARK_DBPAGE_VALUES = "dbpage_values";
70
71
72 private static final String MARK_DBPAGE_LIST = "dbpage_list";
73 private static final String MARK_DBPAGE_ID = "default_dbpage_id";
74 private static final String PROPERTY_PORTLET_PREFIX = "portlet.dbpage";
75
76
77
78 private static final String TEMPLATE_COMBO_DBPAGE = "admin/plugins/dbpage/portlet/combo_dbpage.html";
79
80
81
82
83
84
85
86
87
88
89 public String getCreate( HttpServletRequest request )
90 {
91 String strIdPage = request.getParameter( PARAMETER_PAGE_ID );
92 String strPortletIdType = request.getParameter( PARAMETER_PORTLET_TYPE_ID );
93 HtmlTemplate template = getCreateTemplate( strIdPage, strPortletIdType );
94
95 Collection<DbPage> colDbPage = DbPageService.getInstance( ).getDbPagesCollection( );
96 colDbPage = AdminWorkgroupService.getAuthorizedCollection( colDbPage, getUser( ) );
97
98 template.substitute( COMBO_DBPAGE_LIST, getDbPageListCombo( colDbPage, "" ) );
99 template.substitute( MARK_DBPAGE_VALUES, " " );
100
101 return template.getHtml( );
102 }
103
104
105
106
107
108
109
110 public String getModify( HttpServletRequest request )
111 {
112 String strPortletId = request.getParameter( PARAMETER_PORTLET_ID );
113 int nPortletId = Integer.parseInt( strPortletId );
114 DbPagePortlet portlet = (DbPagePortlet) PortletHome.findByPrimaryKey( nPortletId );
115
116 HtmlTemplate template = getModifyTemplate( portlet );
117 Collection<DbPage> colDbPage = DbPageService.getInstance( ).getDbPagesCollection( );
118 colDbPage = AdminWorkgroupService.getAuthorizedCollection( colDbPage, getUser( ) );
119
120 template.substitute( COMBO_DBPAGE_LIST, getDbPageListCombo( colDbPage, portlet.getDbPageName( ) ) );
121 template.substitute( MARK_DBPAGE_VALUES, portlet.getDbValues( ) );
122
123 return template.getHtml( );
124 }
125
126
127
128
129
130 public String getPropertiesPrefix( )
131 {
132 return PROPERTY_PORTLET_PREFIX;
133 }
134
135
136
137
138
139
140
141 public String doCreate( HttpServletRequest request )
142 {
143 DbPagePortlet portlet = new DbPagePortlet( );
144 String strIdPage = request.getParameter( PARAMETER_PAGE_ID );
145 String strValues = request.getParameter( PARAMETER_DBPAGE_VALUES );
146 int nIdPage = Integer.parseInt( strIdPage );
147 String strDbPage = request.getParameter( PARAMETER_DBPAGE_NAME );
148 portlet.setDbPageName( strDbPage );
149 portlet.setValues( strValues );
150
151 DbPage dbPage = DbPageService.getInstance( ).getDbPage( portlet.getDbPageName( ) );
152
153 if ( !AdminWorkgroupService.isAuthorized( dbPage, getUser( ) ) )
154 {
155 return AdminMessageService.getMessageUrl( request, Messages.USER_ACCESS_DENIED, AdminMessage.TYPE_ERROR );
156 }
157
158
159 String strErrorUrl = setPortletCommonData( request, portlet );
160
161 if ( strErrorUrl != null )
162 {
163 return strErrorUrl;
164 }
165
166 portlet.setPageId( nIdPage );
167
168
169 DbPagePortletHome.getInstance( ).create( portlet );
170
171
172 return getPageUrl( nIdPage );
173 }
174
175
176
177
178
179
180
181 public String doModify( HttpServletRequest request )
182 {
183
184 String strPortletId = request.getParameter( PARAMETER_PORTLET_ID );
185 int nPortletId = Integer.parseInt( strPortletId );
186 DbPagePortlet portlet = (DbPagePortlet) PortletHome.findByPrimaryKey( nPortletId );
187
188
189 String strErrorUrl = setPortletCommonData( request, portlet );
190
191 if ( strErrorUrl != null )
192 {
193 return strErrorUrl;
194 }
195
196 String strDbPageName = request.getParameter( PARAMETER_DBPAGE_NAME );
197
198 DbPage dbPage = DbPageService.getInstance( ).getDbPage( strDbPageName );
199
200 if ( !AdminWorkgroupService.isAuthorized( dbPage, getUser( ) ) )
201 {
202 return AdminMessageService.getMessageUrl( request, Messages.USER_ACCESS_DENIED, AdminMessage.TYPE_ERROR );
203 }
204
205 portlet.setDbPageName( strDbPageName );
206
207 String strDbPageValues = request.getParameter( PARAMETER_DBPAGE_VALUES );
208 portlet.setValues( strDbPageValues );
209
210
211 portlet.update( );
212
213
214 return getPageUrl( portlet.getPageId( ) );
215 }
216
217
218
219
220
221
222
223 private String getDbPageListCombo( ReferenceList dbPageList, String strDbPageId )
224 {
225 HashMap model = new HashMap( );
226 model.put( MARK_DBPAGE_ID, strDbPageId );
227 model.put( MARK_DBPAGE_LIST, dbPageList );
228
229 HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_COMBO_DBPAGE, getLocale( ), model );
230
231 return template.getHtml( );
232 }
233
234
235
236
237
238
239
240 private String getDbPageListCombo( Collection<DbPage> dbPageCollection, String strDbPageId )
241 {
242 ReferenceList dbPageList = new ReferenceList( );
243
244 for ( DbPage dbPage : dbPageCollection )
245 {
246 dbPageList.addItem( dbPage.getName( ), dbPage.getName( ) );
247 }
248
249 return getDbPageListCombo( dbPageList, strDbPageId );
250 }
251 }