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;
35
36 import fr.paris.lutece.plugins.dbpage.business.DbPage;
37 import fr.paris.lutece.plugins.dbpage.service.DbPageService;
38 import fr.paris.lutece.portal.service.plugin.Plugin;
39 import fr.paris.lutece.portal.service.template.AppTemplateService;
40 import fr.paris.lutece.portal.service.util.AppPropertiesService;
41 import fr.paris.lutece.portal.web.xpages.XPage;
42 import fr.paris.lutece.portal.web.xpages.XPageApplication;
43 import fr.paris.lutece.util.html.HtmlTemplate;
44
45 import java.util.HashMap;
46 import java.util.List;
47
48 import javax.servlet.http.HttpServletRequest;
49
50
51
52
53 public class DbpageApp implements XPageApplication
54 {
55
56
57
58
59 private static final String TEMPLATE_MANAGE_DBPAGE = "skin/plugins/dbpage/dbpage.html";
60 private static final String TEMPLATE_DBPAGE_LIST = "skin/plugins/dbpage/dbpages_list.html";
61 private static final String MARK_PAGE_TITLE = "page_title";
62 private static final String MARK_SECTIONS = "sections";
63 private static final String MARK_DBPAGES_LIST = "dbpages_list";
64 private static final String PARAMETER_DBPAGE_NAME = "dbpage";
65 private static final String PROPERTY_PAGE_TITLE = "dbpage.pageTitle";
66 private static final String PROPERTY_PAGE_PATH = "dbpage.pagePathLabel";
67 private static final String STR_PAGE_ERROR = AppPropertiesService.getProperty(
68 "dbpage.page.properties.message.error");
69 private static final String STR_PARAMETER_ERROR = AppPropertiesService.getProperty(
70 "dbpage.parameter.properties.message.error");
71
72
73
74
75
76
77
78
79
80
81 public XPage getPage(HttpServletRequest request, int nMode, Plugin plugin)
82 {
83 XPage page = new XPage();
84
85 page.setTitle(AppPropertiesService.getProperty(PROPERTY_PAGE_TITLE));
86 page.setPathLabel(AppPropertiesService.getProperty(PROPERTY_PAGE_PATH));
87
88 String strDbPageName = request.getParameter(PARAMETER_DBPAGE_NAME);
89
90 if ((strDbPageName != null) && !strDbPageName.equals(""))
91 {
92 DbPage dbPage = DbPageService.getInstance().getDbPage(strDbPageName);
93
94 if (dbPage != null)
95 {
96 List<String> listValues = DbPageService.getInstance().getValues(request);
97 String strPageContent = buildPage(dbPage, listValues, request);
98 page.setContent(strPageContent);
99 page.setTitle(dbPage.getTitle());
100 page.setPathLabel(dbPage.getTitle());
101 }
102 else
103 {
104 page.setContent(STR_PAGE_ERROR);
105 }
106 }
107 else
108 {
109 HashMap<String, Object> model = new HashMap<String, Object>();
110 model.put(MARK_DBPAGES_LIST, DbPageService.getInstance().getDbPagesCollection());
111
112 HtmlTemplate template = AppTemplateService.getTemplate(TEMPLATE_DBPAGE_LIST, request.getLocale(), model);
113
114 page.setContent(template.getHtml());
115 }
116
117 return page;
118 }
119
120
121
122
123
124
125
126
127
128 private String buildPage(DbPage dbPage, List<String> listValues, HttpServletRequest request)
129 {
130 HashMap<String, Object> model = new HashMap<String, Object>();
131 model.put(MARK_PAGE_TITLE, dbPage.getTitle());
132 model.put(MARK_SECTIONS, dbPage.getContent(listValues, request));
133
134 HtmlTemplate template = AppTemplateService.getTemplate(TEMPLATE_MANAGE_DBPAGE, request.getLocale(), model);
135
136 return template.getHtml();
137 }
138 }