Policy failures:
Code warning - failed on resource dispatchArticleList.jsp. Reason: Invalid location of tag (table)., line 165 - failed on resource dispatchArticleList.jsp. Reason: No end tag (</div>)., line 18 Override reason: a
This commit is contained in:
13
YACOSWeb/WebContent/WEB-INF/dwr.xml
Normal file
13
YACOSWeb/WebContent/WEB-INF/dwr.xml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd">
|
||||||
|
|
||||||
|
<dwr>
|
||||||
|
<allow>
|
||||||
|
<create creator="new" javascript="JDate">
|
||||||
|
<param name="class" value="java.util.Date"/>
|
||||||
|
</create>
|
||||||
|
<create creator="new" javascript="TestClass">
|
||||||
|
<param name="class" value="testClass"/>
|
||||||
|
</create>
|
||||||
|
</allow>
|
||||||
|
</dwr>
|
||||||
@@ -7,74 +7,140 @@
|
|||||||
<script type='text/javascript' src='./dwr/util.js'></script>
|
<script type='text/javascript' src='./dwr/util.js'></script>
|
||||||
<script type='text/javascript' src='./dwr/interface/DispatchArticlesJS.js'></script>
|
<script type='text/javascript' src='./dwr/interface/DispatchArticlesJS.js'></script>
|
||||||
<script type='text/javascript' src='./javascripts/prototype.js'></script>
|
<script type='text/javascript' src='./javascripts/prototype.js'></script>
|
||||||
|
<script type='text/javascript' src='./javascripts/scriptaculous.js'></script>
|
||||||
|
|
||||||
<script type='text/javascript'>
|
<script type='text/javascript'>
|
||||||
function addMember(memberId, articleId){
|
|
||||||
DispatchArticlesJS.addMember(memberId, articleId, fillTable);
|
|
||||||
|
var InvitationsManager = Class.create({
|
||||||
|
initialize: function(buttonAdd,buttonRemove){
|
||||||
|
this.buttonAdd = buttonAdd;
|
||||||
|
this.buttonRemove = buttonRemove;
|
||||||
|
|
||||||
|
$(buttonAdd).observe("click",this.addRemote.bind(this));
|
||||||
|
$(buttonRemove).observe("click",this.removeRemote.bind(this));
|
||||||
|
|
||||||
|
DispatchArticlesJS.getMembersWithTheArticle($('articleId').value,this.fillListArticleMembers.bind(this));
|
||||||
|
DispatchArticlesJS.getMembersWithoutTheArticle($('articleId').value,this.fillListMembers.bind(this));
|
||||||
|
},
|
||||||
|
|
||||||
|
fillListArticleMembers: function(data){
|
||||||
|
|
||||||
|
for (var i = 0; i < data.length; i++) {
|
||||||
|
var member = data[i];
|
||||||
|
var value= member.firstName+" "+member.lastName +'(' + member.nbArticles + ')'
|
||||||
|
+ " preferences:"+ member.Preference;
|
||||||
|
var elem = new Element('div',
|
||||||
|
{'class':'dynamicListItem','id':member.login}).update(value);
|
||||||
|
$('membersArticleList').insert(elem);
|
||||||
|
elem.observe('click', this.select.bindAsEventListener());
|
||||||
|
|
||||||
|
|
||||||
|
//a placer sur tous les items :
|
||||||
|
//elem.observe('click', this.select.bindAsEventListener());
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
fillListMembers: function(data){
|
||||||
|
|
||||||
|
for (var i = 0; i < data.length; i++) {
|
||||||
|
var member = data[i];
|
||||||
|
var value= member.firstName+" "+member.lastName +'(' + member.nbArticles + ')'
|
||||||
|
+ " preferences:"+ member.Preference;
|
||||||
|
var elem = new Element('div',
|
||||||
|
{'class':'dynamicListItem','id':member.login}).update(value);
|
||||||
|
$('membersList').insert(elem);
|
||||||
|
elem.observe('click', this.select.bindAsEventListener());
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
select: function(event){
|
||||||
|
var item = event.element();
|
||||||
|
if(item.hasClassName('selected')){
|
||||||
|
item.removeClassName('selected');
|
||||||
|
} else {
|
||||||
|
item.addClassName('selected');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
removeRemote: function() {
|
||||||
|
var itemsToRemove = $('membersList').select('div.selected');
|
||||||
|
var membersId = itemsToRemove.pluck('id');
|
||||||
|
var articleId = $('articleId').value;
|
||||||
|
DispatchArticlesJS.removeMembers(membersId, articleId, this.remove.bind(this));
|
||||||
|
},
|
||||||
|
|
||||||
|
remove: function() {
|
||||||
|
var itemsToRemove = $('membersArticleList').select('div.selected');
|
||||||
|
//suppression dans la premi<6D>re liste
|
||||||
|
itemsToRemove.invoke('remove');
|
||||||
|
|
||||||
|
//ajout dans la seconde liste
|
||||||
|
if (itemsToRemove.length != 0){
|
||||||
|
for (var i = 0; i < itemsToRemove.length; i++) {
|
||||||
|
item = itemsToRemove[i];
|
||||||
|
item.removeClassName('selected');
|
||||||
|
$('membersList').insert(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
addRemote: function(){
|
||||||
|
var itemsToAdd = $('membersList').select('div.selected');
|
||||||
|
var membersId = itemsToAdd.pluck('id');
|
||||||
|
var articleId = $('articleId').value;
|
||||||
|
DispatchArticlesJS.removeMembers(membersId, articleId, this.add.bind(this));
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
add: function() {
|
||||||
|
var itemsToAdd = $('membersList').select('div.selected');
|
||||||
|
//suppression dans la premi<6D>re liste
|
||||||
|
itemsToAdd.invoke('remove');
|
||||||
|
|
||||||
|
//ajout dans la seconde liste
|
||||||
|
if (itemsToAdd.length != 0){
|
||||||
|
for (var i = 0; i < itemsToAdd.length; i++) {
|
||||||
|
item = itemsToAdd[i];
|
||||||
|
item.removeClassName('selected');
|
||||||
|
$('membersArticleList').insert(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function removeMember(memberId, articleId){
|
|
||||||
DispatchArticlesJS.removeMember(memberId, articleId, fillTable);
|
});
|
||||||
}
|
|
||||||
function fillTable(data) {
|
Event.observe(window,'load', function(){
|
||||||
//dwr.util.removeAllRows('members');
|
new DispatcheManager('addButton','removeButton')});
|
||||||
//dwr.util.addRows('members',data, cellFuncs);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
<div id=dispatcher></div>
|
||||||
|
|
||||||
<h4 class="title">NO NAME</h4>
|
<h4 class="title">NO NAME</h4>
|
||||||
|
|
||||||
<h4 class="title"><fmt:message key="disptachArticle.choose" /></h4>
|
<h4 class="title"><fmt:message key="disptachArticle.choose" /></h4>
|
||||||
|
|
||||||
<input type="button" value="hello" onclick="sayHello('max');"/>
|
<input type=hidden id="articleId" value="${article.id}">
|
||||||
<p>
|
|
||||||
Article's description :
|
<div style="display:inline;border:1px">
|
||||||
<br/>title : ${article.title}
|
<h2><fmt:message key="members.List1"/></h2>
|
||||||
<br/> theme: ${article.topic}
|
<div id="membersList">
|
||||||
<br/> main author: ${article.mainAuthor.firstName}{article.mainAuthor.lastName}
|
|
||||||
<br/><a href="${article.URL_article}">download the article</a>
|
|
||||||
</p>
|
|
||||||
<br/>
|
|
||||||
|
|
||||||
<b>members of the conference</b>
|
|
||||||
|
|
||||||
<table border="1px" id="members">
|
|
||||||
<tr>
|
|
||||||
<th>name</th>
|
|
||||||
<th>preference</th>
|
|
||||||
<th>nb of articles for this conference</th>
|
|
||||||
<th></th>
|
|
||||||
</tr>
|
|
||||||
<c:forEach var="m" items="${members}">
|
|
||||||
<tr>
|
|
||||||
<td>${m.firstName} ${m.lastName}</td>
|
|
||||||
<td>${m.preference}</td>
|
|
||||||
<td>${m.nbArticles}</td>
|
|
||||||
<td><input type="button" value="add" onclick="addMember('${m.login}','${article.id}');"/></td>
|
|
||||||
</tr>
|
|
||||||
</c:forEach>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<table border="1px" id="articleMembers">
|
</div>
|
||||||
<tr>
|
|
||||||
<th>name</th>
|
<input type="button" id="addButton" value="add"/>
|
||||||
<th>preference</th>
|
<input type="button" id="removeButton" value="remove"/>
|
||||||
</tr>
|
|
||||||
<c:forEach var="am" items="${articleMembers}">
|
<h2><fmt:message key="members.List2"/></h2>
|
||||||
<tr>
|
<div id="membersArticleList">
|
||||||
<td>${am.firstName} ${am.lastName}</td>
|
</div>
|
||||||
<td>${m.preference}</td>
|
</div>
|
||||||
<td><input type="button" value="delete" onclick="removeMember('${am.login}','${article.id}');"/></td>
|
|
||||||
</tr>
|
|
||||||
</c:forEach>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|||||||
@@ -1,23 +1,182 @@
|
|||||||
<%@ include file="/WEB-INF/decorators/include.jsp"%>
|
<%@ include file="/WEB-INF/decorators/include.jsp"%>
|
||||||
|
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
|
<script type='text/javascript' src='./javascripts/prototype.js'></script>
|
||||||
|
<script type='text/javascript' src='./javascripts/scriptaculous.js'></script>
|
||||||
|
<script type='text/javascript' src='./dwr/engine.js'></script>
|
||||||
|
<script type='text/javascript' src='./dwr/util.js'></script>
|
||||||
|
<script type='text/javascript' src='./dwr/interface/DispatchArticlesJS.js'></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var selectedElement;
|
||||||
|
var articleId;
|
||||||
|
|
||||||
|
function showDetail(artId){
|
||||||
|
var articleId = artId;
|
||||||
|
var divTitle = 'title'+artId;
|
||||||
|
var divArticle = 'article'+artId;
|
||||||
|
if (!$(divTitle).hasClassName('selected')){
|
||||||
|
|
||||||
|
if($('dispatcher')!= null){
|
||||||
|
$('dispatcher').remove();
|
||||||
|
selectedElement.removeClassName('selected');
|
||||||
|
}
|
||||||
|
selectedElement = $(divTitle);
|
||||||
|
$(divTitle).addClassName('selected');
|
||||||
|
initDispatcher(divArticle);
|
||||||
|
|
||||||
|
}else{
|
||||||
|
$(divTitle).removeClassName('selected');
|
||||||
|
new Effect.SlideUp('dispatcher', {afterFinish:function(){$('dispatcher').remove();}});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function initDispatcher(elementId){
|
||||||
|
|
||||||
|
//container
|
||||||
|
var pattern = $('dispatcherPattern').innerHTML;
|
||||||
|
var elem = new Element('div',
|
||||||
|
{'class':'dynamicListItem',
|
||||||
|
'style':'background:pink;display:none',
|
||||||
|
'id':"dispatcher"}).update(pattern);
|
||||||
|
$(elementId).insert(elem);
|
||||||
|
new Effect.SlideDown('dispatcher');
|
||||||
|
|
||||||
|
//listes
|
||||||
|
//DispatchArticlesJS.sayHello("maxime",retour);
|
||||||
|
DispatchArticlesJS.getMembersWithoutTheArticle(articleId,fillListMembers);
|
||||||
|
DispatchArticlesJS.getMembersWithTheArticle(articleId,fillListArticleMembers);
|
||||||
|
|
||||||
|
//buttons
|
||||||
|
$('addButton').observe("click",addRemote());
|
||||||
|
$('removeButton').observe("click",removeRemote());
|
||||||
|
}
|
||||||
|
|
||||||
|
function retour(data){
|
||||||
|
alert(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
function fillListArticleMembers(data){
|
||||||
|
|
||||||
|
for (var i = 0; i < data.length; i++) {
|
||||||
|
var member = data[i];
|
||||||
|
var value= member.firstName+" "+member.lastName +'(' + member.nbArticles + ')'
|
||||||
|
+ " preferences:"+ member.Preference;
|
||||||
|
var elem = new Element('div',
|
||||||
|
{'class':'dynamicListItem','id':member.login}).update(value);
|
||||||
|
$('membersArticleList').insert(elem);
|
||||||
|
elem.observe('click', this.select.bindAsEventListener());
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function fillListMembers(data){
|
||||||
|
|
||||||
|
for (var i = 0; i < data.length; i++) {
|
||||||
|
var member = data[i];
|
||||||
|
var value= member.firstName+" "+member.lastName +'(' + member.nbArticles + ')'
|
||||||
|
+ " preferences:"+ member.Preference;
|
||||||
|
var elem = new Element('div',
|
||||||
|
{'class':'dynamicListItem','id':member.login}).update(value);
|
||||||
|
$('membersList').insert(elem);
|
||||||
|
elem.observe('click', select(elem));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function select(item){
|
||||||
|
if(item.hasClassName('selected')){
|
||||||
|
item.removeClassName('selected');
|
||||||
|
} else {
|
||||||
|
item.addClassName('selected');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function removeRemote() {
|
||||||
|
var itemsToRemove = $('membersList').select('div.selected');
|
||||||
|
var membersId = itemsToRemove.pluck('id');
|
||||||
|
//var articleId = $('articleId').value;
|
||||||
|
DispatchArticlesJS.removeMembers(membersId, articleId, remove);
|
||||||
|
}
|
||||||
|
|
||||||
|
function remove() {
|
||||||
|
var itemsToRemove = $('membersArticleList').select('div.selected');
|
||||||
|
//suppression dans la premi<6D>re liste
|
||||||
|
itemsToRemove.invoke('remove');
|
||||||
|
|
||||||
|
//ajout dans la seconde liste
|
||||||
|
if (itemsToRemove.length != 0){
|
||||||
|
for (var i = 0; i < itemsToRemove.length; i++) {
|
||||||
|
item = itemsToRemove[i];
|
||||||
|
item.removeClassName('selected');
|
||||||
|
$('membersList').insert(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function addRemote(){
|
||||||
|
var itemsToAdd = $('membersList').select('div.selected');
|
||||||
|
var membersId = itemsToAdd.pluck('id');
|
||||||
|
//var articleId = $('articleId').value;
|
||||||
|
DispatchArticlesJS.removeMembers(membersId, articleId, add());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function add() {
|
||||||
|
var itemsToAdd = $('membersList').select('div.selected');
|
||||||
|
//suppression dans la premi<6D>re liste
|
||||||
|
itemsToAdd.invoke('remove');
|
||||||
|
|
||||||
|
//ajout dans la seconde liste
|
||||||
|
if (itemsToAdd.length != 0){
|
||||||
|
for (var i = 0; i < itemsToAdd.length; i++) {
|
||||||
|
item = itemsToAdd[i];
|
||||||
|
item.removeClassName('selected');
|
||||||
|
$('membersArticleList').insert(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
<div id='dispatcherPattern' style="display:none">
|
||||||
|
<table>
|
||||||
|
<tr><td>
|
||||||
|
<h1><fmt:message key="members.List1"/></h1>
|
||||||
|
<div id="membersList">
|
||||||
|
</div>
|
||||||
|
</td><td>
|
||||||
|
<input type="button" id="addButton" value="add>>>"/><br/>
|
||||||
|
<input type="button" id="removeButton" value="<<<remove"/>
|
||||||
|
</td><td>
|
||||||
|
<h1><fmt:message key="members.List2"/></h1>
|
||||||
|
<div id="membersArticleList">
|
||||||
|
</div>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
<h4 class="title"><fmt:message key="disptachArticle.choose" /></h4>
|
<h4 class="title"><fmt:message key="disptachArticle.choose" /></h4>
|
||||||
|
<c:forEach var="article" items="${articles}">
|
||||||
<table>
|
<div id="article${article.id}">
|
||||||
<c:forEach var="article" items="${articles}">
|
<div id="title${article.id}" onclick="showDetail(${article.id})">
|
||||||
<tr>
|
<h2>
|
||||||
<td>title : ${article.title}
|
<table>
|
||||||
<br/>theme: ${article.topic}
|
<tr>
|
||||||
<br/>main author: ${article.mainAuthor.firstName}{article.mainAuthor.lastName}
|
<td>title : ${article.title}
|
||||||
<br/>
|
<br/>theme: ${article.topic}
|
||||||
<td><a href="${article.URL_article}">download the article</a></td>
|
<br/>main author: ${article.mainAuthor.firstName}{article.mainAuthor.lastName}
|
||||||
<td><input type="button" value="dispatch/show details" onclick="location.href='dispatchArticle.htm?articleId=${article.id}';"/></td>
|
<td><a href="${article.URL_article}">download the article</a></td>
|
||||||
</tr>
|
|
||||||
</c:forEach>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</body>
|
</h2>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</c:forEach>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
<div>
|
||||||
</html>
|
</html>
|
||||||
@@ -13,6 +13,15 @@
|
|||||||
<load-on-startup>1</load-on-startup>
|
<load-on-startup>1</load-on-startup>
|
||||||
</servlet>
|
</servlet>
|
||||||
|
|
||||||
|
<servlet>
|
||||||
|
<servlet-name>dwr</servlet-name>
|
||||||
|
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
|
||||||
|
<init-param>
|
||||||
|
<param-name>debug</param-name>
|
||||||
|
<param-value>true</param-value>
|
||||||
|
</init-param>
|
||||||
|
</servlet>
|
||||||
|
|
||||||
<servlet-mapping>
|
<servlet-mapping>
|
||||||
<servlet-name>yacos</servlet-name>
|
<servlet-name>yacos</servlet-name>
|
||||||
<url-pattern>*.htm</url-pattern>
|
<url-pattern>*.htm</url-pattern>
|
||||||
|
|||||||
@@ -172,7 +172,7 @@
|
|||||||
|
|
||||||
<bean id="DispatchArticleController"
|
<bean id="DispatchArticleController"
|
||||||
class="org.yacos.web.chairman.controller.DispatchArticleController">
|
class="org.yacos.web.chairman.controller.DispatchArticleController">
|
||||||
<dwr:remote javascript="DispatchArticlesJS" />
|
|
||||||
<property name="articleManager" ref="articleManager" />
|
<property name="articleManager" ref="articleManager" />
|
||||||
<property name="userManager" ref="userManager" />
|
<property name="userManager" ref="userManager" />
|
||||||
<property name="conferenceManager" ref="conferenceManager" />
|
<property name="conferenceManager" ref="conferenceManager" />
|
||||||
@@ -181,6 +181,7 @@
|
|||||||
|
|
||||||
<bean id="DispatchArticleListController"
|
<bean id="DispatchArticleListController"
|
||||||
class="org.yacos.web.chairman.controller.DispatchArticleListController">
|
class="org.yacos.web.chairman.controller.DispatchArticleListController">
|
||||||
|
<dwr:remote javascript="DispatchArticlesJS" />
|
||||||
<property name="articleManager" ref="articleManager" />
|
<property name="articleManager" ref="articleManager" />
|
||||||
<property name="userManager" ref="userManager" />
|
<property name="userManager" ref="userManager" />
|
||||||
<property name="conferenceManager" ref="conferenceManager" />
|
<property name="conferenceManager" ref="conferenceManager" />
|
||||||
@@ -294,6 +295,10 @@
|
|||||||
class="org.yacos.web.chairman.controller.PersonBean">
|
class="org.yacos.web.chairman.controller.PersonBean">
|
||||||
</dwr:convert>
|
</dwr:convert>
|
||||||
|
|
||||||
|
<dwr:convert type="bean"
|
||||||
|
class="org.yacos.web.chairman.controller.PCMemberBean">
|
||||||
|
</dwr:convert>
|
||||||
|
|
||||||
<dwr:convert type="bean" class="java.lang.StackTraceElement"></dwr:convert>
|
<dwr:convert type="bean" class="java.lang.StackTraceElement"></dwr:convert>
|
||||||
<dwr:convert type="exception" class="java.lang.exception"></dwr:convert>
|
<dwr:convert type="exception" class="java.lang.exception"></dwr:convert>
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import org.yacos.core.article.Preference;
|
|||||||
import org.yacos.core.conferences.Conference;
|
import org.yacos.core.conferences.Conference;
|
||||||
import org.yacos.core.conferences.IConferenceManager;
|
import org.yacos.core.conferences.IConferenceManager;
|
||||||
import org.yacos.core.users.IUserManager;
|
import org.yacos.core.users.IUserManager;
|
||||||
|
import org.yacos.core.users.Speciality;
|
||||||
import org.yacos.core.users.User;
|
import org.yacos.core.users.User;
|
||||||
import org.yacos.core.users.Role.RoleType;
|
import org.yacos.core.users.Role.RoleType;
|
||||||
import org.yacos.web.system.session.SessionService;
|
import org.yacos.web.system.session.SessionService;
|
||||||
@@ -55,26 +56,31 @@ public class DispatchArticleController implements Controller{
|
|||||||
HttpServletResponse arg1) throws Exception {
|
HttpServletResponse arg1) throws Exception {
|
||||||
logger.info("Returning dispatcher view");
|
logger.info("Returning dispatcher view");
|
||||||
|
|
||||||
|
PCMemberBean member;
|
||||||
Conference conf = SessionService.getInstance().getCurrentConference();
|
Conference conf = SessionService.getInstance().getCurrentConference();
|
||||||
|
|
||||||
//description of the article
|
//description of the article
|
||||||
Article article = articleManager.getArticle(Integer.parseInt(req.getParameter("articleId")));
|
Article article = articleManager.getArticle(Integer.parseInt(req.getParameter("articleId")));
|
||||||
|
|
||||||
|
//List de pcmemberbean qui seront retourn<72>
|
||||||
|
List<PCMemberBean> members = new ArrayList<PCMemberBean>();
|
||||||
|
List<PCMemberBean> articleMembers = new ArrayList<PCMemberBean>();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//list of the member who have this article
|
//list of the member who have this article
|
||||||
List<User> articleMembers = userManager.getPCMemberForArticle(article.getId());
|
List<User> articleMembersTmp = userManager.getPCMemberForArticle(article.getId());
|
||||||
logger.debug("nombre de memebre prour l'article = "+articleMembers.size());
|
|
||||||
|
|
||||||
//List members for webpage
|
//list of all pcmembers of the conference
|
||||||
List<PCMemberBean> membersWeb = new ArrayList<PCMemberBean>();
|
List<User> membersTmp = userManager.getUsers(conf.getId(),RoleType.PCMEMBER);
|
||||||
|
|
||||||
//list of member who have'nt this article
|
for (User user : membersTmp) {
|
||||||
List<User> members = userManager.getUsers(conf.getId(),RoleType.PCMEMBER);
|
member = new PCMemberBean();
|
||||||
|
|
||||||
for (User user : members) {
|
|
||||||
PCMemberBean member = new PCMemberBean();
|
|
||||||
member.setFirstName(user.getFirstName());
|
member.setFirstName(user.getFirstName());
|
||||||
member.setLastName(user.getLastName());
|
member.setLastName(user.getLastName());
|
||||||
member.setLogin(user.getLogin());
|
member.setLogin(user.getLogin());
|
||||||
|
|
||||||
|
//recuperation des preferences
|
||||||
Preference pref = articleManager.getPreferenceForUserAndArticle(article.getId(), user.getLogin());
|
Preference pref = articleManager.getPreferenceForUserAndArticle(article.getId(), user.getLogin());
|
||||||
if (pref != null){
|
if (pref != null){
|
||||||
String prefType = pref.getPreferenceType().toString();
|
String prefType = pref.getPreferenceType().toString();
|
||||||
@@ -82,36 +88,156 @@ public class DispatchArticleController implements Controller{
|
|||||||
}else {
|
}else {
|
||||||
member.setPreference(Preference.PreferenceType.INDIFFERENT.toString());
|
member.setPreference(Preference.PreferenceType.INDIFFERENT.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//recuperation des specialit<69>es
|
||||||
|
List<String> spectialities = new ArrayList<String>();
|
||||||
|
List<Speciality> listSpe = userManager.getSpecialitiesFromUser(member.getLogin());
|
||||||
|
for (Speciality speciality : listSpe) {
|
||||||
|
spectialities.add(speciality.getName());
|
||||||
|
}
|
||||||
|
member.setSpecialities(spectialities);
|
||||||
|
|
||||||
|
//recuperatiojn du nombre d'article
|
||||||
int nb = 0;
|
int nb = 0;
|
||||||
List<Article> articles = articleManager.getArticlesOfMember(conf.getId(), user.getLogin());
|
List<Article> articles = articleManager.getArticlesOfMember(conf.getId(), user.getLogin());
|
||||||
if(articles != null){
|
if(articles != null){
|
||||||
nb = articles.size();
|
nb = articles.size();
|
||||||
}
|
}
|
||||||
member.setNbArticles(nb);
|
member.setNbArticles(nb);
|
||||||
membersWeb.add(member);
|
|
||||||
|
//on place le memebre dans une des listes
|
||||||
|
if (articleMembersTmp.contains(user)){
|
||||||
|
articleMembers.add(member);
|
||||||
|
}else {
|
||||||
|
members.add(member);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<String,Object> model = new HashMap<String,Object>();
|
Map<String,Object> model = new HashMap<String,Object>();
|
||||||
model.put("articleMembers",articleMembers);
|
model.put("articleMembers",articleMembers);
|
||||||
model.put("members", membersWeb);
|
model.put("members", members);
|
||||||
model.put("article", article);
|
model.put("article", article);
|
||||||
|
|
||||||
return new ModelAndView("dispatchArticle", model);
|
return new ModelAndView("dispatchArticle", model);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<User> addMember(String memberId,int articleId){
|
public List<PCMemberBean> getMembersWithTheArticle(int articleId ){
|
||||||
articleManager.assignArticleToPCMember(articleId, memberId);
|
|
||||||
|
PCMemberBean member;
|
||||||
|
Conference conf = SessionService.getInstance().getCurrentConference();
|
||||||
|
|
||||||
|
//List de pcmemberbean qui sera retourn<72>
|
||||||
|
List<PCMemberBean> articleMembers = new ArrayList<PCMemberBean>();
|
||||||
|
|
||||||
|
//list of the member who have this article
|
||||||
|
List<User> articleMembersTmp = userManager.getPCMemberForArticle(articleId);
|
||||||
|
|
||||||
|
for (User user : articleMembersTmp) {
|
||||||
|
member = new PCMemberBean();
|
||||||
|
member.setFirstName(user.getFirstName());
|
||||||
|
member.setLastName(user.getLastName());
|
||||||
|
member.setLogin(user.getLogin());
|
||||||
|
|
||||||
|
//recuperation des preferences
|
||||||
|
Preference pref = articleManager.getPreferenceForUserAndArticle(articleId, user.getLogin());
|
||||||
|
if (pref != null){
|
||||||
|
String prefType = pref.getPreferenceType().toString();
|
||||||
|
member.setPreference(prefType);
|
||||||
|
}else {
|
||||||
|
member.setPreference(Preference.PreferenceType.INDIFFERENT.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
//recuperation des specialit<69>es
|
||||||
|
List<String> spectialities = new ArrayList<String>();
|
||||||
|
List<Speciality> listSpe = userManager.getSpecialitiesFromUser(member.getLogin());
|
||||||
|
for (Speciality speciality : listSpe) {
|
||||||
|
spectialities.add(speciality.getName());
|
||||||
|
}
|
||||||
|
member.setSpecialities(spectialities);
|
||||||
|
|
||||||
|
//recuperatiojn du nombre d'article
|
||||||
|
int nb = 0;
|
||||||
|
List<Article> articles = articleManager.getArticlesOfMember(conf.getId(), user.getLogin());
|
||||||
|
if(articles != null){
|
||||||
|
nb = articles.size();
|
||||||
|
}
|
||||||
|
member.setNbArticles(nb);
|
||||||
|
|
||||||
|
//add the member to the return list
|
||||||
|
articleMembers.add(member);
|
||||||
|
}
|
||||||
|
|
||||||
|
return articleMembers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<PCMemberBean> getMembersWithoutTheArticle(int articleId ){
|
||||||
|
|
||||||
|
PCMemberBean member;
|
||||||
|
Conference conf = SessionService.getInstance().getCurrentConference();
|
||||||
|
|
||||||
|
//List de pcmemberbean qui sera retourn<72>
|
||||||
|
List<PCMemberBean> members = new ArrayList<PCMemberBean>();
|
||||||
|
|
||||||
|
//list of the member who have this article
|
||||||
|
List<User> articleMembersTmp = userManager.getPCMemberForArticle(articleId);
|
||||||
|
|
||||||
|
//list of all pcmembers of the conference
|
||||||
|
List<User> membersTmp = userManager.getUsers(conf.getId(),RoleType.PCMEMBER);
|
||||||
|
|
||||||
|
for (User user : membersTmp) {
|
||||||
|
member = new PCMemberBean();
|
||||||
|
member.setFirstName(user.getFirstName());
|
||||||
|
member.setLastName(user.getLastName());
|
||||||
|
member.setLogin(user.getLogin());
|
||||||
|
|
||||||
|
//recuperation des preferences
|
||||||
|
Preference pref = articleManager.getPreferenceForUserAndArticle(articleId, user.getLogin());
|
||||||
|
if (pref != null){
|
||||||
|
String prefType = pref.getPreferenceType().toString();
|
||||||
|
member.setPreference(prefType);
|
||||||
|
}else {
|
||||||
|
member.setPreference(Preference.PreferenceType.INDIFFERENT.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
//recuperation des specialit<69>es
|
||||||
|
List<String> spectialities = new ArrayList<String>();
|
||||||
|
List<Speciality> listSpe = userManager.getSpecialitiesFromUser(member.getLogin());
|
||||||
|
for (Speciality speciality : listSpe) {
|
||||||
|
spectialities.add(speciality.getName());
|
||||||
|
}
|
||||||
|
member.setSpecialities(spectialities);
|
||||||
|
|
||||||
|
//recuperatiojn du nombre d'article
|
||||||
|
int nb = 0;
|
||||||
|
List<Article> articles = articleManager.getArticlesOfMember(conf.getId(), user.getLogin());
|
||||||
|
if(articles != null){
|
||||||
|
nb = articles.size();
|
||||||
|
}
|
||||||
|
member.setNbArticles(nb);
|
||||||
|
|
||||||
|
//on place le memebre dans une des listes
|
||||||
|
if (!articleMembersTmp.contains(user) && member.getPreference()!= "CONFLICT" ){
|
||||||
|
members.add(member);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return members;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public List<User> addMembers(List<String> membersId,int articleId){
|
||||||
|
for (String memberId : membersId) {
|
||||||
|
articleManager.assignArticleToPCMember(articleId, memberId);
|
||||||
|
}
|
||||||
|
logger.debug("add members to article");
|
||||||
return userManager.getPCMemberForArticle(articleId);
|
return userManager.getPCMemberForArticle(articleId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<User> removeMember(String memberId,int articleId){
|
public List<User> removeMembers(List<String> membersId,int articleId){
|
||||||
articleManager.unassignArticleToPCMember(articleId, memberId);
|
for (String memberId : membersId) {
|
||||||
logger.debug("remove article");
|
articleManager.unassignArticleToPCMember(articleId, memberId);
|
||||||
|
}
|
||||||
|
logger.debug("remove members to article");
|
||||||
return userManager.getPCMemberForArticle(articleId);
|
return userManager.getPCMemberForArticle(articleId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String sayHello(String name){
|
|
||||||
return "hello"+ name;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package org.yacos.web.chairman.controller;
|
package org.yacos.web.chairman.controller;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
@@ -11,9 +12,13 @@ import org.springframework.web.servlet.ModelAndView;
|
|||||||
import org.springframework.web.servlet.mvc.Controller;
|
import org.springframework.web.servlet.mvc.Controller;
|
||||||
import org.yacos.core.article.Article;
|
import org.yacos.core.article.Article;
|
||||||
import org.yacos.core.article.IArticleManager;
|
import org.yacos.core.article.IArticleManager;
|
||||||
|
import org.yacos.core.article.Preference;
|
||||||
import org.yacos.core.conferences.Conference;
|
import org.yacos.core.conferences.Conference;
|
||||||
import org.yacos.core.conferences.IConferenceManager;
|
import org.yacos.core.conferences.IConferenceManager;
|
||||||
import org.yacos.core.users.IUserManager;
|
import org.yacos.core.users.IUserManager;
|
||||||
|
import org.yacos.core.users.Speciality;
|
||||||
|
import org.yacos.core.users.User;
|
||||||
|
import org.yacos.core.users.Role.RoleType;
|
||||||
import org.yacos.web.system.session.SessionService;
|
import org.yacos.web.system.session.SessionService;
|
||||||
|
|
||||||
public class DispatchArticleListController implements Controller{
|
public class DispatchArticleListController implements Controller{
|
||||||
@@ -53,6 +58,127 @@ public class DispatchArticleListController implements Controller{
|
|||||||
return new ModelAndView("dispatchArticleList","articles", listArticles);
|
return new ModelAndView("dispatchArticleList","articles", listArticles);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<PCMemberBean> getMembersWithTheArticle(int articleId ){
|
||||||
|
|
||||||
|
PCMemberBean member;
|
||||||
|
Conference conf = SessionService.getInstance().getCurrentConference();
|
||||||
|
|
||||||
|
//List de pcmemberbean qui sera retourn<72>
|
||||||
|
List<PCMemberBean> articleMembers = new ArrayList<PCMemberBean>();
|
||||||
|
|
||||||
|
//list of the member who have this article
|
||||||
|
List<User> articleMembersTmp = userManager.getPCMemberForArticle(articleId);
|
||||||
|
|
||||||
|
for (User user : articleMembersTmp) {
|
||||||
|
member = new PCMemberBean();
|
||||||
|
member.setFirstName(user.getFirstName());
|
||||||
|
member.setLastName(user.getLastName());
|
||||||
|
member.setLogin(user.getLogin());
|
||||||
|
|
||||||
|
//recuperation des preferences
|
||||||
|
Preference pref = articleManager.getPreferenceForUserAndArticle(articleId, user.getLogin());
|
||||||
|
if (pref != null){
|
||||||
|
String prefType = pref.getPreferenceType().toString();
|
||||||
|
member.setPreference(prefType);
|
||||||
|
}else {
|
||||||
|
member.setPreference(Preference.PreferenceType.INDIFFERENT.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
//recuperation des specialit<69>es
|
||||||
|
List<String> spectialities = new ArrayList<String>();
|
||||||
|
List<Speciality> listSpe = userManager.getSpecialitiesFromUser(member.getLogin());
|
||||||
|
for (Speciality speciality : listSpe) {
|
||||||
|
spectialities.add(speciality.getName());
|
||||||
|
}
|
||||||
|
member.setSpecialities(spectialities);
|
||||||
|
|
||||||
|
//recuperatiojn du nombre d'article
|
||||||
|
int nb = 0;
|
||||||
|
List<Article> articles = articleManager.getArticlesOfMember(conf.getId(), user.getLogin());
|
||||||
|
if(articles != null){
|
||||||
|
nb = articles.size();
|
||||||
|
}
|
||||||
|
member.setNbArticles(nb);
|
||||||
|
|
||||||
|
//add the member to the return list
|
||||||
|
articleMembers.add(member);
|
||||||
|
}
|
||||||
|
|
||||||
|
return articleMembers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<PCMemberBean> getMembersWithoutTheArticle(int articleId ){
|
||||||
|
|
||||||
|
PCMemberBean member;
|
||||||
|
Conference conf = SessionService.getInstance().getCurrentConference();
|
||||||
|
|
||||||
|
//List de pcmemberbean qui sera retourn<72>
|
||||||
|
List<PCMemberBean> members = new ArrayList<PCMemberBean>();
|
||||||
|
|
||||||
|
//list of the member who have this article
|
||||||
|
List<User> articleMembersTmp = userManager.getPCMemberForArticle(articleId);
|
||||||
|
|
||||||
|
//list of all pcmembers of the conference
|
||||||
|
List<User> membersTmp = userManager.getUsers(conf.getId(),RoleType.PCMEMBER);
|
||||||
|
|
||||||
|
for (User user : membersTmp) {
|
||||||
|
member = new PCMemberBean();
|
||||||
|
member.setFirstName(user.getFirstName());
|
||||||
|
member.setLastName(user.getLastName());
|
||||||
|
member.setLogin(user.getLogin());
|
||||||
|
|
||||||
|
//recuperation des preferences
|
||||||
|
Preference pref = articleManager.getPreferenceForUserAndArticle(articleId, user.getLogin());
|
||||||
|
if (pref != null){
|
||||||
|
String prefType = pref.getPreferenceType().toString();
|
||||||
|
member.setPreference(prefType);
|
||||||
|
}else {
|
||||||
|
member.setPreference(Preference.PreferenceType.INDIFFERENT.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
//recuperation des specialit<69>es
|
||||||
|
List<String> spectialities = new ArrayList<String>();
|
||||||
|
List<Speciality> listSpe = userManager.getSpecialitiesFromUser(member.getLogin());
|
||||||
|
for (Speciality speciality : listSpe) {
|
||||||
|
spectialities.add(speciality.getName());
|
||||||
|
}
|
||||||
|
member.setSpecialities(spectialities);
|
||||||
|
|
||||||
|
//recuperatiojn du nombre d'article
|
||||||
|
int nb = 0;
|
||||||
|
List<Article> articles = articleManager.getArticlesOfMember(conf.getId(), user.getLogin());
|
||||||
|
if(articles != null){
|
||||||
|
nb = articles.size();
|
||||||
|
}
|
||||||
|
member.setNbArticles(nb);
|
||||||
|
|
||||||
|
//on place le memebre dans une des listes
|
||||||
|
if (!articleMembersTmp.contains(user) && member.getPreference()!= "CONFLICT" ){
|
||||||
|
members.add(member);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
logger.debug("return"+ members.size() +"members");
|
||||||
|
return members;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public List<User> addMembers(List<String> membersId,int articleId){
|
||||||
|
for (String memberId : membersId) {
|
||||||
|
articleManager.assignArticleToPCMember(articleId, memberId);
|
||||||
|
}
|
||||||
|
logger.debug("add members to article");
|
||||||
|
return userManager.getPCMemberForArticle(articleId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<User> removeMembers(List<String> membersId,int articleId){
|
||||||
|
for (String memberId : membersId) {
|
||||||
|
articleManager.unassignArticleToPCMember(articleId, memberId);
|
||||||
|
}
|
||||||
|
logger.debug("remove members to article");
|
||||||
|
return userManager.getPCMemberForArticle(articleId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String sayHello(String name){
|
||||||
|
return "hello"+name;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,18 @@
|
|||||||
package org.yacos.web.chairman.controller;
|
package org.yacos.web.chairman.controller;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
public class PCMemberBean {
|
public class PCMemberBean {
|
||||||
private String login;
|
private String login;
|
||||||
private String firstName;
|
private String firstName;
|
||||||
private String lastName;
|
private String lastName;
|
||||||
|
private List<String>Specialities;
|
||||||
private String Preference;
|
private String Preference;
|
||||||
private int nbArticles;
|
private int nbArticles;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public PCMemberBean() {
|
public PCMemberBean() {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
@@ -30,7 +35,14 @@ public class PCMemberBean {
|
|||||||
public void setLastName(String lastName) {
|
public void setLastName(String lastName) {
|
||||||
this.lastName = lastName;
|
this.lastName = lastName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<String> getSpecialities() {
|
||||||
|
return Specialities;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSpecialities(List<String> specialities) {
|
||||||
|
Specialities = specialities;
|
||||||
|
}
|
||||||
public String getPreference() {
|
public String getPreference() {
|
||||||
return Preference;
|
return Preference;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user