Files
yacos/YACOSWeb/WebContent/WEB-INF/jsp/delegateArticle.jsp
Maxime Dagnicourt c8be67d69d
2008-02-24 21:20:53 +00:00

215 lines
6.2 KiB
Plaintext
Raw Blame History

<%@ include file="/WEB-INF/decorators/include.jsp"%>
<html>
<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/DelegateArticlesJS.js'></script>
<script type="text/javascript">
//<![CDATA[
var selectedArticleId;
var articleId;
var pattern;
function showDetail(artId){
articleId = artId;
var divTitle = 'title'+artId;
var divArticle = 'article'+artId;
if (!$(divTitle).hasClassName('selected')){
if(selectedArticleId != null){
removeAll(selectedArticleId);
$('title'+selectedArticleId).removeClassName('selected');
new Effect.SlideUp('dispatcher'+selectedArticleId);
}
selectedArticleId = articleId;
$(divTitle).addClassName('selected');
initDispatcher(divArticle);
}else{
removeAll(articleId);
new Effect.SlideUp('dispatcher'+articleId);
$(divTitle).removeClassName('selected');
selectedArticleId = null;
}
}
function initDispatcher(elementId){
//listes
DelegateArticlesJS.getRefereesWithoutTheArticle(articleId,fillListReferee);
DelegateArticlesJS.getRefereesWithTheArticle(articleId,fillListArticleReferee);
new Effect.SlideDown('dispatcher'+articleId);
}
function retour(data){
alert(data);
}
function fillListArticleReferee(data){
for (var i = 0; i < data.length; i++) {
var member = data[i];
var value= member.firstName+" "+member.lastName;
var elem = new Element('div',
{'class':'dynamicListItem','id':member.login,
"style":"border:1px"}).update(value);
$('refereesArticleList'+articleId).insert(elem);
elem.observe('click', function(event){
select(Event.element(event));
});
}
}
function fillListReferee(data){
for (var i = 0; i < data.length; i++) {
var member = data[i];
var value= member.firstName+" "+member.lastName;
var elem = new Element('div',
{'class':'dynamicListItem','id':member.login,
"style":"border:1px"}).update(value);
$('refereesList'+articleId).insert(elem);
elem.observe('click', function(event){
select(Event.element(event));
});
}
}
function select(elem){
var item = elem;
if(item.hasClassName('selected')){
item.removeClassName('selected');
} else {
item.addClassName('selected');
}
}
function removeRemote() {
var itemsToRemove = $('refereesList'+articleId).select('div.selected');
<<<<<<< .mine
var refereesId = itemsToRemove.pluck('id');
=======
var refereeId = itemsToRemove.pluck('id');
>>>>>>> .r446
//var articleId = $('articleId').value;
<<<<<<< .mine
DelegateArticlesJS.removeReferees(refereesId, articleId, remove);
=======
DelegateArticlesJS.removeReferee(refereeId, articleId, remove);
>>>>>>> .r446
}
function remove() {
var itemsToRemove = $('refereesArticleList'+articleId).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');
$('refereesList'+articleId).insert(item);
}
}
}
function addRemote(){
var itemsToAdd = $('refereesList'+articleId).select('div.selected');
var refereesId = itemsToAdd.pluck('id');
//var articleId = $('articleId').value;
<<<<<<< .mine
DelegateArticlesJS.addReferees(refereesId, articleId, add());
=======
DelegateArticlesJS.addReferee(refereeId, articleId, add());
>>>>>>> .r446
}
function add() {
var itemsToAdd = $('refereesList'+articleId).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');
$('refereesArticleList'+articleId).insert(item);
}
}
}
function removeAll(artId){
var itemsToRemove = $('refereesArticleList'+artId).select('div.dynamicListItem');
itemsToRemove.invoke('remove');
itemsToRemove = $('refereesList'+artId).select('div.dynamicListItem');
itemsToRemove.invoke('remove');
}
//]]>
</script>
</head>
<body>
<h4 class="title"><fmt:message key="delegateArticles.choose" /></h4>
<p class="formHelp">
<fmt:message key="delegateArticles.help" />
</p>
<c:forEach var="article" items="${articles}">
<div style="border:1px solid orange;">
<div id="article${article.id}">
<div id="title${article.id}" onclick="showDetail(${article.id})">
<table style="width:100%;text-align:center;">
<tr>
<td><img src="./images/cc-wp-64x64.png"></td>
<td>title : ${article.title}
<br/>theme: ${article.topic}
<br/>main author: ${article.mainAuthor.firstName}${article.mainAuthor.lastName}
<c:if test="${!empty article.secondaryAuthors}">
<br/>secondaries authors:
<c:forEach var="author" items="${article.secondaryAuthors}">
<br/>${author}
</c:forEach>
</c:if>
</td>
<td><a href="<c:url value='detailArticle.htm?id=${article.id}'/>">article's detail</a></td>
</tr>
</table>
</div>
<div id='dispatcher${article.id}' style="display:none;">
<table style="width:100%;">
<tr><td>
<h1><fmt:message key="delegateArticles.list1"/></h1>
<div id="refereesList${article.id}" style="border:1px solid black; max-height:150px;overflow:auto;">
</div>
</td><td>
<input type="button" id="addButton" value="add>>>" onclick="addRemote()"/><br/>
<input type="button" id="removeButton" value="<<<remove" onclick="removeRemote()"/>
</td><td>
<h1><fmt:message key="delegateArticles.list2"/></h1>
<div id="refereesArticleList${article.id}" style="border:1px solid black; max-height:150px;overflow:auto;">
</div>
</td></tr>
</table>
</div>
</div>
</div>
</c:forEach>
</body>
</html>