- Correction bug [#1670] LSformElement_select_object : Bug important lors d'une valid...
authorBenjamin Renard <brenard@easter-eggs.com>
Wed, 14 May 2008 14:43:23 +0000 (14:43 +0000)
committerBenjamin Renard <brenard@easter-eggs.com>
Wed, 14 May 2008 14:43:23 +0000 (14:43 +0000)
-> Uniformisation du passage en argument du LSattr_html au moment de l'ajout d'un élement à un formulaire
-> Utilisation de la méthode LSattr_html::refreshForm() au moment du LSform::setValuesFromPostData()
- Correction bug [#1669] Modification d'objet : le type d'objet n'est pas chargé

trunk/includes/class/class.LSattr_html_image.php
trunk/includes/class/class.LSattr_html_password.php
trunk/includes/class/class.LSattr_html_select_list.php
trunk/includes/class/class.LSattr_html_select_object.php
trunk/includes/class/class.LSattr_html_text.php
trunk/includes/class/class.LSattr_html_textarea.php
trunk/includes/class/class.LSform.php
trunk/includes/class/class.LSformElement.php
trunk/includes/class/class.LSsession.php
trunk/modify.php

index d49351d..e0e4fe9 100644 (file)
@@ -37,7 +37,7 @@ class LSattr_html_image extends LSattr_html {
    * @retval LSformElement L'element du formulaire ajouté
    */
   function addToForm (&$form,$idForm,$data=NULL) {
-    $element=$form -> addElement('image', $this -> name, $this -> config['label'],$this -> config);
+    $element=$form -> addElement('image', $this -> name, $this -> config['label'],$this -> config, $this);
     if(!$element) {
       $GLOBALS['LSerror'] -> addErrorCode(206,$this -> name);
       return;
index 1d1c528..ec0d9dd 100644 (file)
  */
 class LSattr_html_password extends LSattr_html {
 
-       /**
-        * Ajoute l'attribut au formualaire passer en paramètre
-        *
-        * @param[in] &$form LSform Le formulaire
-        * @param[in] $idForm L'identifiant du formulaire
-        * @param[in] $data Valeur du champs du formulaire
-        *
-        * @retval LSformElement L'element du formulaire ajouté
-        */ 
+  /**
+   * Ajoute l'attribut au formualaire passer en paramètre
+   *
+   * @param[in] &$form LSform Le formulaire
+   * @param[in] $idForm L'identifiant du formulaire
+   * @param[in] $data Valeur du champs du formulaire
+   *
+   * @retval LSformElement L'element du formulaire ajouté
+   */ 
   function addToForm (&$form,$idForm,$data=NULL) {
-    $element=$form -> addElement('password', $this -> name, $this -> config['label'], $this -> config);
-               if(!$element) {
-                       $GLOBALS['LSerror'] -> addErrorCode(206,$this -> name);
-                       return;
-               }
+    $element=$form -> addElement('password', $this -> name, $this -> config['label'], $this -> config, $this);
+    if(!$element) {
+      $GLOBALS['LSerror'] -> addErrorCode(206,$this -> name);
+      return;
+    }
 
     if (count($data)>1) {
       $GLOBALS['LSerror'] -> addErrorCode(103,'password');
       return;
     }
-               if ($data) {
-           $element -> setValue($data);
-               }
+    if ($data) {
+      $element -> setValue($data);
+    }
     return $element;
   }
   
index 8efdeb8..34944fc 100644 (file)
@@ -43,7 +43,7 @@ class LSattr_html_select_list extends LSattr_html{
     }*/
     $possible_values=$this -> getPossibleValues();
     $this -> config['text_possible_values'] = $possible_values;
-    $element=$form -> addElement('select', $this -> name, $this -> config['label'],$this -> config);
+    $element=$form -> addElement('select', $this -> name, $this -> config['label'],$this -> config, $this);
     if(!$element) {
       $GLOBALS['LSerror'] -> addErrorCode(206,$this -> name);
       return;
index bc769a2..195d4f0 100644 (file)
@@ -53,6 +53,16 @@ class LSattr_html_select_object extends LSattr_html{
     return $element;
   }
 
+  /**
+   * Effectue les tâches nécéssaires au moment du rafraichissement du formulaire
+   * 
+   * Récupère un array du type array('DNs' => 'displayValue') à partir d'une
+   * liste de DNs.
+   * 
+   * @param[in] $data mixed La valeur de l'attribut (liste de DNs)
+   * 
+   * @retval mixed La valeur formatée de l'attribut (array('DNs' => 'displayValue'))
+   **/
   function refreshForm($data) {
     return $this -> getValues($data);
   }
index a5b7333..8098476 100644 (file)
  */
 class LSattr_html_text extends LSattr_html {
 
-       /**
-        * Ajoute l'attribut au formualaire passer en paramètre
-        *
-        * @param[in] &$form LSform Le formulaire
-        * @param[in] $idForm L'identifiant du formulaire
-        * @param[in] $data Valeur du champs du formulaire
-        *
-        * @retval LSformElement L'element du formulaire ajouté
-        */
+  /**
+   * Ajoute l'attribut au formualaire passer en paramètre
+   *
+   * @param[in] &$form LSform Le formulaire
+   * @param[in] $idForm L'identifiant du formulaire
+   * @param[in] $data Valeur du champs du formulaire
+   *
+   * @retval LSformElement L'element du formulaire ajouté
+   */
   function addToForm (&$form,$idForm,$data=NULL) {
-    $element=$form -> addElement('text', $this -> name, $this -> config['label'],$this -> config);
-               if(!$element) {
-                       $GLOBALS['LSerror'] -> addErrorCode(206,$this -> name);
-                       return;
-               }
-               if ($data) {
-                       $element -> setValue($data);
-               }
-               return $element; 
+    $element=$form -> addElement('text', $this -> name, $this -> config['label'],$this -> config, $this);
+    if(!$element) {
+      $GLOBALS['LSerror'] -> addErrorCode(206,$this -> name);
+      return;
+    }
+    if ($data) {
+      $element -> setValue($data);
+    }
+    return $element; 
   }
   
 }
index 0e95e2c..5082738 100644 (file)
  */
 class LSattr_html_textarea extends LSattr_html {
 
-       /**
-        * Ajoute l'attribut au formualaire passer en paramètre
-        *
-        * @param[in] &$form LSform Le formulaire
-        * @param[in] $idForm L'identifiant du formulaire
-        * @param[in] $data Valeur du champs du formulaire
-        *
-        * @retval LSformElement L'element du formulaire ajouté
-        */
+  /**
+   * Ajoute l'attribut au formualaire passer en paramètre
+   *
+   * @param[in] &$form LSform Le formulaire
+   * @param[in] $idForm L'identifiant du formulaire
+   * @param[in] $data Valeur du champs du formulaire
+   *
+   * @retval LSformElement L'element du formulaire ajouté
+   */
   function addToForm (&$form,$idForm,$data=NULL) {
-    $element=$form -> addElement('textarea', $this -> name, $this -> config['label'], $this -> config);
-               if(!$element) {
-                       $GLOBALS['LSerror'] -> addErrorCode(206,$this -> name);
-                       return;
-               }
+    $element=$form -> addElement('textarea', $this -> name, $this -> config['label'], $this -> config, $this);
+    if(!$element) {
+      $GLOBALS['LSerror'] -> addErrorCode(206,$this -> name);
+      return;
+    }
 
     if (count($data)>1) {
       $GLOBALS['LSerror'] -> addErrorCode(103,'textarea');
       return;
     }
-               if ($data) {
-           $element -> setValue($data);
-               }
+    if ($data) {
+      $element -> setValue($data);
+    }
     return $element;
   }
   
index 0ce3421..6319114 100644 (file)
@@ -295,7 +295,7 @@ class LSform {
    *
    * @retval LSformElement
    */
-  function addElement($type,$name,$label,$params=array(),&$attr_html=NULL) {
+  function addElement($type,$name,$label,$params=array(),&$attr_html) {
     $elementType='LSformElement_'.$type;
     $GLOBALS['LSsession'] -> loadLSclass($elementType);
     if (!class_exists($elementType)) {
@@ -413,7 +413,7 @@ class LSform {
       return;
     }
     foreach($this -> _postData as $element => $values) {
-      $this -> elements[$element] -> setValue($values);
+      $this -> elements[$element] -> setValueFromPostData($values);
     }
     return true;
   }
index 5ef251d..e25476f 100644 (file)
@@ -81,6 +81,30 @@ class LSformElement {
     $this -> values = $data;
     return true;
   }
+  
+  /**
+   * Définis la valeur de l'élément à partir des données 
+   * envoyées en POST du formulaire
+   *
+   * Cette méthode définis la valeur de l'élément à partir des données 
+   * envoyées en POST du formulaire.
+   *
+   * @author Benjamin Renard <brenard@easter-eggs.com>
+   *
+   * @param[in] [<b>required</b>] string or array La futur valeur de l'élément
+   *
+   * @retval boolean Retourne True
+   */
+  function setValueFromPostData($data) {
+    if (!is_array($data)) {
+      $data=array($data);
+    }
+
+    $data = $this -> attr_html -> refreshForm($data);
+
+    $this -> values = $data;
+    return true;
+  }
 
   /**
    * Ajoute une valeur à l'élément
index 1e0ffd7..eb3534d 100644 (file)
@@ -160,8 +160,9 @@ class LSsession {
     }
 
     foreach ($this -> ldapServer['LSobjects'] as $object) {
-      if ( !$this -> loadLSobject($object) )
+      if ( !$this -> loadLSobject($object) ) {
         return;
+      }
     }
     return true;
   }
@@ -279,6 +280,8 @@ class LSsession {
           else {
             $this -> setLdapServer(0);
           }
+          
+          $this -> loadLSobjects();
 
           // Connexion au serveur LDAP
               if ($this -> LSldapConnect()) {
index 333ea41..7bf7e94 100644 (file)
@@ -46,7 +46,7 @@ if($LSsession -> startLSsession()) {
 
   if ((isset($dn)) && (isset($LSobject)) ) {
     // Création d'un LSobject
-    if (class_exists($LSobject)) {
+    if ($GLOBALS['LSsession'] -> loadLSobject($LSobject)) {
       if ( $GLOBALS['LSsession'] -> canEdit($LSobject,$dn) ) {
         $LSview_actions[] = array(
           'label' => _('Voir'),
@@ -90,7 +90,7 @@ if($LSsession -> startLSsession()) {
       }
     }
     else {
-      $GLOBALS['LSerror'] -> addErrorCode(21);
+      $GLOBALS['LSerror'] -> addErrorCode(1004,$LSobject);
     }
   }
   else {