1 16 package com.blandware.atleap.webapp.action.core.contentPage; 17 18 import com.blandware.atleap.common.Constants; 19 import com.blandware.atleap.model.core.ContentPage; 20 import com.blandware.atleap.search.SearchManager; 21 import com.blandware.atleap.service.core.PageManager; 22 import com.blandware.atleap.webapp.action.core.BaseAction; 23 import com.blandware.atleap.webapp.form.ContentPageForm; 24 import com.blandware.atleap.webapp.util.core.CacheUtil; 25 import com.blandware.atleap.webapp.util.core.WebappConstants; 26 import com.blandware.atleap.webapp.util.core.WebappUtil; 27 import org.apache.struts.action.ActionForm; 28 import org.apache.struts.action.ActionForward; 29 import org.apache.struts.action.ActionMapping; 30 import org.apache.struts.action.ActionMessage; 31 import org.apache.struts.action.ActionMessages; 32 33 import javax.servlet.http.HttpServletRequest ; 34 import javax.servlet.http.HttpServletResponse ; 35 36 58 public final class DeleteContentPageAction extends BaseAction { 59 68 public ActionForward execute(ActionMapping mapping, ActionForm form, 69 HttpServletRequest request, HttpServletResponse response) throws Exception { 70 71 ContentPageForm contentPageForm = (ContentPageForm) form; 72 Long contentPageId = null; 73 if ( contentPageForm.getId() != null ) { 74 contentPageId = Long.valueOf(contentPageForm.getId()); 75 } else { 76 if ( log.isWarnEnabled() ) { 77 log.warn("Missing content page ID. Returning to list..."); 78 } 79 return mapping.findForward("listContentPages"); 80 } 81 82 PageManager pageManager = (PageManager) getBean(Constants.PAGE_MANAGER_BEAN); 83 ContentPage contentPage = pageManager.retrieveContentPage(contentPageId); 84 if ( contentPage == null ) { 85 ActionMessages errors = new ActionMessages(); 87 errors.add("contentPageNotFound", new ActionMessage("core.contentPage.errors.notFound")); 88 saveErrors(request, errors); 89 return mapping.findForward("listContentPages"); 90 } 91 92 if ( !"true".equalsIgnoreCase(request.getParameter("force")) && contentPage.isInUse() ) { 93 String action = mapping.findForward("listContentPages").getPath(); 95 String redirectUrl = WebappUtil.getActionMappingURL(action, null, request, WebappConstants.URL_TYPE_DOMAIN_RELATIVE); 96 request.getSession().setAttribute(WebappConstants.LINKED_OBJECTS_REDIRECT_URL_KEY, redirectUrl); 97 ActionMessages messages = new ActionMessages(); 98 messages.add("deleteWarning", new ActionMessage("core.contentPage.messages.deleteWarning")); 99 saveMessages(request, messages); 100 request.getSession().removeAttribute(WebappConstants.LINKED_OBJECTS_UPDATE_ACTION_KEY); 101 request.getSession().setAttribute(WebappConstants.LINKED_OBJECTS_DELETE_ACTION_KEY, "core/contentPage/delete"); 102 request.setAttribute(WebappConstants.LINKED_OBJECT_ID_KEY, contentPage.getId()); 103 request.setAttribute(WebappConstants.LINKED_OBJECT_TYPE_KEY, "page"); 104 saveToken(request); 105 return mapping.findForward("viewLinkedObjects"); 106 } 107 108 String uri = contentPage.getUri(); 109 pageManager.deleteContentPage(contentPageId); 110 111 SearchManager searchManager = SearchManager.getInstance(request.getSession().getServletContext()); 113 searchManager.unIndexPage(uri, request); 114 115 CacheUtil cacheUtil = CacheUtil.getInstance(request); 117 cacheUtil.flushPageFieldValueCache(uri); 118 cacheUtil.flushFieldIndices(); 119 cacheUtil.flushContentPageCache(uri); 120 121 cacheUtil.flushMenuCache(); 123 124 return mapping.findForward("listContentPages"); 125 } 126 } | Popular Tags |