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.xmlpage.web.portlet;
35
36 import fr.paris.lutece.plugins.xmlpage.business.portlet.XmlPagePortlet;
37 import fr.paris.lutece.plugins.xmlpage.business.portlet.XmlPagePortletHome;
38 import fr.paris.lutece.plugins.xmlpage.service.XmlPageService;
39 import fr.paris.lutece.portal.business.portlet.PortletHome;
40 import fr.paris.lutece.portal.service.message.AdminMessage;
41 import fr.paris.lutece.portal.service.message.AdminMessageService;
42 import fr.paris.lutece.portal.web.constants.Messages;
43 import fr.paris.lutece.portal.web.constants.Parameters;
44 import fr.paris.lutece.portal.web.portlet.PortletJspBean;
45 import fr.paris.lutece.util.html.HtmlTemplate;
46
47 import java.util.HashMap;
48
49 import javax.servlet.http.HttpServletRequest;
50
51
52
53
54
55 public class XmlPagePortletJspBean extends PortletJspBean
56 {
57
58
59 private static final String PROPERTY_PREFIX = "portlet.xmlpage";
60 private static final String PARAMETER_PAGE_ID = "page_id";
61 private static final String PARAMETER_PORTLET_ID = "portlet_id";
62 private static final String PARAMETER_PORTLET_TYPE_ID = "portlet_type_id";
63 private static final String PARAMETER_XMLPAGE_NAME = "xmlpage_name";
64 private static final String PARAMETER_VALUE_SEPARATOR = "-";
65 private static final String CONSTANT_EMPTY_STRING = "";
66 private static final String MARK_XML_PAGES_LIST = "xml_pages_list";
67 private static final String MARK_XML_PAGE_ID = "xml_page_id";
68
69
70
71
72
73
74 public String getPropertiesPrefix( )
75 {
76 return PROPERTY_PREFIX;
77 }
78
79
80
81
82
83
84
85 public String getCreate( HttpServletRequest request )
86 {
87 String strPageId = request.getParameter( PARAMETER_PAGE_ID );
88 String strPortletTypeId = request.getParameter( PARAMETER_PORTLET_TYPE_ID );
89 HashMap model = new HashMap( );
90 model.put( MARK_XML_PAGES_LIST, XmlPageService.getInstance( ).getXmlPageList( ) );
91
92 HtmlTemplate template = getCreateTemplate( strPageId, strPortletTypeId, model );
93
94 return template.getHtml( );
95 }
96
97
98
99
100
101
102
103 public String getModify( HttpServletRequest request )
104 {
105 String strPortletId = request.getParameter( PARAMETER_PORTLET_ID );
106 int nPortletId = Integer.parseInt( strPortletId );
107 XmlPagePortlet portlet = (XmlPagePortlet) PortletHome.findByPrimaryKey( nPortletId );
108 String strParamValue = portlet.getPageName( ).concat( PARAMETER_VALUE_SEPARATOR ).concat( portlet.getStyle( ) );
109 HashMap model = new HashMap( );
110 model.put( MARK_XML_PAGES_LIST, XmlPageService.getInstance( ).getXmlPageList( ) );
111 model.put( MARK_XML_PAGE_ID, strParamValue );
112
113 HtmlTemplate template = getModifyTemplate( portlet, model );
114
115 return template.getHtml( );
116 }
117
118
119
120
121
122
123
124 public String doCreate( HttpServletRequest request )
125 {
126 XmlPagePortlet portlet = new XmlPagePortlet( );
127
128
129 String strPageId = request.getParameter( PARAMETER_PAGE_ID );
130 int nPageId = Integer.parseInt( strPageId );
131 String strXmlPageName = request.getParameter( PARAMETER_XMLPAGE_NAME );
132 int indexSeparator = strXmlPageName.lastIndexOf( PARAMETER_VALUE_SEPARATOR );
133 String strPageName = strXmlPageName.substring( 0, indexSeparator );
134 String strStyle = strXmlPageName.substring( indexSeparator + 1 );
135
136 String strStyleId = request.getParameter( Parameters.STYLE );
137
138 if ( ( strXmlPageName == null ) || strXmlPageName.trim( ).equals( CONSTANT_EMPTY_STRING ) )
139 {
140 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
141 }
142
143
144 setPortletCommonData( request, portlet );
145
146 String strName = portlet.getName( );
147
148 if ( ( strName == null ) || strName.trim( ).equals( CONSTANT_EMPTY_STRING ) )
149 {
150 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
151 }
152
153 portlet.setPageId( nPageId );
154 portlet.setPageName( strPageName );
155 portlet.setStyle( strStyle );
156
157
158 XmlPagePortletHome.getInstance( ).create( portlet );
159
160
161 return getPageUrl( portlet.getPageId( ) );
162 }
163
164
165
166
167
168
169
170 public String doModify( HttpServletRequest request )
171 {
172
173 String strPortletId = request.getParameter( PARAMETER_PORTLET_ID );
174 int nPortletId = Integer.parseInt( strPortletId );
175 XmlPagePortlet portlet = (XmlPagePortlet) PortletHome.findByPrimaryKey( nPortletId );
176
177 String strStyleId = request.getParameter( Parameters.STYLE );
178
179 if ( ( strStyleId == null ) || strStyleId.trim( ).equals( CONSTANT_EMPTY_STRING ) )
180 {
181 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
182 }
183
184
185 setPortletCommonData( request, portlet );
186
187
188 String strName = portlet.getName( );
189
190 if ( strName.trim( ).equals( CONSTANT_EMPTY_STRING ) )
191 {
192 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
193 }
194
195
196 String strXmlPageName = request.getParameter( PARAMETER_XMLPAGE_NAME );
197 int indexSeparator = strXmlPageName.lastIndexOf( PARAMETER_VALUE_SEPARATOR );
198 String strPageName = strXmlPageName.substring( 0, indexSeparator );
199 String strStyle = strXmlPageName.substring( indexSeparator + 1 );
200 portlet.setPageName( strPageName );
201 portlet.setStyle( strStyle );
202
203
204 portlet.update( );
205
206
207 return getPageUrl( portlet.getPageId( ) );
208 }
209 }