KickJava   Java API By Example, From Geeks To Geeks.

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


1 package com.dotmarketing.portlets.htmlpages.action;
2
3 import java.util.List JavaDoc;
4
5 import javax.portlet.PortletConfig;
6 import javax.portlet.RenderRequest;
7 import javax.portlet.RenderResponse;
8 import javax.portlet.WindowState;
9 import javax.servlet.http.HttpServletRequest JavaDoc;
10 import javax.servlet.http.HttpSession JavaDoc;
11 import javax.servlet.jsp.PageContext JavaDoc;
12
13 import org.apache.struts.action.ActionForm;
14 import org.apache.struts.action.ActionForward;
15 import org.apache.struts.action.ActionMapping;
16
17 import com.dotmarketing.factories.RoleFactory;
18 import com.dotmarketing.factories.WebAssetFactory;
19 import com.dotmarketing.portal.struts.DotPortletAction;
20 import com.dotmarketing.portlets.htmlpages.factories.HTMLPageFactory;
21 import com.dotmarketing.portlets.htmlpages.model.HTMLPage;
22 import com.dotmarketing.util.Config;
23 import com.dotmarketing.util.Logger;
24 import com.dotmarketing.util.UtilMethods;
25 import com.dotmarketing.util.WebKeys;
26 import com.liferay.portal.model.User;
27 import com.liferay.portal.struts.ActionException;
28 import com.liferay.portal.util.Constants;
29
30 /**
31  * <a HREF="ViewQuestionsAction.java.htm"><b><i>View Source</i></b></a>
32  *
33  * @author Maria Ahues
34  * @version $Revision: 1.4 $
35  *
36  */

