- Correction bug [#1670] LSformElement_select_object : Bug important lors d'une validation intermédiaire

-> 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é
This commit is contained in:
Benjamin Renard 2008-05-14 14:43:23 +00:00
parent a8daef44f7
commit c6bcdfeafa
10 changed files with 96 additions and 59 deletions

View 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;

View file

@ -27,29 +27,29 @@
*/
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;
}

View 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;

View 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);
}

View file

@ -27,25 +27,25 @@
*/
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;
}
}

View file

@ -27,29 +27,29 @@
*/
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;
}

View 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;
}

View 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

View 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()) {

View 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 {