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.dispatch=Dispatch articles
|
||||||
menu.chairman.article.validate=Validate articles
|
menu.chairman.article.validate=Validate articles
|
||||||
menu.chairman.article.conflict=Manage the conflict list
|
menu.chairman.article.conflict=Manage the conflict list
|
||||||
|
menu.chairman.article.discussion=Article's discussion
|
||||||
|
|
||||||
menu.pcmember.title=PC Member
|
menu.pcmember.title=PC Member
|
||||||
menu.pcmember.article.preference=Article's preference
|
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="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="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="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>
|
</ul>
|
||||||
<div id="footer"></div>
|
<div id="footer"></div>
|
||||||
</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="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="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="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>
|
</ul>
|
||||||
<div id="footer"></div>
|
<div id="footer"></div>
|
||||||
</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="/userBoard.htm">UserBoardController</prop>
|
||||||
<prop key="/stateArticle.htm">StateArticleController</prop>
|
<prop key="/stateArticle.htm">StateArticleController</prop>
|
||||||
<prop key="/admin.htm">AdminController</prop>
|
<prop key="/admin.htm">AdminController</prop>
|
||||||
|
<prop key="/forum.htm">ForumController</prop>
|
||||||
|
<prop key="/forumArticle.htm">ForumArticleController</prop>
|
||||||
</props>
|
</props>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
@@ -62,6 +64,22 @@
|
|||||||
<bean id="ListArticleController"
|
<bean id="ListArticleController"
|
||||||
class="org.yacos.web.PCmember.controller.ListArticleController">
|
class="org.yacos.web.PCmember.controller.ListArticleController">
|
||||||
<property name="articleManager" ref="articleManager" />
|
<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>
|
||||||
|
|
||||||
<bean id="AdminController"
|
<bean id="AdminController"
|
||||||
@@ -371,7 +389,9 @@
|
|||||||
<jee:jndi-lookup id="conferenceManager"
|
<jee:jndi-lookup id="conferenceManager"
|
||||||
jndi-name="ConferenceManagerBean/remote" cache="true" />
|
jndi-name="ConferenceManagerBean/remote" cache="true" />
|
||||||
<jee:jndi-lookup id="evaluationManager"
|
<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-->
|
<!-- Configuration Properties-->
|
||||||
<bean id="configproperties"
|
<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");
|
String person = request.getParameter("role");
|
||||||
|
|
||||||
|
// TODO : renvoyer un truc s'il n'a pas le role
|
||||||
|
|
||||||
if (person.equals("pcmember")) {
|
if (person.equals("pcmember")) {
|
||||||
if (userManager.hasRoleForConference(SessionService.getInstance().getCurrentUserLogin(), RoleType.PCMEMBER, conf.getId())) {
|
if (userManager.hasRoleForConference(SessionService.getInstance().getCurrentUserLogin(), RoleType.PCMEMBER, conf.getId())) {
|
||||||
listArticle = articleManager.getArticlesOfMember(conf.getId(), SessionService.getInstance().getCurrentUserLogin());
|
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