Ajout du forum
This commit is contained in:
@@ -72,6 +72,7 @@ menu.chairman.article.list=Article's list
|
||||
menu.chairman.article.dispatch=Dispatch articles
|
||||
menu.chairman.article.validate=Validate articles
|
||||
menu.chairman.article.conflict=Manage the conflict list
|
||||
menu.chairman.article.discussion=Article's discussion
|
||||
|
||||
menu.pcmember.title=PC Member
|
||||
menu.pcmember.article.preference=Article's preference
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
<li><a href="<c:url value="dispatchArticle.htm"/>"><fmt:message key="menu.chairman.article.dispatch" /></a></li>
|
||||
<li><a href="<c:url value="validateArticle.htm"/>"><fmt:message key="menu.chairman.article.validate" /></a></li>
|
||||
<li><a href="<c:url value="conflictList.htm"/>"><fmt:message key="menu.chairman.article.conflict" /></a></li>
|
||||
<li><a href="<c:url value="forum.htm?role=chairman"/>"><fmt:message key="menu.chairman.article.discussion" /></a></li>
|
||||
</ul>
|
||||
<div id="footer"></div>
|
||||
</div>
|
||||
@@ -52,7 +53,7 @@
|
||||
<li><a href="<c:url value="choosePreference.htm"/>"><fmt:message key="menu.pcmember.article.preference" /></a></li>
|
||||
<li><a href="<c:url value="delegateArticle.htm"/>"><fmt:message key="menu.pcmember.article.delegate" /></a></li>
|
||||
<li><a href="<c:url value="listEvaluation.htm?role=pcmember"/>"><fmt:message key="menu.pcmember.article.evaluation.modify" /></a></li>
|
||||
<li><a href="<c:url value="#"/>"><fmt:message key="menu.pcmember.article.discussion" /></a></li>
|
||||
<li><a href="<c:url value="forum.htm?role=pcmember"/>"><fmt:message key="menu.pcmember.article.discussion" /></a></li>
|
||||
</ul>
|
||||
<div id="footer"></div>
|
||||
</div>
|
||||
|
||||
30
YACOSWeb/WebContent/WEB-INF/jsp/forum.jsp
Normal file
30
YACOSWeb/WebContent/WEB-INF/jsp/forum.jsp
Normal file
@@ -0,0 +1,30 @@
|
||||
<%@ include file="/WEB-INF/decorators/include.jsp"%>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h4 class="title">Forum</h4>
|
||||
|
||||
|
||||
<table style="width: 100%; border: 1px solid orange;">
|
||||
|
||||
<tr>
|
||||
<th>Article</th>
|
||||
<th>Message's number</th>
|
||||
</tr>
|
||||
|
||||
<c:forEach items="${listArticle}" var="article">
|
||||
|
||||
<tr>
|
||||
<td><a href="<c:url value="/forumArticle.htm"><c:param name="articleId" value="${article.id}"/></c:url>"><b>${article.title}</b></a></td>
|
||||
<td>Afficher le nombre ici</td>
|
||||
</tr>
|
||||
|
||||
</c:forEach>
|
||||
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
61
YACOSWeb/WebContent/WEB-INF/jsp/forumArticle.jsp
Normal file
61
YACOSWeb/WebContent/WEB-INF/jsp/forumArticle.jsp
Normal file
@@ -0,0 +1,61 @@
|
||||
<%@ include file="/WEB-INF/decorators/include.jsp"%>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h4 class="title"></h4>
|
||||
|
||||
<table style="width: 100%; border: 1px solid orange;">
|
||||
|
||||
<tr>
|
||||
<th>Message</th>
|
||||
<th>Author</th>
|
||||
<th>Date</th>
|
||||
</tr>
|
||||
|
||||
<c:choose>
|
||||
<c:when test="${empty listMessage}">
|
||||
<div class="warningBox">
|
||||
There is no message for this article at the moment.
|
||||
You can post a message if you want using the form below.
|
||||
</div>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<c:forEach items="${listMessage}" var="message">
|
||||
|
||||
<tr>
|
||||
<td>${message.message}</td>
|
||||
<td>${message.user.firstName} ${message.user.lastName}</td>
|
||||
<td>${message.dateMessage}</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
<form:form method="post" commandName="addMessage" id="account_data">
|
||||
|
||||
<p class="legend">Add a message</p>
|
||||
|
||||
<fieldset>
|
||||
<div>
|
||||
<form:label path="title">Title</form:label>
|
||||
<form:input path="title"/>
|
||||
</div>
|
||||
<div>
|
||||
<form:label path="message">Your message</form:label>
|
||||
<form:textarea path="message" cols="60" rows="10" />
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<input type="submit" value="Send" />
|
||||
|
||||
</form:form>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -49,6 +49,8 @@
|
||||
<prop key="/userBoard.htm">UserBoardController</prop>
|
||||
<prop key="/stateArticle.htm">StateArticleController</prop>
|
||||
<prop key="/admin.htm">AdminController</prop>
|
||||
<prop key="/forum.htm">ForumController</prop>
|
||||
<prop key="/forumArticle.htm">ForumArticleController</prop>
|
||||
</props>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -62,6 +64,22 @@
|
||||
<bean id="ListArticleController"
|
||||
class="org.yacos.web.PCmember.controller.ListArticleController">
|
||||
<property name="articleManager" ref="articleManager" />
|
||||
</bean>
|
||||
|
||||
<bean id="ForumController"
|
||||
class="org.yacos.web.PCmember.controller.ForumController">
|
||||
<property name="articleManager" ref="articleManager" />
|
||||
<property name="userManager" ref="userManager" />
|
||||
</bean>
|
||||
|
||||
<bean id="ForumArticleController"
|
||||
class="org.yacos.web.PCmember.controller.ForumArticleController">
|
||||
<property name="sessionForm" value="true" />
|
||||
<property name="commandName" value="addMessage" />
|
||||
<property name="commandClass" value="org.yacos.web.PCmember.form.FormArticleMessage" />
|
||||
<property name="formView" value="forumArticle" />
|
||||
<property name="messageManager" ref="messageManager" />
|
||||
<property name="articleManager" ref="articleManager" />
|
||||
</bean>
|
||||
|
||||
<bean id="AdminController"
|
||||
@@ -371,7 +389,9 @@
|
||||
<jee:jndi-lookup id="conferenceManager"
|
||||
jndi-name="ConferenceManagerBean/remote" cache="true" />
|
||||
<jee:jndi-lookup id="evaluationManager"
|
||||
jndi-name="EvaluationManagerBean/remote" cache="true" />
|
||||
jndi-name="EvaluationManagerBean/remote" cache="true" />
|
||||
<jee:jndi-lookup id="messageManager"
|
||||
jndi-name="MessageManagerBean/remote" cache="true" />
|
||||
|
||||
<!-- Configuration Properties-->
|
||||
<bean id="configproperties"
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
package org.yacos.web.PCmember.controller;
|
||||
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.springframework.validation.BindException;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.ModelAndViewDefiningException;
|
||||
import org.springframework.web.servlet.mvc.SimpleFormController;
|
||||
import org.springframework.web.servlet.view.RedirectView;
|
||||
import org.yacos.core.article.Article;
|
||||
import org.yacos.core.article.IArticleManager;
|
||||
import org.yacos.core.forum.IMessageManager;
|
||||
import org.yacos.core.forum.Message;
|
||||
import org.yacos.web.PCmember.form.FormArticleMessage;
|
||||
import org.yacos.web.system.session.SessionService;
|
||||
|
||||
|
||||
public class ForumArticleController extends SimpleFormController {
|
||||
|
||||
protected final Log logger = LogFactory.getLog(getClass());
|
||||
|
||||
private IMessageManager messageManager;
|
||||
private IArticleManager articleManager;
|
||||
|
||||
public IMessageManager getMessageManager() {
|
||||
return messageManager;
|
||||
}
|
||||
|
||||
public void setMessageManager(IMessageManager messageManager) {
|
||||
this.messageManager = messageManager;
|
||||
}
|
||||
|
||||
public IArticleManager getArticleManager() {
|
||||
return articleManager;
|
||||
}
|
||||
|
||||
public void setArticleManager(IArticleManager articleManager) {
|
||||
this.articleManager = articleManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Object formBackingObject(HttpServletRequest request)
|
||||
throws Exception {
|
||||
|
||||
logger.info("Returning message view");
|
||||
|
||||
String articleId = request.getParameter("articleId");
|
||||
|
||||
try {
|
||||
Integer id = new Integer(articleId);
|
||||
Article a = articleManager.getArticle(id);
|
||||
|
||||
if (a == null)
|
||||
throw new ModelAndViewDefiningException(new ModelAndView("404error"));
|
||||
|
||||
List<Message> listMessage = messageManager.getMessagesForArticle(id);
|
||||
|
||||
request.getSession().setAttribute("listMessage", listMessage);
|
||||
|
||||
FormArticleMessage fam = new FormArticleMessage();
|
||||
|
||||
return fam;
|
||||
}
|
||||
catch (NumberFormatException e) {
|
||||
throw new ModelAndViewDefiningException(new ModelAndView("404error"));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ModelAndView onSubmit(HttpServletRequest request,
|
||||
HttpServletResponse response, Object command, BindException errors)
|
||||
throws Exception {
|
||||
|
||||
String title = ((FormArticleMessage) command).getTitle();
|
||||
String message = ((FormArticleMessage) command).getMessage();
|
||||
|
||||
String articleId = request.getParameter("articleId");
|
||||
|
||||
try {
|
||||
|
||||
Integer id = new Integer(articleId);
|
||||
Article a = articleManager.getArticle(id);
|
||||
|
||||
if (a == null)
|
||||
throw new ModelAndViewDefiningException(new ModelAndView("404error"));
|
||||
|
||||
messageManager.addMessage(message, title, id, SessionService.getInstance().getCurrentUserLogin());
|
||||
|
||||
return new ModelAndView(new RedirectView("forumArticle.htm?articleId=" + id));
|
||||
|
||||
}
|
||||
catch (NumberFormatException e) {
|
||||
throw new ModelAndViewDefiningException(new ModelAndView("404error"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
package org.yacos.web.PCmember.controller;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.ModelAndViewDefiningException;
|
||||
import org.springframework.web.servlet.mvc.SimpleFormController;
|
||||
import org.yacos.core.article.Article;
|
||||
import org.yacos.core.article.IArticleManager;
|
||||
import org.yacos.core.conferences.Conference;
|
||||
import org.yacos.core.exceptions.ConferenceDoesntExistException;
|
||||
import org.yacos.core.users.IUserManager;
|
||||
import org.yacos.core.users.Role.RoleType;
|
||||
import org.yacos.web.system.controller.NoConferenceSelectedException;
|
||||
import org.yacos.web.system.session.SessionService;
|
||||
|
||||
public class ForumController extends SimpleFormController {
|
||||
|
||||
protected final Log logger = LogFactory.getLog(getClass());
|
||||
|
||||
private IArticleManager articleManager;
|
||||
private IUserManager userManager;
|
||||
|
||||
public IArticleManager getArticleManager() {
|
||||
return articleManager;
|
||||
}
|
||||
|
||||
public void setArticleManager(IArticleManager articleManager) {
|
||||
this.articleManager = articleManager;
|
||||
}
|
||||
|
||||
public IUserManager getUserManager() {
|
||||
return userManager;
|
||||
}
|
||||
|
||||
public void setUserManager(IUserManager userManager) {
|
||||
this.userManager = userManager;
|
||||
}
|
||||
|
||||
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
|
||||
throws ServletException, IOException, NoConferenceSelectedException, ConferenceDoesntExistException {
|
||||
|
||||
logger.info("Returning the forum view");
|
||||
|
||||
Conference conf = SessionService.getInstance().getCurrentConference();
|
||||
List<Article> listArticle = new ArrayList<Article>();
|
||||
|
||||
String person = request.getParameter("role");
|
||||
|
||||
// TODO : renvoyer un truc s'il n'a pas le role
|
||||
if (person.equals("pcmember")) {
|
||||
if (userManager.hasRoleForConference(SessionService.getInstance().getCurrentUserLogin(), RoleType.PCMEMBER, conf.getId())) {
|
||||
listArticle = articleManager.getArticlesOfMember(conf.getId(), SessionService.getInstance().getCurrentUserLogin());
|
||||
}
|
||||
}
|
||||
else if (person.equals("chairman")) {
|
||||
if (userManager.hasRoleForConference(SessionService.getInstance().getCurrentUserLogin(), RoleType.CHAIRMAN, conf.getId())) {
|
||||
listArticle = articleManager.getArticles(conf.getId());
|
||||
}
|
||||
}
|
||||
else
|
||||
throw new ModelAndViewDefiningException(new ModelAndView("404error"));
|
||||
|
||||
|
||||
return new ModelAndView("forum", "listArticle", listArticle);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -52,6 +52,8 @@ public class ListEvaluationController extends SimpleFormController {
|
||||
|
||||
String person = request.getParameter("role");
|
||||
|
||||
// TODO : renvoyer un truc s'il n'a pas le role
|
||||
|
||||
if (person.equals("pcmember")) {
|
||||
if (userManager.hasRoleForConference(SessionService.getInstance().getCurrentUserLogin(), RoleType.PCMEMBER, conf.getId())) {
|
||||
listArticle = articleManager.getArticlesOfMember(conf.getId(), SessionService.getInstance().getCurrentUserLogin());
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
package org.yacos.web.PCmember.form;
|
||||
|
||||
public class FormArticleMessage {
|
||||
|
||||
private String message;
|
||||
private String title;
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
public void setMessage(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user