1
22
23 package com.liferay.portlet.journalcontent.action;
24
25 import com.liferay.portal.kernel.portlet.ConfigurationAction;
26 import com.liferay.portal.kernel.util.Constants;
27 import com.liferay.portal.kernel.util.ParamUtil;
28 import com.liferay.portal.model.Layout;
29 import com.liferay.portal.theme.ThemeDisplay;
30 import com.liferay.portal.util.WebKeys;
31 import com.liferay.portlet.PortletPreferencesFactoryUtil;
32 import com.liferay.portlet.journal.service.JournalContentSearchLocalServiceUtil;
33
34 import javax.portlet.ActionRequest;
35 import javax.portlet.ActionResponse;
36 import javax.portlet.PortletConfig;
37 import javax.portlet.PortletPreferences;
38 import javax.portlet.RenderRequest;
39 import javax.portlet.RenderResponse;
40
41
47 public class ConfigurationActionImpl implements ConfigurationAction {
48
49 public void processAction(
50 PortletConfig portletConfig, ActionRequest actionRequest,
51 ActionResponse actionResponse)
52 throws Exception {
53
54 String cmd = ParamUtil.getString(actionRequest, Constants.CMD);
55
56 if (!cmd.equals(Constants.UPDATE)) {
57 return;
58 }
59
60 long groupId = ParamUtil.getLong(actionRequest, "groupId");
61 String articleId = ParamUtil.getString(
62 actionRequest, "articleId").toUpperCase();
63 String templateId = ParamUtil.getString(
64 actionRequest, "templateId").toUpperCase();
65 boolean showAvailableLocales = ParamUtil.getBoolean(
66 actionRequest, "showAvailableLocales");
67 String[] extensions = actionRequest.getParameterValues("extensions");
68 boolean enablePrint = ParamUtil.getBoolean(
69 actionRequest, "enablePrint");
70 boolean enableRatings = ParamUtil.getBoolean(
71 actionRequest, "enableRatings");
72 boolean enableComments = ParamUtil.getBoolean(
73 actionRequest, "enableComments");
74 boolean enableCommentRatings = ParamUtil.getBoolean(
75 actionRequest, "enableCommentRatings");
76
77 String portletResource = ParamUtil.getString(
78 actionRequest, "portletResource");
79
80 PortletPreferences preferences =
81 PortletPreferencesFactoryUtil.getPortletSetup(
82 actionRequest, portletResource);
83
84 preferences.setValue("group-id", String.valueOf(groupId));
85 preferences.setValue("article-id", articleId);
86 preferences.setValue("template-id", templateId);
87 preferences.setValue(
88 "show-available-locales", String.valueOf(showAvailableLocales));
89 preferences.setValues("extensions", extensions);
90 preferences.setValue("enable-print", String.valueOf(enablePrint));
91 preferences.setValue("enable-ratings", String.valueOf(enableRatings));
92 preferences.setValue("enable-comments", String.valueOf(enableComments));
93 preferences.setValue(
94 "enable-comment-ratings", String.valueOf(enableCommentRatings));
95
96 preferences.store();
97
98 updateContentSearch(actionRequest, portletResource, articleId);
99
100 actionResponse.sendRedirect(
101 ParamUtil.getString(actionRequest, "redirect"));
102 }
103
104 public String render(
105 PortletConfig portletConfig, RenderRequest renderRequest,
106 RenderResponse renderResponse)
107 throws Exception {
108
109 return "/html/portlet/journal_content/configuration.jsp";
110 }
111
112 protected void updateContentSearch(
113 ActionRequest actionRequest, String portletResource,
114 String articleId)
115 throws Exception {
116
117 ThemeDisplay themeDisplay = (ThemeDisplay)actionRequest.getAttribute(
118 WebKeys.THEME_DISPLAY);
119
120 Layout layout = themeDisplay.getLayout();
121
122 JournalContentSearchLocalServiceUtil.updateContentSearch(
123 layout.getGroupId(), layout.isPrivateLayout(), layout.getLayoutId(),
124 portletResource, articleId, true);
125 }
126
127 }