KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > portlets > htmlpages > action > PublishHTMLPagesAction


1 package com.dotmarketing.portlets.htmlpages.action;
2
3 import java.net.URLDecoder JavaDoc;
4
5 import javax.portlet.ActionRequest;
6 import javax.portlet.ActionResponse;
7 import javax.portlet.PortletConfig;
8
9 import org.apache.struts.action.ActionForm;
10 import org.apache.struts.action.ActionMapping;
11
12 import com.dotmarketing.factories.InodeFactory;
13 import com.dotmarketing.factories.PublishFactory;
14 import com.dotmarketing.portal.struts.DotPortletAction;
15 import com.dotmarketing.portlets.htmlpages.model.HTMLPage;
16 import com.dotmarketing.util.Logger;
17 import com.dotmarketing.util.WebKeys;
18 import com.liferay.portal.model.User;
19 import com.liferay.portlet.ActionRequestImpl;
20 import com.liferay.util.servlet.SessionMessages;
21
22 /**
23  * <a HREF="ViewQuestionsAction.java.htm"><b><i>View Source</i></b></a>
24  *
25  * @author Maria Ahues
26  * @version $Revision: 1.3 $
27  *
28  */

29 public class PublishHTMLPagesAction extends DotPortletAction {
30
31     public void processAction(
32              ActionMapping mapping, ActionForm form, PortletConfig config,
33              ActionRequest req, ActionResponse res)
34          throws Exception JavaDoc {
35
36         String JavaDoc cmd = req.getParameter("cmd");
37         
38         Logger.debug(this, "Running PublishHTMLPagesAction!!!! cmd=" + cmd);
39         
40         String JavaDoc referer = req.getParameter("referer");
41         if ((referer!=null) && (referer.length()!=0)) {
42             referer = URLDecoder.decode(referer,"UTF-8");
43         }
44         
45         try {
46             //get the user
47
User user = _getUser(req);
48
49             if ((cmd != null) && cmd.equals(com.dotmarketing.util.Constants.PREPUBLISH)) {
50                 _prePublishHTMLPages(req, user);
51                 
52             }
53             java.util.List JavaDoc relatedAssets = (java.util.List JavaDoc) req.getAttribute(WebKeys.HTMLPAGE_RELATED_ASSETS);
54             java.util.List JavaDoc relatedWorkflows = (java.util.List JavaDoc) req.getAttribute(WebKeys.HTMLPAGE_RELATED_WORKFLOWS);
55             
56             if (((cmd != null) && cmd.equals(com.dotmarketing.util.Constants.PUBLISH)) ||
57                     ((relatedAssets == null || relatedAssets.size()==0) && (relatedWorkflows == null || relatedWorkflows.size()==0))) {
58                 _publishHTMLPages(req, user);
59                 
60                 if ((referer!=null) && (referer.length()!=0)) {
61                     _sendToReferral(req, res, referer);
62                 }
63             }
64             
65             setForward(req, "portlet.ext.htmlpages.publish_htmlpages");
66
67         }
68         catch (Exception JavaDoc e) {
69             _handleException(e, req);
70         }
71     }
72
73     private void _prePublishHTMLPages(ActionRequest req, User user) throws Exception JavaDoc {
74         
75         String JavaDoc[] publishInode = req.getParameterValues("publishInode");
76
77         if (publishInode == null) return;
78         
79         //calls the publish factory to get related assets
80
java.util.List JavaDoc relatedAssets = new java.util.ArrayList JavaDoc();
81         java.util.List JavaDoc relatedWorkflows = new java.util.ArrayList JavaDoc();
82         
83         for (int i=0;i<publishInode.length;i++) {
84
85             HTMLPage htmlPage = (HTMLPage) InodeFactory.getInode(publishInode[i],HTMLPage.class);
86             
87             if (htmlPage.getInode()>0) {
88                 //calls the asset factory edit
89

90                 //relatedWorkflows.addAll(WorkflowMessageFactory.getWorkflowMessageByHTMLPageWaitingForPublish(htmlPage));
91
relatedAssets = PublishFactory.getRelatedAssets(htmlPage,relatedAssets);
92
93             }
94         }
95         req.setAttribute(WebKeys.HTMLPAGE_RELATED_WORKFLOWS,relatedWorkflows);
96         req.setAttribute(WebKeys.HTMLPAGE_RELATED_ASSETS,relatedAssets);
97         
98     }
99
100     private void _publishHTMLPages(ActionRequest req, User user) throws Exception JavaDoc {
101         
102
103         String JavaDoc[] publishInode = req.getParameterValues("publishInode");
104
105         if (publishInode == null) return;
106
107         ActionRequestImpl reqImpl = (ActionRequestImpl)req;
108         
109         for (int i=0;i<publishInode.length;i++) {
110             HTMLPage htmlpage = (HTMLPage) InodeFactory.getInode(publishInode[i],HTMLPage.class);
111     
112             if (htmlpage.getInode()>0) {
113                 //calls the asset factory edit
114
PublishFactory.publishAsset(htmlpage,reqImpl.getHttpServletRequest());
115             }
116         }
117         SessionMessages.add(reqImpl.getHttpServletRequest(), "message", "message.htmlpage_list.published");
118         
119     }
120 }
Popular Tags