1
22
23 package com.liferay.portlet.journal.action;
24
25 import com.liferay.portal.kernel.servlet.SessionErrors;
26 import com.liferay.portal.kernel.util.ParamUtil;
27 import com.liferay.portal.security.auth.PrincipalException;
28 import com.liferay.portal.struts.PortletAction;
29 import com.liferay.portlet.journal.ArticleIdException;
30 import com.liferay.portlet.journal.DuplicateArticleIdException;
31 import com.liferay.portlet.journal.NoSuchArticleException;
32 import com.liferay.portlet.journal.service.JournalArticleServiceUtil;
33
34 import javax.portlet.ActionRequest;
35 import javax.portlet.ActionResponse;
36 import javax.portlet.PortletConfig;
37 import javax.portlet.RenderRequest;
38 import javax.portlet.RenderResponse;
39
40 import org.apache.struts.action.ActionForm;
41 import org.apache.struts.action.ActionForward;
42 import org.apache.struts.action.ActionMapping;
43
44
49 public class CopyArticleAction extends PortletAction {
50
51 public void processAction(
52 ActionMapping mapping, ActionForm form, PortletConfig portletConfig,
53 ActionRequest actionRequest, ActionResponse actionResponse)
54 throws Exception {
55
56 try {
57 copyArticle(actionRequest);
58
59 sendRedirect(actionRequest, actionResponse);
60 }
61 catch (Exception e) {
62 if (e instanceof NoSuchArticleException ||
63 e instanceof PrincipalException) {
64
65 SessionErrors.add(actionRequest, e.getClass().getName());
66
67 setForward(actionRequest, "portlet.journal.error");
68 }
69 else if (e instanceof DuplicateArticleIdException ||
70 e instanceof ArticleIdException) {
71
72 SessionErrors.add(actionRequest, e.getClass().getName());
73 }
74 else {
75 throw e;
76 }
77 }
78 }
79
80 public ActionForward render(
81 ActionMapping mapping, ActionForm form, PortletConfig portletConfig,
82 RenderRequest renderRequest, RenderResponse renderResponse)
83 throws Exception {
84
85 return mapping.findForward(
86 getForward(renderRequest, "portlet.journal.copy_article"));
87 }
88
89 protected void copyArticle(ActionRequest actionRequest) throws Exception {
90 long groupId = ParamUtil.getLong(actionRequest, "groupId");
91 String oldArticleId = ParamUtil.getString(
92 actionRequest, "oldArticleId");
93 String newArticleId = ParamUtil.getString(
94 actionRequest, "newArticleId");
95 boolean autoArticleId = ParamUtil.getBoolean(
96 actionRequest, "autoArticleId");
97 double version = ParamUtil.getDouble(actionRequest, "version");
98
99 JournalArticleServiceUtil.copyArticle(
100 groupId, oldArticleId, newArticleId, autoArticleId, version);
101 }
102
103 }