001
014
015 package com.liferay.portlet.announcements.action;
016
017 import com.liferay.portal.kernel.sanitizer.Sanitizer;
018 import com.liferay.portal.kernel.sanitizer.SanitizerUtil;
019 import com.liferay.portal.kernel.util.ContentTypes;
020 import com.liferay.portal.kernel.util.GetterUtil;
021 import com.liferay.portal.kernel.util.ParamUtil;
022 import com.liferay.portal.kernel.util.StringUtil;
023 import com.liferay.portal.model.User;
024 import com.liferay.portal.struts.PortletAction;
025 import com.liferay.portal.theme.ThemeDisplay;
026 import com.liferay.portal.util.WebKeys;
027 import com.liferay.portlet.announcements.model.AnnouncementsEntry;
028 import com.liferay.portlet.announcements.model.impl.AnnouncementsEntryImpl;
029
030 import java.util.Date;
031
032 import javax.portlet.ActionRequest;
033 import javax.portlet.ActionResponse;
034 import javax.portlet.PortletConfig;
035 import javax.portlet.RenderRequest;
036 import javax.portlet.RenderResponse;
037
038 import org.apache.struts.action.ActionForm;
039 import org.apache.struts.action.ActionForward;
040 import org.apache.struts.action.ActionMapping;
041
042
045 public class PreviewEntryAction extends PortletAction {
046
047 @Override
048 public void processAction(
049 ActionMapping actionMapping, ActionForm actionForm,
050 PortletConfig portletConfig, ActionRequest actionRequest,
051 ActionResponse actionResponse)
052 throws Exception {
053
054 ThemeDisplay themeDisplay = (ThemeDisplay)actionRequest.getAttribute(
055 WebKeys.THEME_DISPLAY);
056
057 User user = themeDisplay.getUser();
058 Date now = new Date();
059
060 String[] distributionScopeParts = StringUtil.split(
061 ParamUtil.getString(actionRequest, "distributionScope"));
062
063 long classNameId = 0;
064 long classPK = 0;
065
066 if (distributionScopeParts.length == 2) {
067 classNameId = GetterUtil.getLong(distributionScopeParts[0]);
068
069 if (classNameId > 0) {
070 classPK = GetterUtil.getLong(distributionScopeParts[1]);
071 }
072 }
073
074 String title = ParamUtil.getString(actionRequest, "title");
075 String content = ParamUtil.getString(actionRequest, "content");
076 String url = ParamUtil.getString(actionRequest, "url");
077 String type = ParamUtil.getString(actionRequest, "type");
078 int priority = ParamUtil.getInteger(actionRequest, "priority");
079 boolean alert = ParamUtil.getBoolean(actionRequest, "alert");
080
081 AnnouncementsEntry entry = new AnnouncementsEntryImpl();
082
083 content = SanitizerUtil.sanitize(
084 themeDisplay.getCompanyId(), themeDisplay.getSiteGroupId(),
085 user.getUserId(), AnnouncementsEntry.class.getName(), 0,
086 ContentTypes.TEXT_HTML, Sanitizer.MODE_ALL, content, null);
087
088 entry.setCompanyId(user.getCompanyId());
089 entry.setUserId(user.getUserId());
090 entry.setUserName(user.getFullName());
091 entry.setCreateDate(now);
092 entry.setModifiedDate(now);
093 entry.setClassNameId(classNameId);
094 entry.setClassPK(classPK);
095 entry.setTitle(title);
096 entry.setContent(content);
097 entry.setUrl(url);
098 entry.setType(type);
099 entry.setDisplayDate(now);
100 entry.setExpirationDate(now);
101 entry.setPriority(priority);
102 entry.setAlert(alert);
103
104 actionRequest.setAttribute(WebKeys.ANNOUNCEMENTS_ENTRY, entry);
105 }
106
107 @Override
108 public ActionForward render(
109 ActionMapping actionMapping, ActionForm actionForm,
110 PortletConfig portletConfig, RenderRequest renderRequest,
111 RenderResponse renderResponse)
112 throws Exception {
113
114 return actionMapping.findForward(
115 getForward(renderRequest, "portlet.announcements.preview_entry"));
116 }
117
118 }