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 info.magnolia.module.admininterface.pages;
35
36 import info.magnolia.cms.gui.control.Button;
37 import info.magnolia.cms.gui.misc.CssConstants;
38 import info.magnolia.cms.gui.misc.Sources;
39 import info.magnolia.cms.i18n.MessagesManager;
40 import info.magnolia.module.admininterface.SimplePageMVCHandler;
41 import info.magnolia.repository.RepositoryConstants;
42
43 import java.io.IOException;
44 import java.io.PrintWriter;
45 import java.util.Date;
46
47 import javax.servlet.http.HttpServletRequest;
48 import javax.servlet.http.HttpServletResponse;
49
50 import org.apache.commons.lang.StringUtils;
51
52
53
54
55
56
57 public class LinkBrowserDialogPage extends SimplePageMVCHandler {
58
59 public LinkBrowserDialogPage(String name, HttpServletRequest request, HttpServletResponse response) {
60 super(name, request, response);
61 }
62
63
64
65
66 private static final long serialVersionUID = 222L;
67
68 @Override
69 protected void render(HttpServletRequest request, HttpServletResponse response) throws IOException {
70 PrintWriter out = response.getWriter();
71 String repository = request.getParameter("repository");
72 if (StringUtils.isEmpty(repository)) {
73 repository = RepositoryConstants.WEBSITE;
74 }
75
76 String path = request.getParameter("path");
77 String pathOpen = request.getParameter("pathOpen");
78 String pathSelected = request.getParameter("pathSelected");
79
80 StringBuffer src = getIFrameSrc(request, repository, path, pathOpen, pathSelected);
81
82 StringBuffer html = new StringBuffer();
83 html.append("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); //$NON-NLS-1$
84 html.append("<html><head>");
85 html.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>");
86 html.append(new Sources(request.getContextPath()).getHtmlJs());
87 html.append(new Sources(request.getContextPath()).getHtmlCss());
88 html.append("<script>");
89 html.append("MgnlDHTMLUtil.addOnResize(mgnlDialogLinkBrowserResize);");
90 html.append("MgnlDHTMLUtil.addOnLoad(function(){mgnlDialogLinkBrowserResize();document.getElementById('mgnlDialogLinkBrowserIFrame').src='"+src+"';window.focus();})");
91 html.append("</script>");
92
93 html.append("</head>");
94 html.append("<body class=\"mgnlBgDark\" >");
95
96
97 html.append("<div id=\"mgnlTreeDiv\" class=\"mgnlDialogLinkBrowserTreeDiv\">");
98 html.append("<iframe id=\"mgnlDialogLinkBrowserIFrame\" name=\"mgnlDialogLinkBrowserIFrame\" src=\""
99
100 + "\" scrolling=\"no\" frameborder=\"0\" width=\"100%\" height=\"100%\"></iframe>");
101 html.append("</div>");
102
103 Button bOk = new Button();
104 bOk.setLabel(MessagesManager.get("buttons.ok"));
105
106 bOk.setOnclick("mgnlDialogLinkBrowserWriteBack()");
107
108 Button bCancel = new Button();
109 bCancel.setLabel(MessagesManager.get("buttons.cancel"));
110 bCancel.setOnclick("window.top.close();");
111
112 html.append("<div class=\"" + CssConstants.CSSCLASS_TABSETSAVEBAR + "\">");
113 html.append(bOk.getHtml());
114 html.append(" ");
115 html.append(bCancel.getHtml());
116 html.append("</div>");
117
118 html.append("</body></html>");
119
120 out.println(html);
121 }
122
123 private StringBuffer getIFrameSrc(HttpServletRequest request, String repository, String path, String pathOpen,
124 String pathSelected) {
125 StringBuffer src = new StringBuffer();
126 src.append(request.getContextPath());
127 src.append("/.magnolia/trees/" + repository + ".html");
128 src.append("?mgnlCK=" + new Date().getTime());
129 src.append("&browseMode=true");
130 if (path != null) {
131 src.append("&path=" + path);
132 }
133 if (pathOpen != null) {
134 src.append("&pathOpen=" + pathOpen);
135 }
136 if (pathSelected != null) {
137 src.append("&pathSelected=" + pathSelected);
138 }
139 return src;
140 }
141 }