Ajout du service d'envoi d'email

Mise en place des invitations dans creer conf
Mise en place de proprietés de config pour Servlet-config.xml
Ajout des listes dynamiques dans le CSS
This commit is contained in:
2008-02-11 22:47:22 +00:00
parent 65d3e8cbcf
commit 5799259547
14 changed files with 397 additions and 164 deletions

View File

@@ -0,0 +1,66 @@
var InvitationsManager = Class.create({
initialize: function(buttonAdd,buttonRemove,inputField){
this.buttonAdd = buttonAdd;
this.buttonRemove = buttonRemove;
this.inputField = inputField;
$(buttonAdd).observe("click",this.addRemote.bind(this));
$(buttonRemove).observe("click",this.removeRemote.bind(this));
$(inputField).observe("keypress", this.keyPressHandler.bindAsEventListener(this));
},
select: function(event){
var item = event.element();
if(item.hasClassName('selected')){
item.removeClassName('selected');
} else {
item.addClassName('selected');
}
},
removeRemote: function() {
var itemsToRemove = $('invitationList').select('div.selected');
var emailList = itemsToRemove.pluck('id');
AddCriteriaJS.removeInvitations(emailList,this.remove.bind(this));
},
remove: function() {
var itemsToRemove = $('invitationList').select('div.selected');
itemsToRemove.invoke('remove');
},
keyPressHandler: function(event){
switch(event.keyCode){
case Event.KEY_RETURN:
this.addRemote();
event.stop();
return false;
}
},
addRemote: function(){
var value = $(this.inputField).value;
AddCriteriaJS.addInvitation(value,function(success){
if(success){
this.add(value);
}
}.bind(this));
},
add: function(email) {
var elem = new Element('div',
{ 'class':'dynamicListItem',
'style':'display:none;height:0px;width:0px;',
'id':email}).update(email);
$('invitationList').insert(elem);
elem.observe('click', this.select.bindAsEventListener());
elem.appear();
},
refreshList: function(){
AddCriteriaJS.getInvitations(function(emailList){
this.removeAll();
emailList.each(this.add.bind(this));
});
},
removeAll: function(){
var itemsToRemove = $('invitationList').select('div.dynamicListItem');
itemsToRemove.invoke('remove');
}
});
Event.observe(window,'load', function(){
new InvitationsManager('inviteButton','removeInvitationButton','emailAddress')});

View File

@@ -0,0 +1,54 @@
var SecondaryAuthorManager = Class.create({
lastRef: 0,
initialize: function(buttonAdd,buttonRemove,inputField){
this.buttonAdd = buttonAdd;
this.buttonRemove = buttonRemove;
this.inputField = inputField;
$(buttonAdd).observe("click",this.AddSecondaryAuthor.bind(this));
$(buttonRemove).observe("click",this.RemoveSecondaryAuthor.bind(this));
$(inputField).observe("keypress", this.KeyPressHandler.bindAsEventListener(this));
},
SelectSecondaryAuthor: function(event){
var item = event.element();
if(item.hasClassName('selected')){
item.removeClassName('selected');
} else {
item.addClassName('selected');
}
},
RemoveSecondaryAuthor: function() {
var itemsToRemove = $('secondaryAuthorList').select('div.selected');
// Fade and remove
itemsToRemove.invoke('fade',{
afterFinish: function(obj){
obj.element.remove();
}
});
},
KeyPressHandler: function(event){
switch(event.keyCode){
case Event.KEY_RETURN:
this.AddSecondaryAuthor();
event.stop();
return false;
}
},
AddSecondaryAuthor: function() {
var ref = this.lastRef++;
var elemName = "liste["+ref+"]";
var value = $('newSecondaryAuthorInput').value;
var hidden = new Element('input',{'id':elemName,'name':elemName,'type':'hidden','value':value});
var elem = new Element('div',
{ 'class':'dynamicListItem',
'style':'display:none;height:0px;width:0px;',
'id':elemName}).update(value).insert(hidden);
elem.observe('click', this.SelectSecondaryAuthor.bindAsEventListener());
$('secondaryAuthorList').insert(elem);
$(this.inputField).clear();
elem.appear();
}
});
Event.observe(window,'load', function(){
new SecondaryAuthorManager('addSecondaryButton','removeSecondaryButton','newSecondaryAuthorInput')});