ldapsaisie/trunk/includes/js/LSdefault.js

314 lines
8.4 KiB
JavaScript
Raw Normal View History

var LSdefault = new Class({
initialize: function(){
// LSdebug
this.LSdebug = $('LSdebug');
- Deplacement du require de functions.php dans le fichier de classe de LSsession pour ne pas obliger sa recopie. - LSlog : Début d'ecriture d'une possibilité de fichiers de logs - Ajout d'une fonction de test validPas() retournant false - LSformElement : Ajout d'un type de LSformElement gérant les attributs maildir. Il fonctionne en frontend du LSaddon Maildir. - LSsession : -> Ajout de la méthode statique includeFile() utilisé à la place de la fonction php include_once() -> displayAjaxReturn() : Gestion du LSredirect -> Ajout d'un require_once() sur functions.php - LSaddon::FTP : Ajout de la fonction renameDirByFTP() - LSaddon::Maildir : -> Ajout de la fonction renameMaildirByFTP() -> Modification des fonctions createMaildirByFTP() et removeMaildirByFTP() pour pour pouvoir leur passé en deuxième paramètre le chemin de la maildir à utlisé - LSdefault : -> LSdebugHidde() devient hideLSdebug() -> Ajout de la méthode hideLSerror() accroché sur l'événement double-clique de la LSerrorsBox -> displayErrorBox() : plus de timeout d'affichage des erreurs -> checkAjaxReturn() : Gestion des LSredirect - LSform : -> plus de LSformRedirect : utilisation de LSdefault::LSredirect - modify.php et create.php : Utilisation des LSdefault::LSredirect et affichages des erreurs non-bloquant sur la page suivante. - LSerror : -> Utilisation d'une variable de session pour stocké les erreurs -> Ajout de la méthode resetError() exécutée à chaque exécution de LSerror::getErrors() - LSldapObject : -> Correction de la gestion des binding -> Event before_modify : bloquant en cas d'échec -> Event after_modify : non-bloquant en cas d'échec
2009-01-21 18:08:09 +01:00
this.LSdebug.addEvent('dblclick',this.hideLSdebug.bind(this));
this.LSdebugInfos = $('LSdebug_infos');
this.LSdebug.setOpacity(0);
this.LSdebug_open = 0;
this.LSdebugHidden = $('LSdebug_hidden');
- Deplacement du require de functions.php dans le fichier de classe de LSsession pour ne pas obliger sa recopie. - LSlog : Début d'ecriture d'une possibilité de fichiers de logs - Ajout d'une fonction de test validPas() retournant false - LSformElement : Ajout d'un type de LSformElement gérant les attributs maildir. Il fonctionne en frontend du LSaddon Maildir. - LSsession : -> Ajout de la méthode statique includeFile() utilisé à la place de la fonction php include_once() -> displayAjaxReturn() : Gestion du LSredirect -> Ajout d'un require_once() sur functions.php - LSaddon::FTP : Ajout de la fonction renameDirByFTP() - LSaddon::Maildir : -> Ajout de la fonction renameMaildirByFTP() -> Modification des fonctions createMaildirByFTP() et removeMaildirByFTP() pour pour pouvoir leur passé en deuxième paramètre le chemin de la maildir à utlisé - LSdefault : -> LSdebugHidde() devient hideLSdebug() -> Ajout de la méthode hideLSerror() accroché sur l'événement double-clique de la LSerrorsBox -> displayErrorBox() : plus de timeout d'affichage des erreurs -> checkAjaxReturn() : Gestion des LSredirect - LSform : -> plus de LSformRedirect : utilisation de LSdefault::LSredirect - modify.php et create.php : Utilisation des LSdefault::LSredirect et affichages des erreurs non-bloquant sur la page suivante. - LSerror : -> Utilisation d'une variable de session pour stocké les erreurs -> Ajout de la méthode resetError() exécutée à chaque exécution de LSerror::getErrors() - LSldapObject : -> Correction de la gestion des binding -> Event before_modify : bloquant en cas d'échec -> Event after_modify : non-bloquant en cas d'échec
2009-01-21 18:08:09 +01:00
this.LSdebugHidden.addEvent('click',this.hideLSdebug.bind(this));
// LSerror
this.LSerror = $('LSerror');
this.LSerror.setOpacity(0);
this.LSerror_open = 0;
- Deplacement du require de functions.php dans le fichier de classe de LSsession pour ne pas obliger sa recopie. - LSlog : Début d'ecriture d'une possibilité de fichiers de logs - Ajout d'une fonction de test validPas() retournant false - LSformElement : Ajout d'un type de LSformElement gérant les attributs maildir. Il fonctionne en frontend du LSaddon Maildir. - LSsession : -> Ajout de la méthode statique includeFile() utilisé à la place de la fonction php include_once() -> displayAjaxReturn() : Gestion du LSredirect -> Ajout d'un require_once() sur functions.php - LSaddon::FTP : Ajout de la fonction renameDirByFTP() - LSaddon::Maildir : -> Ajout de la fonction renameMaildirByFTP() -> Modification des fonctions createMaildirByFTP() et removeMaildirByFTP() pour pour pouvoir leur passé en deuxième paramètre le chemin de la maildir à utlisé - LSdefault : -> LSdebugHidde() devient hideLSdebug() -> Ajout de la méthode hideLSerror() accroché sur l'événement double-clique de la LSerrorsBox -> displayErrorBox() : plus de timeout d'affichage des erreurs -> checkAjaxReturn() : Gestion des LSredirect - LSform : -> plus de LSformRedirect : utilisation de LSdefault::LSredirect - modify.php et create.php : Utilisation des LSdefault::LSredirect et affichages des erreurs non-bloquant sur la page suivante. - LSerror : -> Utilisation d'une variable de session pour stocké les erreurs -> Ajout de la méthode resetError() exécutée à chaque exécution de LSerror::getErrors() - LSldapObject : -> Correction de la gestion des binding -> Event before_modify : bloquant en cas d'échec -> Event after_modify : non-bloquant en cas d'échec
2009-01-21 18:08:09 +01:00
this.LSerror.addEvent('dblclick',this.hideLSerror.bind(this));
// LSinfos
this.LSinfos = $('LSinfos');
// FX
this.fx = {
LSdebug: new Fx.Tween(this.LSdebug,{property: 'opacity',duration:600, fps:30}),
LSerror: new Fx.Tween(this.LSerror,{property: 'opacity',duration:500, fps:30}),
LSinfos: new Fx.Tween(this.LSinfos,{property: 'opacity',duration:500, fps:30})
};
// LSjsConfig
- config.inc.php : Ajout d'une constante LS_CSS_DIR - Ajout d'un LSformElement Date : -> includes/class/class.LSattr_ldap_date.php -> includes/class/class.LSattr_html_date.php -> includes/class/class.LSformElement_date.php -> includes/class/class.LSformRule_date.php -> includes/libs/jscalendar -> includes/js/LSformElement_date.js -> includes/js/LSformElement_date_field.js -> templates/images/calendar.png - LSformElement : Ajout d'une méthode exportValues() utilisée par LSform::exportValues() - LSform : -> Utlisation de LSformElement::exportValues() pour exporter les données du formulaire -> Méthode setValuesFromPostData() est désormais invoqué à chaque invocation de la méthode validate() - LSformElement_select_object : Ajout d'une méthode exportValues() pour coller au nouveau mode d'exportation des données de l'annuaire - LSldapObjet : Correction d'un bug potentiel (foreach sur une variable à false) dans la méthode updateData() - LSsession : -> Méthode addCssFile() & addJSscript() : ajout d'un paramètre pour la possibilité d'inclusion de fichier externe (hors des dossiers par défaut ex: les libs) -> Utilisation de la Constante LS_CSS_DIR au lieu d'une chemin en dure -> Paramètrage JS depuis Php : -> Méthode addJSconfigParam() : ajouter un paramètre de config. JS -> Méthode displayTemplate() adaptée pour -> top.tpl : adapté pour afficher une div contenant les paramètres JSONisés -> LSdefault.css : adapté pour ne pas afficher la div contenant les params. -> LSdefault.js : récupère les informations et Initialise une variable javascript LSjsConfig - LSconfirmBox : Correction d'un debug : "delete this;"
2008-07-18 16:02:46 +02:00
this.LSjsConfigEl = $('LSjsConfig');
if ($type(this.LSjsConfigEl)) {
this.LSjsConfig = JSON.decode(this.LSjsConfigEl.innerHTML);
}
else {
this.LSjsConfig = [];
}
this.loading_img=[];
this.loading_img_id=-1;
// LSsession_topDn
this.LSsession_topDn = $('LSsession_topDn');
if (this.LSsession_topDn) {
this.LSsession_topDn.addEvent('change',this.onLSsession_topDnChange.bind(this));
}
// Display Infos
if (this.LSdebugInfos.innerHTML != '') {
this.displayDebugBox();
}
if (this.LSerror.innerHTML != '') {
this.displayErrorBox();
}
if (this.LSinfos.innerHTML != '') {
this.displayInfosBox();
}
// :)
var getMoo = /moo$/;
if (getMoo.exec(window.location)) {
this.moo();
}
document.addEvent('keyup',this.onWantMoo.bindWithEvent(this));
this.LStips = new Tips('.LStips');
- LSmail : Création d'une classe PHP gérant les dépendances d'affichage et les requêtes Ajax. - LSrelation : - Création d'une classe PHP gérant les dépendances d'affichage et les requêtes Ajax. - Modification du JS pour faire appels à ces méthodes - La méthode displayInLSview() remplace le bloc du fichier view.php pour l'affichage des relations d'un objet. - Internationalisation. - LSselect : Création d'une classe PHP gérant les dépendances d'affichage et les requêtes Ajax. - LSformElement_password : - Ajout de méthodes statiques gérant les appels Ajax. - Modification du JS pour faire appels à ces méthodes - LSformElement_select_object : - Ajout de méthodes statiques gérant les appels Ajax. - Modification du JS pour faire appels à ces méthodes - LSformElement_mail : Utilisation des nouvelles fonctionnalités pour gérer les dépendances. - LSformElement_image : Utilisation des nouvelles fonctionnalités pour gérer les dépendances. - LSsession : - Ajout de méthodes statiques gérant les appels Ajax des formulaires de login et de recupération de mot de passe. - Modification des JS pour faire appels à ces méthodes - Ajout d'un mécanisme permettant de garder la session PHP active - Modification de LSdefault.js pour gérer ce mécanisme - LSform : - Ajout de méthodes statiques gérant les appels Ajax des formulaires - Ajout de la méthode loadDependenciesDisplayView() gérant les dépendances d'affichage d'une LSview. - Utilisation des nouvelles fonctionnalités pour gérer les dépendances. - view.php / modify.php /select.php : Utilisation des nouvelles fonctionnalités pour gérer les dépendances et les LSrelations. - LSview : Modification de l'internationnalisation.
2009-02-20 15:05:22 +01:00
if ($type(this.LSjsConfig['keepLSsessionActive'])) {
this.LSjsConfig['keepLSsessionActive'] = (Math.round(this.LSjsConfig['keepLSsessionActive']*0.70)*1000);
this.keepLSsession.delay(this.LSjsConfig['keepLSsessionActive'],this);
}
},
onWantMoo: function(event) {
event=new Event(event);
if ((event.control) && (event.shift) && (event.key=='m')) {
this.moo.run(null,this);
}
},
moo: function() {
var mooTxt = " (__) .ooooooooooooooooooo.\n (oo) °°°°0 I love LdapSaisie 0\n /------\\\/ °ooooooooooooooooooo°\n / | ||\n * /\---/\\\n ~~ ~~";
var ulMoo = this.LSinfos.getElement('ul');
var preMoo = new Element('pre');
preMoo.set('html',mooTxt);
if ($type(ulMoo)) {
ulMoo.empty();
var liMoo = new Element('li');
liMoo.injectInside(ulMoo);
preMoo.injectInside(liMoo);
}
else {
this.LSinfos.empty();
preMoo.injectInside(this.LSinfos);
}
this.displayInfosBox();
},
onLSsession_topDnChange: function() {
$('LSsession_topDn_form').submit();
- Deplacement du require de functions.php dans le fichier de classe de LSsession pour ne pas obliger sa recopie. - LSlog : Début d'ecriture d'une possibilité de fichiers de logs - Ajout d'une fonction de test validPas() retournant false - LSformElement : Ajout d'un type de LSformElement gérant les attributs maildir. Il fonctionne en frontend du LSaddon Maildir. - LSsession : -> Ajout de la méthode statique includeFile() utilisé à la place de la fonction php include_once() -> displayAjaxReturn() : Gestion du LSredirect -> Ajout d'un require_once() sur functions.php - LSaddon::FTP : Ajout de la fonction renameDirByFTP() - LSaddon::Maildir : -> Ajout de la fonction renameMaildirByFTP() -> Modification des fonctions createMaildirByFTP() et removeMaildirByFTP() pour pour pouvoir leur passé en deuxième paramètre le chemin de la maildir à utlisé - LSdefault : -> LSdebugHidde() devient hideLSdebug() -> Ajout de la méthode hideLSerror() accroché sur l'événement double-clique de la LSerrorsBox -> displayErrorBox() : plus de timeout d'affichage des erreurs -> checkAjaxReturn() : Gestion des LSredirect - LSform : -> plus de LSformRedirect : utilisation de LSdefault::LSredirect - modify.php et create.php : Utilisation des LSdefault::LSredirect et affichages des erreurs non-bloquant sur la page suivante. - LSerror : -> Utilisation d'une variable de session pour stocké les erreurs -> Ajout de la méthode resetError() exécutée à chaque exécution de LSerror::getErrors() - LSldapObject : -> Correction de la gestion des binding -> Event before_modify : bloquant en cas d'échec -> Event after_modify : non-bloquant en cas d'échec
2009-01-21 18:08:09 +01:00
},
checkAjaxReturn: function(data) {
this.hideLSerror();
if ($type(data) == 'object') {
- Deplacement du require de functions.php dans le fichier de classe de LSsession pour ne pas obliger sa recopie. - LSlog : Début d'ecriture d'une possibilité de fichiers de logs - Ajout d'une fonction de test validPas() retournant false - LSformElement : Ajout d'un type de LSformElement gérant les attributs maildir. Il fonctionne en frontend du LSaddon Maildir. - LSsession : -> Ajout de la méthode statique includeFile() utilisé à la place de la fonction php include_once() -> displayAjaxReturn() : Gestion du LSredirect -> Ajout d'un require_once() sur functions.php - LSaddon::FTP : Ajout de la fonction renameDirByFTP() - LSaddon::Maildir : -> Ajout de la fonction renameMaildirByFTP() -> Modification des fonctions createMaildirByFTP() et removeMaildirByFTP() pour pour pouvoir leur passé en deuxième paramètre le chemin de la maildir à utlisé - LSdefault : -> LSdebugHidde() devient hideLSdebug() -> Ajout de la méthode hideLSerror() accroché sur l'événement double-clique de la LSerrorsBox -> displayErrorBox() : plus de timeout d'affichage des erreurs -> checkAjaxReturn() : Gestion des LSredirect - LSform : -> plus de LSformRedirect : utilisation de LSdefault::LSredirect - modify.php et create.php : Utilisation des LSdefault::LSredirect et affichages des erreurs non-bloquant sur la page suivante. - LSerror : -> Utilisation d'une variable de session pour stocké les erreurs -> Ajout de la méthode resetError() exécutée à chaque exécution de LSerror::getErrors() - LSldapObject : -> Correction de la gestion des binding -> Event before_modify : bloquant en cas d'échec -> Event after_modify : non-bloquant en cas d'échec
2009-01-21 18:08:09 +01:00
if (($type(data.LSredirect)) && (!$type(data.LSdebug)) ) {
document.location = data.LSredirect;
return true;
}
if ($type(data.imgload)) {
this.loadingImgHide(data.imgload);
}
else {
this.loadingImgHide();
}
if ($type(data.LSdebug)) {
LSdebug(data.LSdebug);
this.displayDebug(data.LSdebug);
}
if ($type(data.LSinfos)) {
this.displayInfos(data.LSinfos);
}
if ($type(data.LSerror)) {
this.displayError(data.LSerror);
return;
}
return true;
}
else {
LSdebug('Non computable return value');
this.loadingImgHide();
return;
}
},
/*
* Set and Display Methods
*/
displayError: function(html) {
this.LSerror.set('html',html);
this.displayErrorBox();
},
displayDebug: function(html) {
this.LSdebugInfos.set('html',html);
this.displayDebugBox();
},
- 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 17:15:33 +02:00
displayInfos: function(html) {
this.LSinfos.set('html',html);
this.displayInfosBox();
},
/*
* Display Methods
*/
displayErrorBox: function() {
this.LSerror.setStyle('top',getScrollTop()+10);
if (this.LSerror_open) {
return true;
}
this.fx.LSerror.start(0,0.8);
this.LSerror_open = 1;
},
displayDebugBox: function() {
this.LSdebug.setStyle('top',getScrollTop()+10);
if (this.LSdebug_open) {
return true;
}
this.fx.LSdebug.start(0,0.8);
this.LSdebug_open = 1;
},
/*
* Hide Methods
*/
hideLSdebug: function(){
if (this.LSdebug_open) {
this.fx.LSdebug.start(0.8,0);
this.LSdebug_open = 0;
}
},
hideLSerror: function(){
if (this.LSerror_open) {
this.fx.LSerror.start(0.9,0);
this.LSerror_open = 0;
}
},
displayInfosBox: function() {
this.LSinfos.setStyle('top',getScrollTop()+10);
this.fx.LSinfos.start(0,0.9);
(function(){this.fx.LSinfos.start(0.9,0);}).delay(5000, this);
},
loadingImgDisplay: function(el,position,size) {
this.loading_img_id++;
this.loading_img[this.loading_img_id] = new Element('img');
if (size=='big') {
var src = this.imagePath('loading.gif');
}
else {
var src = this.imagePath('ajax-loader.gif');
}
this.loading_img[this.loading_img_id].src=src;
if (position=='inside') {
this.loading_img[this.loading_img_id].injectInside(el);
}
else {
this.loading_img[this.loading_img_id].injectAfter(el);
}
return this.loading_img_id;
},
loadingImgHide: function(id) {
if (isNaN(id)) {
this.loading_img.each(function(el) {
if (typeof(el) != 'undefined')
el.destroy();
},this);
this.loading_img_id=-1;
}
else {
this.loading_img[id].destroy();
}
},
ajaxDisplayDebugAndError: function() {
var LSdebug_txt = $('LSdebug_txt');
if (LSdebug_txt) {
var debug = LSdebug_txt.innerHTML;
if (debug) {
this.displayDebug(debug.toString());
}
}
var LSerror_txt = $('LSerror_txt');
if (LSerror_txt) {
var error=LSerror_txt.innerHTML;
if (error) {
this.displayError(error.toString());
}
}
},
imagePath: function(image) {
return this.LSjsConfig['LS_IMAGES_DIR'] + '/' + image;
},
getParams: function(name) {
if ($type(this.LSjsConfig[name])) {
return this.LSjsConfig[name];
}
return new Hash();
},
addHelpInfo: function(el,group,name) {
if ($type(this.LSjsConfig['helpInfos'])) {
if ($type(el)=='element') {
if ($type(this.LSjsConfig['helpInfos'][group])) {
if ($type(this.LSjsConfig['helpInfos'][group][name])) {
this.addTip(el);
el.store('tip:title',this.LSjsConfig['helpInfos'][group][name]);
el.store('tip:text',"");
}
}
}
}
},
setHelpInfo: function(el,group,name) {
if ($type(this.LSjsConfig['helpInfos'])) {
if ($type(el)=='element') {
if ($type(this.LSjsConfig['helpInfos'][group])) {
if ($type(this.LSjsConfig['helpInfos'][group][name])) {
el.store('tip:title',this.LSjsConfig['helpInfos'][group][name]);
el.store('tip:text',"");
}
}
}
}
},
addTip: function(el) {
this.LStips.attach(el);
},
removeTip: function(el) {
this.LStips.detach(el);
- LSmail : Création d'une classe PHP gérant les dépendances d'affichage et les requêtes Ajax. - LSrelation : - Création d'une classe PHP gérant les dépendances d'affichage et les requêtes Ajax. - Modification du JS pour faire appels à ces méthodes - La méthode displayInLSview() remplace le bloc du fichier view.php pour l'affichage des relations d'un objet. - Internationalisation. - LSselect : Création d'une classe PHP gérant les dépendances d'affichage et les requêtes Ajax. - LSformElement_password : - Ajout de méthodes statiques gérant les appels Ajax. - Modification du JS pour faire appels à ces méthodes - LSformElement_select_object : - Ajout de méthodes statiques gérant les appels Ajax. - Modification du JS pour faire appels à ces méthodes - LSformElement_mail : Utilisation des nouvelles fonctionnalités pour gérer les dépendances. - LSformElement_image : Utilisation des nouvelles fonctionnalités pour gérer les dépendances. - LSsession : - Ajout de méthodes statiques gérant les appels Ajax des formulaires de login et de recupération de mot de passe. - Modification des JS pour faire appels à ces méthodes - Ajout d'un mécanisme permettant de garder la session PHP active - Modification de LSdefault.js pour gérer ce mécanisme - LSform : - Ajout de méthodes statiques gérant les appels Ajax des formulaires - Ajout de la méthode loadDependenciesDisplayView() gérant les dépendances d'affichage d'une LSview. - Utilisation des nouvelles fonctionnalités pour gérer les dépendances. - view.php / modify.php /select.php : Utilisation des nouvelles fonctionnalités pour gérer les dépendances et les LSrelations. - LSview : Modification de l'internationnalisation.
2009-02-20 15:05:22 +01:00
},
keepLSsession: function() {
LSdebug('Keep LSsession');
new Request({url: 'index_ajax.php', data: {}, onSuccess: this.keepLSsessionComplete.bind(this)}).send();
},
keepLSsessionComplete: function() {
LSdebug('Keep LSsession OK');
this.keepLSsession.delay(this.LSjsConfig['keepLSsessionActive'],this);
}
});
window.addEvent(window.ie ? 'load' : 'domready', function() {
varLSdefault = new LSdefault();
});