- 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é * @retval LSformElement L'element du formulaire ajouté
*/ */
function addToForm (&$form,$idForm,$data=NULL) { 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) { if(!$element) {
$GLOBALS['LSerror'] -> addErrorCode(206,$this -> name); $GLOBALS['LSerror'] -> addErrorCode(206,$this -> name);
return; return;

View file

@ -37,7 +37,7 @@ class LSattr_html_password extends LSattr_html {
* @retval LSformElement L'element du formulaire ajouté * @retval LSformElement L'element du formulaire ajouté
*/ */
function addToForm (&$form,$idForm,$data=NULL) { function addToForm (&$form,$idForm,$data=NULL) {
$element=$form -> addElement('password', $this -> name, $this -> config['label'], $this -> config); $element=$form -> addElement('password', $this -> name, $this -> config['label'], $this -> config, $this);
if(!$element) { if(!$element) {
$GLOBALS['LSerror'] -> addErrorCode(206,$this -> name); $GLOBALS['LSerror'] -> addErrorCode(206,$this -> name);
return; return;

View file

@ -43,7 +43,7 @@ class LSattr_html_select_list extends LSattr_html{
}*/ }*/
$possible_values=$this -> getPossibleValues(); $possible_values=$this -> getPossibleValues();
$this -> config['text_possible_values'] = $possible_values; $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) { if(!$element) {
$GLOBALS['LSerror'] -> addErrorCode(206,$this -> name); $GLOBALS['LSerror'] -> addErrorCode(206,$this -> name);
return; return;

View file

@ -53,6 +53,16 @@ class LSattr_html_select_object extends LSattr_html{
return $element; 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) { function refreshForm($data) {
return $this -> getValues($data); return $this -> getValues($data);
} }

View file

@ -37,7 +37,7 @@ class LSattr_html_text extends LSattr_html {
* @retval LSformElement L'element du formulaire ajouté * @retval LSformElement L'element du formulaire ajouté
*/ */
function addToForm (&$form,$idForm,$data=NULL) { function addToForm (&$form,$idForm,$data=NULL) {
$element=$form -> addElement('text', $this -> name, $this -> config['label'],$this -> config); $element=$form -> addElement('text', $this -> name, $this -> config['label'],$this -> config, $this);
if(!$element) { if(!$element) {
$GLOBALS['LSerror'] -> addErrorCode(206,$this -> name); $GLOBALS['LSerror'] -> addErrorCode(206,$this -> name);
return; return;

View file

@ -37,7 +37,7 @@ class LSattr_html_textarea extends LSattr_html {
* @retval LSformElement L'element du formulaire ajouté * @retval LSformElement L'element du formulaire ajouté
*/ */
function addToForm (&$form,$idForm,$data=NULL) { function addToForm (&$form,$idForm,$data=NULL) {
$element=$form -> addElement('textarea', $this -> name, $this -> config['label'], $this -> config); $element=$form -> addElement('textarea', $this -> name, $this -> config['label'], $this -> config, $this);
if(!$element) { if(!$element) {
$GLOBALS['LSerror'] -> addErrorCode(206,$this -> name); $GLOBALS['LSerror'] -> addErrorCode(206,$this -> name);
return; return;

View file

@ -295,7 +295,7 @@ class LSform {
* *
* @retval LSformElement * @retval LSformElement
*/ */
function addElement($type,$name,$label,$params=array(),&$attr_html=NULL) { function addElement($type,$name,$label,$params=array(),&$attr_html) {
$elementType='LSformElement_'.$type; $elementType='LSformElement_'.$type;
$GLOBALS['LSsession'] -> loadLSclass($elementType); $GLOBALS['LSsession'] -> loadLSclass($elementType);
if (!class_exists($elementType)) { if (!class_exists($elementType)) {
@ -413,7 +413,7 @@ class LSform {
return; return;
} }
foreach($this -> _postData as $element => $values) { foreach($this -> _postData as $element => $values) {
$this -> elements[$element] -> setValue($values); $this -> elements[$element] -> setValueFromPostData($values);
} }
return true; return true;
} }

View file

@ -82,6 +82,30 @@ class LSformElement {
return true; 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 * Ajoute une valeur à l'élément
* *

View file

@ -160,9 +160,10 @@ class LSsession {
} }
foreach ($this -> ldapServer['LSobjects'] as $object) { foreach ($this -> ldapServer['LSobjects'] as $object) {
if ( !$this -> loadLSobject($object) ) if ( !$this -> loadLSobject($object) ) {
return; return;
} }
}
return true; return true;
} }
@ -280,6 +281,8 @@ class LSsession {
$this -> setLdapServer(0); $this -> setLdapServer(0);
} }
$this -> loadLSobjects();
// Connexion au serveur LDAP // Connexion au serveur LDAP
if ($this -> LSldapConnect()) { if ($this -> LSldapConnect()) {

View file

@ -46,7 +46,7 @@ if($LSsession -> startLSsession()) {
if ((isset($dn)) && (isset($LSobject)) ) { if ((isset($dn)) && (isset($LSobject)) ) {
// Création d'un LSobject // Création d'un LSobject
if (class_exists($LSobject)) { if ($GLOBALS['LSsession'] -> loadLSobject($LSobject)) {
if ( $GLOBALS['LSsession'] -> canEdit($LSobject,$dn) ) { if ( $GLOBALS['LSsession'] -> canEdit($LSobject,$dn) ) {
$LSview_actions[] = array( $LSview_actions[] = array(
'label' => _('Voir'), 'label' => _('Voir'),
@ -90,7 +90,7 @@ if($LSsession -> startLSsession()) {
} }
} }
else { else {
$GLOBALS['LSerror'] -> addErrorCode(21); $GLOBALS['LSerror'] -> addErrorCode(1004,$LSobject);
} }
} }
else { else {