-> Ajout de la fonction __() : fonction de traduction utilisant à la fois le tableau globale LSlang
et gettext pour traduire les messages qu'on lui passe.
-> Ajout de la fonction tr() : fonction utilisable depuis les templates pour traduire une variable
smarty.
- LSexample :
-> Utilisation de la traduction via __() plutôt que gettext
- LSdefault :
-> Creation d'un template pour la gestion des outils apporté par LSdefaut (LSerror, LSdebug, ...)
-> Ajout de méthode de gestion de LSlang
- LSsession :
- Login/RecoverPassword : Utilisation du template LSdefault
- Gestion de la traduction :
-> Ajout de la méthode setLocale() définissant la langue de l'interface.
-> Ajout des méthodes getLangList() et localeExist()
-> Le session_start() se fait dans l'initialize désormais (pour gérer la langue même déconnecté)
-> Méthode setLdapServer() : rédifinition de la locale avec setLocale()
-> Ajout de LSlang : outil JS permetant dans l'interface de choisir sa langue
- Config :
-> De manière général, il ne doit plus y avoir d'appel de la fonction _() dans les fichiers de config, les
chaînes sont données non traduite, et la traduction se fera lors de leur utilisation.
-> Tout les labels et messages déclarer dans la config, est maintenant traduit du coté code PHP avec la
fonction __()
-> L'enconding et la langue sont désormais géré indépendament
- ViewList : Les noms des boutons (New,Refresh,...) ne sont plus traduit du côté PHP mais dans le template à
cause de leur mise en cache.
- Documentation :
-> Mise à jour relative en changement de paramètres de configuration
-> Ajout des informations sur les variables et constantes indépendantes du fichier de configuration config.inc.php
-> Mise à jour du fichier INSTALL avec les informations de la documentation
un troisième paramètre : un LSformat du filtre de recherche composé avec la valeur
du première argument.
- LSsession : Ajout de la possibilité de définir le filtre de recherche LDAP de l'objet
utilisateur d'une personne se connectant. (authObjectFilter)
- config.inc.php : Ajout de la possibilité de s'authentifier avec son mail.
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.
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
- ftp : Ajout de la possiblité d'un chmod après la création des dossiers
avec la méthode createDirsByFTP()
- Maildir : Ajout d'un chmod après la création de la maildir
la possibilité de laisser à l'utilisateur le choix du format de nom des subDn.
De plus, le paramètre du basedn de recherche des LSobjets est renomé :
-> topDn => basedn
- config.inc.php : Paramètre inutile supprimé
j'espère pour voir bientôt ajouté au SVN. Cela me fait mettre le doit sur
quelques problèmes de nommages, d'organisation que j'ai corrigé sur le fait :
- Concepte de level était enfaite celui de subDn : seule le nom subDn doit
rester.
- Le concept de LSrights dans LSsession et config.inc.php était mal nommé.
Il correspond plus à la définition de LSprofile en réalité. Je l'ai renommé
ainsi.
- Les paramètres authobject et authobject_pwdattr n'étaient pas très représentatif.
Je les ai renommé en authObjectType et authObjectTypeAttrPwd.
- Templates :
-> Correction du template default dans le but de changer la couleur bleu dominante juger trop
flashy :). Au passage j'ai dégagé l'image de fond de #main utilisé pour colorer le menu :
cette méthode est moche et quitte a à faire du moche je préfère utiliser un vulgaire tableau
que des bidouille de ce genre.
-> Création d'un logo pour LdapSaisie qui vient remplacer le logo Easter-Eggs utilisé jusqu'alors.
-> Ajout d'un favicon.
- LSerror :
-> J'ai déplacé les definitions de code d'erreur dans le contexte concerné (càd dans
les fichiers de définition des classes) (Feature Request #1757)
-> J'en ai profité pour renommer les codes d'erreur avec un prefixe pour eviter les doublons
-> J'ai donc modifié une grande partie des fichiers pour changer les codes erreurs utilisés
-> Ajout d'une méthode getError() utilisé par getErrors()
-> Modification de la méthode stop()
- LSformElement_password :
- Correction d'un bug dans la génération des mots de passe dans un formulaire de création d'objet.
- Ajout d'une possiblité de choisir le type de hashage du mot de passe stocké dans l'annuaire
(Feature Request #1756)
- Traduction des commentaires
- LSattribute : Ajout des vérifications dans les méthodes de la classe lors de l'utilisation des objets
html et ldap.
- LSsession :
-> Renforcement des méthodes faisant des inclusions d'autres fichiers php.
-> Correction du chargement de Net_LDAP2
-> Ajout de la possibilité d'avoir autre chose que le dn en valeur clef
dans la méthode loadLSrights() (type groupe)
-> Les profils utilisateurs sont maintenant scalable. Il est possible
de créer autant de profil voulu avec autant de droits alloués spécifiques
-> LSsession :: whoami() et LSldapObject :: whoami() retourne la liste des profils
correspondants à l'utilisateur connecté
-> Les méthodes ont été modifiées pour prendre en compte cela en faisant la somme
des droits de chaque profils :
- LSsession :: canAccess()
- LSsession :: relationCanAccess()
- LSsession :: loadLSrights()
- LSattribute :: myRigths()
-> LSsession :: isAdmin() a été remplacé par isProfile() capable de redonner la meme
information mais pour tout profil dont le nom est passé en paramètre
-> LSsession :: loadLSrights() : gère la délagation de droits sur les objets répondant a un
filtre particulier ou dont un certain attribut possède une certaine valeur
-> LSexample :
-> Ajout d'un attribut lsGodfatherDn pour la délégation de droit objet par objet
-> Retravail des objets d'exemple pour faire en sorte de coller plus avec une réel
utilisation
-> LSsession : ajout de la méthode addHelpInfos()
-> LSdefault : ajout des méthodes addHelpInfo() et setHelpInfo()
-> LSform : ajout des méthodes addTip() et removeTip()
-> Ceci répond globalement à la feature request #1730
- LSformElement_select_object :
- Ajout d'un bouton d'ajout/recherche rapide (Feature Requests #1731)
- JS correction d'un bug lors du refresh (bouton Modifier)
-> Refonte complète pour coller au plus près de la réalité
-> Création des classes LSformElement et LSformElement_field
- LSsession :
-> Méthode fetchTemplate() : retourne un template compilé
- LSformElement :
-> Méthode fetchTemplate() : Utilisation des templates pour l'affichage des
LSformElement.
-> Méthode isMultiple()
-> getEmptyField() : méthode d'affichage par défaut d'un champs vide
- LSformElement_textarea :
-> Utilisation des templates pour l'affichage
-> Ajout d'un bouton clear()
- LSformElement_text :
-> Utilisation des templates pour l'affichage
-> Adpatation pour pouvoir faire des classes filles. Celles-ci hériteront
des fonctionnalités des champs textes classiques
-> La méthode de génération est maintenant appliqué à tout les champs et non
plus simplement au premier
- LSformElement_mail :
-> Refonte en utilisant l'héritage de LSformElement_text
-> help_info ajouté dans la configuration des attributs
- LSeepeople : Ajout d'une bulle d'aide pour loginshell
- LSdebug : Renomage des fonctions attachées :
- debug() -> LSdebug()
- debug_pring() -> LSdebug_print()
-> Nétoyage des debug dans le code et renomage quand nécessaire.
-> Ajout d'une fonctionnalité de dump de variable à LSdebug()
- LSsession : Correction d'un problème de chemin pour les scripts JS
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()
-> Ajout de la methode redirect()
-> Ajout d'une possibilité d'affichage d'infos à au chargement de la page
-> methode addInfo()
-> modification de la methode displayTemplate() en conséquence
-> modification de LSdefault.js et LSdefault.css en conséquence
- remove.php
-> Redirection vers la liste des objets du même type que l'objet supprimé
après sa suppression avec une demande de rafraichissement.
- modify.php
-> Redirection vers la fiche de l'objet après sa modification avec affichage
d'un message. (Feature Request #1702)
- LSaddons :
-> FTP : support FTP a travers la librairie PEAR :: Net_FTP
-> Maildir : Pour la création et la suppresion de la Maildir d'un utilisateur
-> Posix : Ajout de la méthode createHomeDirectoryByFTP() et correction d'un
bug dans l'affichage des erreurs
-> Samba : Correction d'un bug dans l'affichage des erreurs
- LSldapObject :
-> Ajout d'une possibilité de trigger personnalisé à travers la configuration
d'un LSobjet :
-> after_create
-> after_delete
-> Renomage du trigger before_save et after_save en before_modify et
after_modify.
-> Les noms des objets sont maintenant cliquable et nous emmènent sur la
fiche de l'objet correspondant
- LSformElement_select_object :
-> Les noms des objets sont maintenant cliquable et nous emmènent sur la
fiche de l'objet correspondant
- LSformElement :
-> Ajout de deux types d'élements de formulaire :
-> LSformElement_mail : Adresse mail
-> LSformElement_xmpp : Adresse xmpp
- LSattribute :
-> uniformisation des données des attributs (tous des array())
-> modifications des méthodes loadData() & reloadData()
-> Correction des bugs induits par cette modification :
- trunk/includes/class/class.LSattr_html_select_list.php
- trunk/includes/class/class.LSldapObject.php
- trunk/includes/class/class.LSattr_html_select_object.php
- trunk/includes/class/class.LSattr_ldap_date.php
- trunk/includes/class/class.LSsession.php
- trunk/includes/addons/LSaddons.samba.php
-> Correction d'un bug concernant le refresh des formulaires (#1695)
-> modification de la méthode refreshForm()
- LSsession : Correction d'un bug d'affichage du nom de l'utilisateur connecté
-> Ajout de la possibilité de changer le RDN d'un objet
-> Mise à jour automatique des relations définis avec les autres types
d'objet à partir du moment que le paramètre 'rename_function' est défini
dans la configuration de la relation
-> Ajout des méthodes suivantes :
-> beforeRename() : Executer avant le changement de DN elle permet de
préparer le renomage.
-> afterRename() : Executer après le changement de DN elle finalise le
renomage.
-> Méthode submitData() : prise en charge du changement du RDN
- LSrelation :
-> Correction d'une erreur dans index_ajax.php : le paramètre
$relationConf['remove_function'] n'était pas utilisé
- LSeegroup :
-> Création d'une propriété $userObjectType pour stocké le type des objets
utilisateurs
-> Création de la méthode renameOneMember() pour assurer les modifications
nécéssaire lors du changement de DN d'un utilisateur
- LSformElement_date : Suppression du chargement du fichier js : calendar-setup
inutile l'utilisation faite de jscalendar.
- LSattribute :
-> Ajout d'une possibilité pour générer une valeur à partir d'un format de
chaine et la méthode getFData() des objets LSldapObject. Cette méthode fait
référence au paramètre 'generate_value_format' de la configuration d'un
attribut pour générer la valeur
- LSldap :
-> Ajout d'une méthode move() pour changer le DN d'un objet
- LSsession :
-> Ajout de la méthode changeAuthUser() pour changer l'utilisateur connecté
en cour de session. (Utile lors de la modification de l'utilisateur par lui
même)
- functions.php : Correction d'un bug dans la fontion getFData().
- modify.php : Vérification des droits de l'utilisateur après chargement et
eventuellement modification de celui-ci pour intégrer les eventuelles
modifications faites par l'utilisateur.
- LSselect : Selection d'un objet lorsqu'on clique sur son non
- LSconfirmBox : Correction erreur syntax JS
- LSformElement_url : Correction erreur JS avec Opera
- 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;"
-> config.inc.php :
- Deux fichiers js à include au lieu d'un seul
- Suppression du Debugger (Debugger.js incompatible)
- LSformElement_image : refonte de l'affichage
- Templates :
- LSview-action : Passage aux balises ul/li plutôt que p/a
- select.tpl : correction d'un bug concernant la sélection du subDn actif
- Création de LSconfirmBox : module de confirmation
- JS :
-> LSform.js : Modularisation du code :
- LSformElement_select_object.js
- LSformElement_image.js
- LSformElement_password.js
- CSS :
-> Modularisation :
- LSselect.css
- LSrelation.css
- LSrelation :
-> Refonte du mécanisme JS
-> Modification de l'affichage
-> Ajout d'une confirmation à la suppresion (LSconfirmBox)
- LSsmoothbox : Refonte profonde
- view.php :
- Correction d'un bug : la colone action était vide lors de la mise en cache
par LSselect.
- LSldapObject :
- getDisplayValue() : ajout d'une possibilité de l'affichage du subDn en plus
du nom
- LSsession : ajout d'un méthode haveSubDn()
- JS :
- Modularisation de la verification d'une requete Ajax
-> LSdefault : nouvelles méthodes :
-> checkAjaxReturn() : Pour les retours JSON
-> ajaxDisplayDebugAndError() : Pour les retours HTML (Type LSselect)
-> getSubDnValue()
-> getSubDnName()
- LSview/LSselect : utilisation de la méthode getSubDnName() plutôt que le
code en local
- config.inc.php :
-> Modification du paramètre ldapServer['subDn']
-> Ajout du paramètre LSaccess pour la composition du menu hors config subDn
-> Suppression ldapServer['LSobjets'] : suppression du pré-chargement
(cf.ci-dessous)
- LSsession :
-> Rédéfinition de la méthode de construction du menu de l'interface
(bug #1665)
-> Mise en cache de LSaccess
-> top.tpl : le bouton de rafraichissement subDn devient un bouton de
rafraichissement génerale de LSsession (config / LSaccess / subDn)
-> Suppression du pré-chargement des objets et donc de la méthode
loadLSobjects()
-> Ajout d'une méthode in_menu() utilisé entre par la méthode canAccess()
pour valider les accès aux objets
- create.php : Correction d'un bug de chargement d'objet.
- config.error_code.php : Correction bug encodage
- index_ajax.php :
-> Correction de bugs de chargement d'objets
-> Suppression du code de gestion des retours d'erreur multiplié et inutile
-> Ajout d'une fonctionnalité de trie par colonne
-> template/code : modification du principe de tr.bis
-> LSselect.js : correction d'un bug dans la méthode oncheckboxChange()
- LSsession :
-> Ajout d'une méthode isSubDnLSobject()
-> Correction d'un bug dans la méthode getSortSubDnLdapServer()
-> Le choix du niveau est maintenant dans le menu de gauche
-> Le logo est cliquable (retour à l'accueil)
- Mise en cache des subDnLdapServer (sous-niveaux)
- Modification majeur sur le module de recherche :
-> Refonte du mécanisme de la page
-> Ajout du cache de recherche (gain notable de rapidité)
-> Ajout d'un message quand la recherche ne retourne aucun résultat
-> Possibilité de faire une recherche récursive
- Personnalisation rendu possible du nom donné au concepte de niveau
- LSldapObject : Correction d'un bug dans la méthode listObjects() : Warning
lors de certains retours vides.
- LSsession :
-> Création de méthode pour centraliser les tests d'activation des caches
-> Proprité ajax_displate : permet l'affichage des debugs à travers les
requêtes ajax du type 'update'
- LSsmoothbox : Modification de l'affichage