1 16 package com.blandware.atleap.webapp.action.core.actionPage; 17 18 import com.blandware.atleap.common.Constants; 19 import com.blandware.atleap.model.core.ActionPage; 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.ActionPageForm; 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.commons.validator.GenericValidator; 28 import org.apache.struts.action.ActionForm; 29 import org.apache.struts.action.ActionForward; 30 import org.apache.struts.action.ActionMapping; 31 import org.apache.struts.action.ActionMessage; 32 import org.apache.struts.action.ActionMessages; 33 34 import javax.servlet.http.HttpServletRequest ; 35 import javax.servlet.http.HttpServletResponse ; 36 37 59 public final class DeleteActionPageAction extends BaseAction { 60 69 public ActionForward execute(ActionMapping mapping, ActionForm form, 70 HttpServletRequest request, HttpServletResponse response) throws Exception { 71 72 ActionPageForm actionPageForm = (ActionPageForm) form; 73 Long actionPageId = null; 74 if ( !GenericValidator.isBlankOrNull(actionPageForm.getId()) ) { 75 actionPageId = Long.valueOf(actionPageForm.getId()); 76 } else { 77 if ( log.isWarnEnabled() ) { 78 log.warn("Missing action page ID. Returning to list..."); 79 } 80 return mapping.findForward("listActionPages"); 81 } 82 83 PageManager pageManager = (PageManager) getBean(Constants.PAGE_MANAGER_BEAN); 84 ActionPage actionPage = pageManager.retrieveActionPage(actionPageId); 85 86 if ( actionPage == null ) { 87 ActionMessages errors = new ActionMessages(); 89 errors.add("actionPageNotFound", new ActionMessage("core.actionPage.errors.notFound")); 90 saveErrors(request, errors); 91 return mapping.findForward("listActionPages"); 92 } 93 94 if ( !"true".equalsIgnoreCase(request.getParameter("force")) && actionPage.isInUse() ) { 95 String action = mapping.findForward("listActionPages").getPath(); 97 String redirectUrl = WebappUtil.getActionMappingURL(action, null, request, WebappConstants.URL_TYPE_DOMAIN_RELATIVE); 98 request.getSession().setAttribute(WebappConstants.LINKED_OBJECTS_REDIRECT_URL_KEY, redirectUrl); 99 ActionMessages messages = new ActionMessages(); 100 messages.add("deleteWarning", new ActionMessage("core.actionPage.messages.deleteWarning")); 101 saveMessages(request, messages); 102 request.getSession().removeAttribute(WebappConstants.LINKED_OBJECTS_UPDATE_ACTION_KEY); 103 request.getSession().setAttribute(WebappConstants.LINKED_OBJECTS_DELETE_ACTION_KEY, "core/actionPage/delete"); 104 request.setAttribute(WebappConstants.LINKED_OBJECT_ID_KEY, actionPage.getId()); 105 request.setAttribute(WebappConstants.LINKED_OBJECT_TYPE_KEY, "page"); 106 saveToken(request); 107 return mapping.findForward("viewLinkedObjects"); 108 } 109 110 String uri = actionPage.getUri(); 111 pageManager.deleteActionPage(actionPageId); 112 113 SearchManager searchManager = SearchManager.getInstance(request.getSession().getServletContext()); 115 searchManager.unIndexPage(uri, request); 116 117 CacheUtil cacheUtil = CacheUtil.getInstance(request); 119 cacheUtil.flushPageFieldValueCache(uri); 120 cacheUtil.flushFieldIndices(); 121 122 cacheUtil.flushMenuCache(); 124 125 return mapping.findForward("listActionPages"); 126 } 127 } | Popular Tags |