1 16 package com.blandware.atleap.webapp.action.news; 17 18 import com.blandware.atleap.common.NewsModuleConstants; 19 import com.blandware.atleap.model.news.NewsItem; 20 import com.blandware.atleap.search.SearchManager; 21 import com.blandware.atleap.service.news.NewsManager; 22 import com.blandware.atleap.webapp.action.core.BaseAction; 23 import com.blandware.atleap.webapp.form.NewsItemForm; 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 56 public final class DeleteNewsItemAction extends BaseAction { 57 66 public ActionForward execute(ActionMapping mapping, ActionForm form, 67 HttpServletRequest request, HttpServletResponse response) throws Exception { 68 69 NewsItemForm newsItemForm = (NewsItemForm) form; 70 Long newsItemId = null; 71 if ( newsItemForm.getId() != null ) { 72 newsItemId = Long.valueOf(newsItemForm.getId()); 73 } else { 74 if ( log.isWarnEnabled() ) { 75 log.warn("Missing news item ID. Returning to list..."); 76 } 77 return mapping.findForward("listNewsItems"); 78 } 79 80 NewsManager newsManager = (NewsManager) getBean(NewsModuleConstants.NEWS_MANAGER_BEAN); 81 NewsItem newsItem = newsManager.retrieveNewsItem(newsItemId); 82 83 if ( newsItem == null ) { 84 ActionMessages errors = new ActionMessages(); 86 errors.add("newsItemNotFound", new ActionMessage("news.errors.notFound")); 87 saveErrors(request, errors); 88 return mapping.findForward("listNewsItems"); 89 } 90 91 if ( !"true".equalsIgnoreCase(request.getParameter("force")) && newsItem.isInUse() ) { 92 String action = mapping.findForward("listNewsItems").getPath(); 94 String redirectUrl = WebappUtil.getActionMappingURL(action, null, request, WebappConstants.URL_TYPE_DOMAIN_RELATIVE); 95 request.getSession().setAttribute(WebappConstants.LINKED_OBJECTS_REDIRECT_URL_KEY, redirectUrl); 96 ActionMessages messages = new ActionMessages(); 97 messages.add("deleteWarning", new ActionMessage("news.messages.deleteWarning")); 98 saveMessages(request, messages); 99 request.getSession().removeAttribute(WebappConstants.LINKED_OBJECTS_UPDATE_ACTION_KEY); 100 request.getSession().setAttribute(WebappConstants.LINKED_OBJECTS_DELETE_ACTION_KEY, "news/deleteItem"); 101 request.setAttribute(WebappConstants.LINKED_OBJECT_ID_KEY, newsItem.getId()); 102 request.setAttribute(WebappConstants.LINKED_OBJECT_TYPE_KEY, "page"); 103 return mapping.findForward("viewLinkedObjects"); 104 } 105 106 String uri = newsItem.getUri(); 107 newsManager.deleteNewsItem(newsItemId); 108 109 SearchManager searchManager = SearchManager.getInstance(request.getSession().getServletContext()); 111 searchManager.unIndexPage(uri, request); 112 113 CacheUtil cacheUtil = CacheUtil.getInstance(request); 114 cacheUtil.flushLocalizableFieldValueCache(newsItemId); 115 116 return mapping.findForward("listNewsItems"); 117 } 118 } | Popular Tags |