195 lines
5.8 KiB
Plaintext
195 lines
5.8 KiB
Plaintext
<%@ 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);
|
||
$('isDelegated'+articleId).value="false"
|
||
}
|
||
|
||
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(){
|
||
if($('isDelegated'+articleId).value=="false"){
|
||
$('isDelegated'+articleId).value="true"
|
||
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} ${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>
|
||
<input type="hidden" id="isDelegated${article.id}" value="false"/>
|
||
</td></tr>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</c:forEach>
|
||
|
||
</body>
|
||
|
||
</html>
|