37 public class ViewHTMLPagesAction extends DotPortletAction {
38
39     /*
40      * @see com.liferay.portal.struts.PortletAction#render(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.portlet.PortletConfig, javax.portlet.RenderRequest, javax.portlet.RenderResponse)
41      */

42     public ActionForward render(
43             ActionMapping mapping, ActionForm form, PortletConfig config,
44             RenderRequest req, RenderResponse res)
45         throws Exception JavaDoc {
46
47         Logger.debug(this, "Running ViewHTMLPagesAction!!!!");
48
49         try {
50             //gets the user
51
User user = _getUser(req);
52
53             if (req.getWindowState().equals(WindowState.NORMAL)) {
54                 return mapping.findForward("portlet.ext.htmlpages.view");
55             }
56             else {
57                 /** @see com.dotmarketing.portal.struts.DotPortletAction._viewWebAssets **/
58                 _viewWebAssets(req, user);
59                 return mapping.findForward("portlet.ext.htmlpages.view_htmlpages");
60             }
61         }
62         catch (Exception JavaDoc e) {
63             req.setAttribute(PageContext.EXCEPTION, e);
64             return mapping.findForward(Constants.COMMON_ERROR);
65         }
66     }
67     
68     //Needs to be implemented instead of using parent method because we use template to search for HTMLPages
69
private void _viewWebAssets(RenderRequest req, User user) throws Exception JavaDoc {
70         
71         com.liferay.portlet.RenderRequestImpl reqImpl = (com.liferay.portlet.RenderRequestImpl)req;
72         HttpServletRequest JavaDoc httpReq = reqImpl.getHttpServletRequest();
73         //gets the session object for the messages
74
HttpSession JavaDoc session = httpReq.getSession();
75         
76         String JavaDoc query = req.getParameter("query");
77         String JavaDoc resetQuery = req.getParameter("resetQuery");
78         long template = (req.getParameter("template")!=null) ? Long.parseLong(req.getParameter("template")) : 0;
79
80         String JavaDoc hostId = (String JavaDoc)session.getAttribute(WebKeys.SEARCH_HOST_ID);
81         if (req.getParameter("host_id") != null)
82             hostId = req.getParameter("host_id");
83         if (hostId != null)
84             session.setAttribute(WebKeys.SEARCH_HOST_ID, hostId);
85             
86         Logger.debug(this, "Inside ViewHTMLPagesAction query=" + query);
87     
88         List JavaDoc l = new java.util.ArrayList JavaDoc();
89             
90         String JavaDoc condition = "";
91         String JavaDoc showDeleted = req.getParameter("showDeleted");
92     
93         if ((showDeleted==null) && (resetQuery==null)) {
94             showDeleted = (String JavaDoc) session.getAttribute(WebKeys.HTMLPAGE_SHOW_DELETED);
95         }
96         if ((showDeleted!=null) && (showDeleted.equals("true"))){
97             condition = "working=" + com.dotmarketing.db.DbConnectionFactory.getDBTrue();
98             session.setAttribute(WebKeys.HTMLPAGE_SHOW_DELETED,"true");
99         }
100         else {
101             condition = "working=" + com.dotmarketing.db.DbConnectionFactory.getDBTrue() + " and deleted=" + com.dotmarketing.db.DbConnectionFactory.getDBFalse();
102             session.setAttribute(WebKeys.HTMLPAGE_SHOW_DELETED,"false");
103         }
104     
105         try {
106             //Gets roles
107
com.liferay.portal.model.Role[] roles = (com.liferay.portal.model.Role[])RoleFactory.getAllRolesForUser(user.getUserId()).toArray(new com.liferay.portal.model.Role[0]);
108     
109             String JavaDoc orderby = req.getParameter("orderby");
110             if (!UtilMethods.isSet(orderby)) {
111                 orderby = "page_url";
112             }
113                 
114             int pageNumber = 1;
115     
116             if (UtilMethods.isSet(req.getParameter("pageNumber"))) {
117                 pageNumber = Integer.parseInt(req.getParameter("pageNumber"));
118             }
119     
120             int limit = com.dotmarketing.util.Config.getIntProperty("PER_PAGE");
121     
122             int offset = (pageNumber - 1) * limit;
123     
124             if ((query==null) && (resetQuery==null)) {
125                 query = (String JavaDoc) session.getAttribute(WebKeys.HTMLPAGE_QUERY);
126             }
127             session.setAttribute(WebKeys.HTMLPAGE_QUERY,query);
128             //Gets templates for this role
129
int count = 0;
130                 
131             if (((query != null) && (query.length() != 0)) || (hostId != null && !hostId.equals("0")) || (template != 0)) {
132                 //query or template has been entered
133
if ((query!=null) && (query.length()!=0)) {
134                     condition += " and (lower(htmlpage_condition.title) like '%" + query.toLowerCase() + "%' or lower(htmlpage_condition.page_url) like '%" + query.toLowerCase() + "%')";
135                 }
136                 Logger.debug(this, "Getting HTML Pages based on condition=" + condition);
137                 limit = 0;
138                 if (hostId == null || hostId.equals("0")) {
139                     l = HTMLPageFactory.getHTMLPagesAndPermissionsPerRoleAndCondition(roles,condition,limit,offset,orderby,template);
140                     count = WebAssetFactory.getCountAssetsPerConditionWithPermission(condition,HTMLPage.class,roles,template);
141                 } else {
142                     long hostIdL = Long.parseLong(hostId);
143                     l = HTMLPageFactory.getHTMLPagesAndPermissionsPerRoleAndCondition(hostIdL, roles,condition,limit,offset,orderby,template);
144                     count = WebAssetFactory.getCountAssetsPerConditionWithPermission(hostIdL, condition,HTMLPage.class,roles,template);
145                 }
146             }
147             else {
148                 Logger.debug(this, "Getting all HTML Pages");
149                 l = HTMLPageFactory.getHTMLPagesAndPermissionsPerRoleAndCondition(roles,condition,limit,offset,orderby,0);
150                 count = WebAssetFactory.getCountAssetsPerConditionWithPermission(condition,HTMLPage.class,roles,0);
151             }
152     
153             req.setAttribute(WebKeys.HTMLPAGES_VIEW_COUNT, new Integer JavaDoc(count));
154             req.setAttribute(WebKeys.HTMLPAGES_VIEW, l);
155         }
156         catch (Exception JavaDoc e) {
157             req.setAttribute(WebKeys.HTMLPAGES_VIEW, l);
158             Logger.error(this, e.getMessage(), e);
159             throw new ActionException (e.getMessage());
160
161         }
162     }
163 }
164
Popular Tags