1 package com.dotmarketing.portlets.htmlpages.action; 2 3 import java.util.List ; 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 ; 10 import javax.servlet.http.HttpSession ; 11 import javax.servlet.jsp.PageContext ; 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 37 public class ViewHTMLPagesAction extends DotPortletAction { 38 39 42 public ActionForward render( 43 ActionMapping mapping, ActionForm form, PortletConfig config, 44 RenderRequest req, RenderResponse res) 45 throws Exception { 46 47 Logger.debug(this, "Running ViewHTMLPagesAction!!!!"); 48 49 try { 50 User user = _getUser(req); 52 53 if (req.getWindowState().equals(WindowState.NORMAL)) { 54 return mapping.findForward("portlet.ext.htmlpages.view"); 55 } 56 else { 57 58 _viewWebAssets(req, user); 59 return mapping.findForward("portlet.ext.htmlpages.view_htmlpages"); 60 } 61 } 62 catch (Exception e) { 63 req.setAttribute(PageContext.EXCEPTION, e); 64 return mapping.findForward(Constants.COMMON_ERROR); 65 } 66 } 67 68 private void _viewWebAssets(RenderRequest req, User user) throws Exception { 70 71 com.liferay.portlet.RenderRequestImpl reqImpl = (com.liferay.portlet.RenderRequestImpl)req; 72 HttpServletRequest httpReq = reqImpl.getHttpServletRequest(); 73 HttpSession session = httpReq.getSession(); 75 76 String query = req.getParameter("query"); 77 String resetQuery = req.getParameter("resetQuery"); 78 long template = (req.getParameter("template")!=null) ? Long.parseLong(req.getParameter("template")) : 0; 79 80 String hostId = (String )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 l = new java.util.ArrayList (); 89 90 String condition = ""; 91 String showDeleted = req.getParameter("showDeleted"); 92 93 if ((showDeleted==null) && (resetQuery==null)) { 94 showDeleted = (String ) 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 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 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 ) session.getAttribute(WebKeys.HTMLPAGE_QUERY); 126 } 127 session.setAttribute(WebKeys.HTMLPAGE_QUERY,query); 128 int count = 0; 130 131 if (((query != null) && (query.length() != 0)) || (hostId != null && !hostId.equals("0")) || (template != 0)) { 132 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 (count)); 154 req.setAttribute(WebKeys.HTMLPAGES_VIEW, l); 155 } 156 catch (Exception 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 |