ldapsaisie/trunk/includes/js/LSrelation.js
Benjamin Renard d75a8823c2 - LSview : ajout de input hidden pour contenir les informations du type et du
DN de l'objet affiché.
- LSmail : Ajout d'une fonctionalité d'envoie de mail depuis l'interface.
  -> Modification de LSformElement_mail pour utiliser cette fonctionalité
  -> Agrémentation du fichier index_ajax.php
  -> Ajout d'un LSaddons :: mail
- LSsession :
  -> Ajout d'une méthode getEmailSender()
  -> Utilisation de la méthode getEmailSender() pour la partie de récupération
     de mot de passe
  -> Revue des méthodes loadLSaddon() et loadLSaddons()
- LSconfirmBox :
  -> Ajout de binding onClose() et onCancel()
- LSsmoothbox :
  -> Déport de la creation de la structure dans la méthode build()
  -> Suppression du principe de refreshElement au profit de binding sur les
     évenements onClose, onValid et onCancel
      -> Ajout des méthodes addEvent() et fireEvent()
      -> Suppression de la méthode setRefreshElement()
  -> Ajout de la méthode asNew() pour remettre l'objet dans son état d'origine
     pour l'utilisation simultané de l'objet par plusieurs autres
  -> Vérification lors du clique sur le closeBtn qu'une précédente confirmBox
     n'est pas déjà ouvert
  -> La méthode close() ne fait plus que fermer la LSsmoothbox et les méthodes
     valid() et cancel() gère les cas de fermeture et lance la méthode close()
  -> Ajout de la méthode openHTML() pour l'ouverture de la LSsmoothbox avec un
     code HTML passé en paramètre
  -> Ajout de la méthode setOption()
- LSrelation & LSformElement_select_object :
  -> Utilisation du principe d'évenement de la LSsmoothbox plutôt que du
     refreshElement
  -> Utilisation de la méthode asNew() pour eviter tout problème de concurence
- LSdefault : Ajout de la méthode displayInfos()
2008-09-25 15:15:33 +00:00

129 lines
4.3 KiB
JavaScript

var LSrelation = new Class({
initialize: function(){
this.edit = 0;
this.deleteBtn = [];
this.deleteBtnId = 0;
this.refreshRelation=0;
this._confirmDelete=1;
$$('a.LSrelation_modify').each(function(el) {
this.edit=1;
el.addEvent('click',this.onLSrelationModifyBtnClick.bindWithEvent(this,el));
}, this);
if (this.edit) {
this.initializeBtn();
}
},
initializeBtn: function() {
$$('img.LSrelation-btn').each(function(el) {
el.destroy();
}, this);
this.deleteBtnId = 0;
$$('li.LSrelation').each(function(li) {
this.deleteBtn[this.deleteBtnId] = new Element('img');
this.deleteBtn[this.deleteBtnId].src = 'templates/images/delete.png';
this.deleteBtn[this.deleteBtnId].setStyle('cursor','pointer');
this.deleteBtn[this.deleteBtnId].addClass('LSrelation-btn');
this.deleteBtn[this.deleteBtnId].addEvent('click',this.onDeleteBtnClick.bind(this,this.deleteBtn[this.deleteBtnId]));
this.deleteBtn[this.deleteBtnId].injectInside(li);
li.id=this.deleteBtnId;
this.deleteBtnId++;
}, this);
},
onDeleteBtnClick: function(img) {
if (this._confirmDelete) {
var li = img.getParent();
var span = li.getFirst().getFirst('span');
this.confirmBox = new LSconfirmBox({
text: 'Etês-vous sur de vouloir supprimer "'+span.innerHTML+'" ?',
startElement: img,
onConfirm: this.deleteFromImg.bind(this,img)
});
}
else {
this.deleteFromImg(img);
}
},
deleteFromImg: function(img) {
var li = img.getParent();
var span = li.getFirst().getFirst('span');
var ul = li.getParent();
img.destroy();
LSdebug(ul.id);
var getId = /LSrelation_ul_([0-9]*)/
var id = getId.exec(ul.id)[1];
var data = {
template: 'LSrelation',
action: 'deleteByDn',
id: id,
dn: span.id
};
data.imgload=varLSdefault.loadingImgDisplay(li.id,'inside');
new Request({url: 'index_ajax.php', data: data, onSuccess: this.deleteFromImgComplete.bind(this)}).send();
},
deleteFromImgComplete: function(responseText, responseXML) {
var data = JSON.decode(responseText);
if ( varLSdefault.checkAjaxReturn(data) ) {
try {
$(data.dn).getParent().getParent().destroy();
}
catch(e) {
LSdebug('Erreur durant la suppression du li du DN : '+data.dn);
}
}
},
onLSrelationModifyBtnClick: function(event,a) {
new Event(event).stop();
var data = {
template: 'LSrelation',
action: 'refreshSession',
id: a.id,
href: a.href
};
LSdebug(data);
this.refreshRelation=a.id;
data.imgload=varLSdefault.loadingImgDisplay('LSrelation_title_'+a.id,'inside');
new Request({url: 'index_ajax.php', data: data, onSuccess: this.onLSrelationModifyBtnClickComplete.bind(this)}).send();
},
onLSrelationModifyBtnClickComplete: function(responseText, responseXML) {
var data = JSON.decode(responseText);
if ( varLSdefault.checkAjaxReturn(data) ) {
varLSsmoothbox.asNew();
varLSsmoothbox.addEvent('valid',this.onLSsmoothboxValid.bind(this));
varLSsmoothbox.openURL(data.href,{startElement: $(data.id), width: 615});
}
},
onLSsmoothboxValid: function() {
var data = {
template: 'LSrelation',
action: 'refreshList',
id: this.refreshRelation
};
LSdebug(data);
data.imgload=varLSdefault.loadingImgDisplay('LSrelation_title_'+this.refreshRelation,'inside');
new Request({url: 'index_ajax.php', data: data, onSuccess: this.onLSsmoothboxValidComplete.bind(this)}).send();
},
onLSsmoothboxValidComplete: function(responseText, responseXML) {
var data = JSON.decode(responseText);
if ( varLSdefault.checkAjaxReturn(data) ) {
$('LSrelation_ul_'+this.refreshRelation).set('html',data.html);
this.initializeBtn();
}
}
});
window.addEvent(window.ie ? 'load' : 'domready', function() {
varLSrelation = new LSrelation();
});