1 package org.nemesis.forum.webapp.admin.action; 2 3 import java.util.ArrayList ; 4 import java.util.Iterator ; 5 import java.util.List ; 6 import java.util.Vector ; 7 8 import javax.servlet.http.HttpServletRequest ; 9 import javax.servlet.http.HttpServletResponse ; 10 11 import org.apache.commons.logging.Log; 12 import org.apache.commons.logging.LogFactory; 13 import org.apache.struts.action.ActionError; 14 import org.apache.struts.action.ActionErrors; 15 import org.apache.struts.action.ActionForm; 16 import org.apache.struts.action.ActionForward; 17 import org.apache.struts.action.ActionMapping; 18 import org.apache.struts.action.ActionMessage; 19 import org.nemesis.forum.Forum; 20 import org.nemesis.forum.ForumFactory; 21 import org.nemesis.forum.ForumThread; 22 import org.nemesis.forum.Message; 23 import org.nemesis.forum.User; 24 import org.nemesis.forum.exception.UnauthorizedException; 25 import org.nemesis.forum.webapp.admin.Config; 26 import org.nemesis.forum.webapp.admin.bean.ForumBean; 27 import org.nemesis.forum.webapp.admin.bean.MessageBean; 28 import org.nemesis.forum.webapp.admin.bean.ThreadBean; 29 import org.nemesis.forum.webapp.admin.bean.UserBean; 30 31 public class ListForumContentAction extends BaseAction { 32 33 static protected Log log = LogFactory.getLog(ListForumContentAction.class); 34 35 public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { 36 37 checkUser(request); 39 40 ActionErrors errors = new ActionErrors(); 41 42 try { 43 44 int maxIndexPages=Config.forumThreadsListPagerMaxIndexPages; 45 int maxPageItems=Config.forumThreadsListPagerMaxPageItems; 46 request.setAttribute("maxIndexPages",new Integer (maxIndexPages)); 47 request.setAttribute("maxPageItems",new Integer (maxPageItems)); 48 49 int start=0; 50 try { 51 start = Integer.parseInt(request.getParameter("pager.offset")); 52 } catch (Exception e) { 53 54 } 55 56 57 List v = new Vector (); 58 59 ForumFactory forumFactory = ForumFactory.getInstance(getAuthToken(request)); 60 Forum forum = forumFactory.getForum(Integer.parseInt(request.getParameter("id"))); 61 checkPermission(request, OperationConstants.LIST_FORUM_CONTENT, forum); 63 64 ForumBean fb = new ForumBean(); 65 fb.setId(forum.getID()); 66 fb.setName(forum.getName()); 67 fb.setNotApprovedMessages(forum.getMessageCount(false)); 68 fb.setNotApprovedThreads(forum.getThreadCount(false)); 69 fb.setThreads(forum.getThreadCount()); 70 fb.setMessages(forum.getMessageCount()); 71 72 request.setAttribute("fb", fb); 73 74 request.setAttribute("nbItems",new Integer (forum.getThreadCount())); 75 76 77 List tbs = new ArrayList (); 78 Iterator threadIterator = forum.threads(start,maxPageItems); 80 ThreadBean tb = null; 81 82 while (threadIterator.hasNext()) { 83 ForumThread currentThread = (ForumThread) threadIterator.next(); 84 tb = new ThreadBean(); 85 tb.setId(currentThread.getID()); 86 tb.setForumID(forum.getID()); 87 tb.setCreationDate(currentThread.getCreationDate()); 88 tb.setModifiedDate(currentThread.getModifiedDate()); 89 tb.setApproved(currentThread.isApproved()); 90 tb.setNotApprovedMessages(currentThread.getMessageCount(false)); 91 tb.setReplies(currentThread.getMessageCount() - 1); 92 tb.setTopic(currentThread.getName()); 93 94 Message rootMessage = currentThread.getRootMessage(); 95 MessageBean mb = new MessageBean(); 96 mb.setAnonymous(rootMessage.isAnonymous()); 97 98 UserBean ub = new UserBean(); 99 if(!rootMessage.isAnonymous()){ 100 101 User rootMessageUser = rootMessage.getUser(); 102 ub.setId(rootMessageUser.getID()); 103 ub.setUserName(rootMessageUser.getUsername()); 104 ub.setName(rootMessageUser.getName()); 105 ub.setEmail(rootMessageUser.getEmail()); 106 107 }else{ 108 ub.setUserName(rootMessage.getProperty("name")); 110 ub.setEmail(rootMessage.getProperty("email")); 111 } 112 113 mb.setAuthor(ub); 114 tb.setRootMessage(mb); 115 tbs.add(tb); 116 117 } 118 request.setAttribute("tbs", tbs); 119 request.setAttribute("formatDatePattern", getResources(request).getMessage(getLocale(request),"dateformat")); 120 121 } catch (UnauthorizedException ue) { 122 123 errors.add("general", new ActionError("listForumContent.unauthorized")); 124 125 } catch (Exception e) { 126 String eid = this.getClass().getName() + "_" + System.currentTimeMillis(); 127 log.error("eid:" + eid + "\nsessionID" + request.getSession().getId(), e); 128 errors.add("general", new ActionMessage("error.general", "error id:" + eid)); 129 } 130 131 if (!errors.isEmpty()) { 132 saveErrors(request, errors); 133 return mapping.findForward("cancel"); 134 } 135 136 return mapping.findForward("view"); 137 } 138 139 } | Popular Tags |