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.xpagelinkservice.web;
35
36 import fr.paris.lutece.portal.service.admin.AdminUserService;
37 import fr.paris.lutece.portal.service.content.XPageAppService;
38 import fr.paris.lutece.portal.service.message.AdminMessage;
39 import fr.paris.lutece.portal.service.message.AdminMessageService;
40 import fr.paris.lutece.portal.service.template.AppTemplateService;
41 import fr.paris.lutece.portal.service.util.AppPathService;
42 import fr.paris.lutece.portal.web.constants.Messages;
43 import fr.paris.lutece.portal.web.insert.InsertServiceJspBean;
44 import fr.paris.lutece.portal.web.insert.InsertServiceSelectionBean;
45 import fr.paris.lutece.portal.web.xpages.XPageApplicationEntry;
46 import fr.paris.lutece.util.html.HtmlTemplate;
47 import fr.paris.lutece.util.url.UrlItem;
48
49 import org.apache.commons.lang.StringEscapeUtils;
50
51 import java.io.Serializable;
52
53 import java.util.ArrayList;
54 import java.util.HashMap;
55 import java.util.Locale;
56 import java.util.Map;
57
58 import javax.servlet.http.HttpServletRequest;
59
60
61
62
63
64 public class XPageLinkServiceJspBean extends InsertServiceJspBean implements InsertServiceSelectionBean
65 {
66
67
68 private static final String TEMPLATE_SELECTOR_PAGE = "admin/plugins/xpagelinkservice/xpagelinkservice_selector.html";
69 private static final String PARAMETER_SELECTED_TEXT = "selected_text";
70 private static final String PARAMETER_TEXT = "text";
71 private static final String PARAMETER_TITLE = "title";
72 private static final String PARAMETER_TARGET = "target";
73 private static final String PARAMETER_XPAGE = "xpage";
74 private static final String PARAMETER_PAGE = "page";
75 private static final String PARAMETER_INPUT = "input";
76 private static final String MARK_APPLICATIONS_LIST = "applications_list";
77 private static final String MARK_SELECTED_TEXT = "selected_text";
78 private static final String MARK_INPUT = "input";
79
80
81
82
83
84
85
86
87
88
89 public String getInsertServiceSelectorUI( HttpServletRequest request )
90 {
91 ArrayList<XPageApplicationEntry> listXPages = new ArrayList<XPageApplicationEntry>( );
92
93 String strSelectedText = request.getParameter( PARAMETER_SELECTED_TEXT );
94 String strInput = request.getParameter( PARAMETER_INPUT );
95
96
97 for ( XPageApplicationEntry entry : XPageAppService.getXPageApplicationsList( ) )
98 {
99 if ( entry.isEnable( ) )
100 {
101 listXPages.add( entry );
102 }
103 }
104
105 Map<String, Serializable> model = new HashMap<String, Serializable>( );
106 model.put( MARK_APPLICATIONS_LIST, listXPages );
107 model.put( MARK_SELECTED_TEXT, strSelectedText );
108 model.put( MARK_INPUT, strInput );
109
110
111 Locale locale = AdminUserService.getLocale( request );
112
113 HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_SELECTOR_PAGE, locale, model );
114
115 return template.getHtml( );
116 }
117
118 public String doInsertLink( HttpServletRequest request )
119 {
120 String strText = request.getParameter( PARAMETER_TEXT );
121 String strTitle = request.getParameter( PARAMETER_TITLE );
122 String strTarget = request.getParameter( PARAMETER_TARGET );
123 String strXPage = request.getParameter( PARAMETER_XPAGE );
124 String strInput = request.getParameter( PARAMETER_INPUT );
125
126
127 if ( strText.equals( "" ) || strTitle.equals( "" ) || ( strXPage == null ) )
128 {
129 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
130 }
131
132 UrlItem urlXPage = new UrlItem( AppPathService.getPortalUrl( ) );
133 urlXPage.addParameter( PARAMETER_PAGE, strXPage );
134
135 String strLink = buildLink( strText, urlXPage.getUrl( ), strTitle, strTarget );
136 strLink = StringEscapeUtils.escapeJavaScript( strLink );
137
138 return insertUrl( request, strInput, strLink );
139 }
140 }