mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-11-23 10:29:07 +01:00
d75a8823c2
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()
127 lines
3.5 KiB
JavaScript
127 lines
3.5 KiB
JavaScript
var LSmail = new Class({
|
|
initialize: function(mails,msg){
|
|
this.href = "LSmail.php";
|
|
this.setMails(mails);
|
|
this.setMsg(msg);
|
|
this.object = {};
|
|
this.opened = 0;
|
|
this.listeners = {
|
|
close: new Array(),
|
|
valid: new Array()
|
|
};
|
|
},
|
|
|
|
setMails: function(mails) {
|
|
if ($type(mails)) {
|
|
this.mails = mails;
|
|
}
|
|
else {
|
|
this.mails = new Array();
|
|
}
|
|
},
|
|
|
|
setMsg: function(msg) {
|
|
if ($type(msg)) {
|
|
this.msg = msg;
|
|
}
|
|
else {
|
|
this.msg = "";
|
|
}
|
|
},
|
|
|
|
setObject: function(type,dn) {
|
|
this.object = {
|
|
type: type,
|
|
dn: dn
|
|
};
|
|
},
|
|
|
|
open: function(startElement) {
|
|
if (this.opened==0) {
|
|
var data = {
|
|
template: 'LSmail',
|
|
action: 'display',
|
|
object: this.object,
|
|
mails: this.mails,
|
|
msg: this.msg
|
|
};
|
|
|
|
if ($type(startElement)) {
|
|
this.startElement = startElement;
|
|
data.imgload=varLSdefault.loadingImgDisplay(startElement,'inside');
|
|
}
|
|
new Request({url: 'index_ajax.php', data: data, onSuccess: this.onOpenGetHtmlComplete.bind(this)}).send();
|
|
}
|
|
},
|
|
|
|
onOpenGetHtmlComplete: function(responseText, responseXML) {
|
|
var data = JSON.decode(responseText);
|
|
if ( varLSdefault.checkAjaxReturn(data) ) {
|
|
//varLSsmoothbox.setRefreshElement(this);
|
|
varLSsmoothbox.asNew();
|
|
varLSsmoothbox.addEvent('valid',this.onLSsmoothboxValid.bind(this));
|
|
varLSsmoothbox.addEvent('close',this.onLSsmoothboxClose.bind(this));
|
|
varLSsmoothbox.openHTML(data.html,{startElement: this.startElement, width: 580, height: 150});
|
|
}
|
|
},
|
|
|
|
onLSsmoothboxValid: function(LSsmoothbox) {
|
|
if($type(LSsmoothbox.frame)) {
|
|
this.sendInfos = {
|
|
mail: LSsmoothbox.frame.getElementById('LSmail_mail').value,
|
|
subject: LSsmoothbox.frame.getElementById('LSmail_subject').value,
|
|
msg: LSsmoothbox.frame.getElementById('LSmail_msg').value
|
|
};
|
|
}
|
|
this.fireEvent.bind(this)('valid');
|
|
},
|
|
|
|
onLSsmoothboxClose: function(LSsmoothbox) {
|
|
this.opened=0;
|
|
this.fireEvent.bind(this)('close');
|
|
},
|
|
|
|
send: function() {
|
|
if ($type(this.sendInfos)) {
|
|
var data = {
|
|
template: 'LSmail',
|
|
action: 'send',
|
|
infos: this.sendInfos
|
|
};
|
|
LSdebug(data);
|
|
data.imgload=varLSdefault.loadingImgDisplay(this.startElement,'inside');
|
|
new Request({url: 'index_ajax.php', data: data, onSuccess: this.onSendComplete.bind(this)}).send();
|
|
}
|
|
},
|
|
|
|
onSendComplete: function(responseText, responseXML) {
|
|
var data = JSON.decode(responseText);
|
|
if ( varLSdefault.checkAjaxReturn(data) ) {
|
|
if ($type(data.msgok)) {
|
|
varLSdefault.displayInfos(data.msgok);
|
|
}
|
|
}
|
|
},
|
|
|
|
addEvent: function(event,fnct) {
|
|
if ($type(this.listeners[event])) {
|
|
if ($type(fnct)=="function") {
|
|
this.listeners[event].include(fnct);
|
|
}
|
|
}
|
|
},
|
|
|
|
fireEvent: function(event) {
|
|
LSdebug('LSmail :: fireEvent('+event+')');
|
|
if ($type(this.listeners[event])) {
|
|
this.listeners[event].each(function(fnct) {
|
|
try {
|
|
fnct(this);
|
|
}
|
|
catch(e) {
|
|
LSdebug('LSmail :: '+event+'() -> rater');
|
|
}
|
|
},this);
|
|
}
|
|
}
|
|
});
|