Files
yacos/YACOSWeb/WebContent/WEB-INF/jsp/delegateArticle.jsp
2008-02-25 23:22:25 +00:00

191 lines
5.6 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">
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 = $('refereesArticleList'+articleId).select('div.selected');
var refereesId = itemsToRemove.pluck('id');
DelegateArticlesJS.removeReferees(refereesId, articleId, remove);
}
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');
DelegateArticlesJS.addReferees(refereesId, articleId, add());
}
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 width="20%"><img src="./images/cc-wp-24x24.png"></td>
<td width="60%"><a href="<c:url value='detailArticle.htm?id=${article.id}'/>"><b>${article.title}</b></a> by ${article.mainAuthor.firstName}&nbsp;${article.mainAuthor.lastName}
</td>
<td width="20%"><img src="./images/1uparrow.png"></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>
<img id="addButton" src="./images/agt_forward.png" onclick="addRemote()"><br />
<img id="removeButton" src="./images/agt_back.png" 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>