1
22
23 package com.liferay.portlet.iframe.action;
24
25 import com.liferay.portal.kernel.portlet.BaseConfigurationAction;
26 import com.liferay.portal.kernel.servlet.SessionMessages;
27 import com.liferay.portal.kernel.util.Constants;
28 import com.liferay.portal.kernel.util.HttpUtil;
29 import com.liferay.portal.kernel.util.ParamUtil;
30 import com.liferay.portal.kernel.util.StringUtil;
31 import com.liferay.portlet.PortletPreferencesFactoryUtil;
32
33 import javax.portlet.ActionRequest;
34 import javax.portlet.ActionResponse;
35 import javax.portlet.PortletConfig;
36 import javax.portlet.PortletPreferences;
37 import javax.portlet.RenderRequest;
38 import javax.portlet.RenderResponse;
39
40
45 public class ConfigurationActionImpl extends BaseConfigurationAction {
46
47 public void processAction(
48 PortletConfig portletConfig, ActionRequest actionRequest,
49 ActionResponse actionResponse)
50 throws Exception {
51
52 String cmd = ParamUtil.getString(actionRequest, Constants.CMD);
53
54 if (!cmd.equals(Constants.UPDATE)) {
55 return;
56 }
57
58 String src = ParamUtil.getString(actionRequest, "src");
59
60 if (!src.startsWith("/") &&
61 !StringUtil.startsWith(src, "http://") &&
62 !StringUtil.startsWith(src, "https://") &&
63 !StringUtil.startsWith(src, "mhtml://")) {
64
65 src = HttpUtil.getProtocol(actionRequest) + "://" + src;
66 }
67
68 boolean relative = ParamUtil.getBoolean(actionRequest, "relative");
69
70 boolean auth = ParamUtil.getBoolean(actionRequest, "auth");
71 String authType = ParamUtil.getString(actionRequest, "authType");
72 String formMethod = ParamUtil.getString(actionRequest, "formMethod");
73 String userName = ParamUtil.getString(actionRequest, "userName");
74 String userNameField = ParamUtil.getString(
75 actionRequest, "userNameField");
76 String password = ParamUtil.getString(actionRequest, "password");
77 String passwordField = ParamUtil.getString(
78 actionRequest, "passwordField");
79 String hiddenVariables = ParamUtil.getString(
80 actionRequest, "hiddenVariables");
81
82 String[] htmlAttributes = StringUtil.split(ParamUtil.getString(
83 actionRequest, "htmlAttributes"), "\n");
84
85 String portletResource = ParamUtil.getString(
86 actionRequest, "portletResource");
87
88 PortletPreferences preferences =
89 PortletPreferencesFactoryUtil.getPortletSetup(
90 actionRequest, portletResource);
91
92 preferences.setValue("src", src);
93 preferences.setValue("relative", String.valueOf(relative));
94
95 preferences.setValue("auth", String.valueOf(auth));
96 preferences.setValue("auth-type", authType);
97 preferences.setValue("form-method", formMethod);
98 preferences.setValue("user-name", userName);
99 preferences.setValue("user-name-field", userNameField);
100 preferences.setValue("password", password);
101 preferences.setValue("password-field", passwordField);
102 preferences.setValue("hidden-variables", hiddenVariables);
103
104 for (int i = 0; i < htmlAttributes.length; i++) {
105 int pos = htmlAttributes[i].indexOf("=");
106
107 if (pos != -1) {
108 String key = htmlAttributes[i].substring(0, pos);
109 String value = htmlAttributes[i].substring(
110 pos + 1, htmlAttributes[i].length());
111
112 preferences.setValue(key, value);
113 }
114 }
115
116 preferences.store();
117
118 SessionMessages.add(
119 actionRequest, portletConfig.getPortletName() + ".doConfigure");
120 }
121
122 public String render(
123 PortletConfig portletConfig, RenderRequest renderRequest,
124 RenderResponse renderResponse)
125 throws Exception {
126
127 return "/html/portlet/iframe/configuration.jsp";
128 }
129
130 }