Affichage conditionnel de l'objectif lors de l'édition de campagnes.
authorOlivier Tétard <olivier.tetard@miskin.fr>
Thu, 3 Oct 2013 20:33:28 +0000 (22:33 +0200)
committerOlivier Tétard <olivier.tetard@miskin.fr>
Fri, 4 Oct 2013 09:22:28 +0000 (11:22 +0200)
Affichage d'un nouveau bouton radio « oui / non » permettant d'afficher ou non les champs 'objectif' et 'objectif_initial'.

formulaires/editer_souscription_campagne.php
lang/souscription_fr.php

index 0325d12..fb8d1e1 100644 (file)
@@ -40,6 +40,13 @@ function formulaires_editer_souscription_campagne_charger_dist($id_souscription_
                                              $row,
                                              $hidden);
 
+  $valeurs['objectif_oui_non'] = _request('objectif_oui_non');
+
+  /* Si la valeur du champ 'objectif' est 0, alors, c'est que
+   * l'objectif n'est pas activé. */
+  $defaut_objectif = "";
+  if($valeurs['objectif'] && $valeurs['objectif'] > 0)
+    $defaut_objectif = "on";
 
   $saisies = array(array('saisie' => 'input',
                         'options' => array('nom' => 'titre',
@@ -54,17 +61,27 @@ function formulaires_editer_souscription_campagne_charger_dist($id_souscription_
                                            'datas' => array('don' => 'Dons',
                                                             'adhesion' => 'Adhésions'))
                         ),
-                  array('saisie' => 'input',
-                        'options' => array('nom' => 'objectif',
-                                           'obligatoire' => 'oui',
-                                           'label' => _T('souscription:label_objectif'),
-                                           'explication' => _T('souscription:explication_campagne_objectif'))
+                  array('saisie' => 'oui_non',
+                        'options' => array('nom' => 'objectif_oui_non',
+                                           'label' => _T('souscription:label_objectif_oui_non'),
+                                           'defaut' => $defaut_objectif)
                         ),
-                  array('saisie' => 'input',
-                        'options' => array('nom' => 'objectif_initial',
-                                           'obligatoire' => 'oui',
-                                           'label' => _T('souscription:label_objectif_initial'),
-                                           'explication' => _T('souscription:explication_campagne_objectif_initial'))
+                  array('saisie' => 'fieldset',
+                        'options' => array('nom' => 'groupe_limite',
+                                           'label' => _T('souscription:label_objectif_groupe'),
+                                           'afficher_si' => '@objectif_oui_non@ == "on"'),
+                        'saisies' => array(array('saisie' => 'input',
+                                                 'options' => array('nom' => 'objectif',
+                                                                    'obligatoire' => 'oui',
+                                                                    'label' => _T('souscription:label_objectif'),
+                                                                    'explication' => _T('souscription:explication_campagne_objectif')),
+                                                 ),
+                                           array('saisie' => 'input',
+                                                 'options' => array('nom' => 'objectif_initial',
+                                                                    'label' => _T('souscription:label_objectif_initial'),
+                                                                    'explication' => _T('souscription:explication_campagne_objectif_initial'))
+                                                 )
+                                           )
                         ),
                   array('saisie' => 'textarea',
                         'options' => array('nom' => 'texte',
@@ -96,13 +113,17 @@ function formulaires_editer_souscription_campagne_verifier_dist($id_souscription
   if(!in_array($type, array('don', 'adhesion')))
     $ret['type_objectif'] = _T("souscription:message_nok_objectif_invalide");
 
-  $objectif_initial = _request('objectif_initial');
-  if(!ctype_digit($objectif_initial) || intval($objectif_initial) < 0)
-    $ret['objectif_initial'] = _T("souscription:message_nok_objectif_initial_invalide");
+  /* Si un objectif est demandé, alors on vérifie que les champs sont
+   * bien des entiers. */
+  if(_request('objectif_oui_non') == 'on') {
+    $objectif_initial = _request('objectif_initial');
+    if(!ctype_digit($objectif_initial) || intval($objectif_initial) < 0)
+      $ret['objectif_initial'] = _T("souscription:message_nok_objectif_initial_invalide");
 
-  $objectif = _request('objectif');
-  if(!ctype_digit($objectif) || intval($objectif) < 0)
-    $ret['objectif'] = _T("souscription:message_nok_objectif_initial_valeur");
+    $objectif = _request('objectif');
+    if(!ctype_digit($objectif) || intval($objectif) < 0)
+      $ret['objectif'] = _T("souscription:message_nok_objectif_initial_valeur");
+  }
 
   return $ret;
 }
@@ -115,6 +136,13 @@ function formulaires_editer_souscription_campagne_traiter_dist($id_souscription_
                                                                $hidden='')
 {
 
+  /* Si un objectif n'est pas demandée, alors, on remplace la valeur
+   * fournie (quelqu'elle soit, par 0) */
+  if(_request('objectif_oui_non') != "on") {
+    set_request('objectif', 0);
+    set_request('objectif_initial', 0);
+  }
+
   $res = formulaires_editer_objet_traiter('souscription_campagne',
                                           $id_souscription_campagne,
                                           '',
index a9c6e1e..1abbbfd 100644 (file)
@@ -32,7 +32,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'explication_montant_adhesion' => ' ',
        'explication_montant_don' => ' ',
        'explication_montants' => 'Le montants divent être au format suivant: <code>[montant]|[description]</code> à raison d\'une entrée par ligne.',
-       'explication_campagne_objectif' => 'Permet d\'indiquer un objectif monétaire pour la campagne.<br/>Mettre 0 si la campagne n\'a pas d\'objectif.',
+       'explication_campagne_objectif' => 'Permet d\'indiquer un objectif monétaire pour la campagne.',
        'explication_campagne_objectif_initial' => 'Permet d\'indiquer le niveau initial de la campagne. Ce champs peut être utilisé pour indiquer des dons ou adhésions n\'ayant pas été compatibilisées par le module de souscriptions.',
        'explication_recu_fiscal' => ' ',
        'explication_type_objectif' => 'Type de l\'objectif (influe le montant de l\'objectif)',
@@ -102,8 +102,10 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'label_montants_explication' => 'Texte d\'explication des montants',
        'label_montants_label' => 'Label pour le champ « montants »',
        'label_nom' => 'Nom',
+       'label_objectif_oui_non' => 'Fixer un objectif à cette campagne',
        'label_objectif' => 'Niveau de l\'objectif',
        'label_objectif_initial' => 'Niveau initial de la campagne',
+       'label_objectif_groupe' => 'Definition de l\'objectif de la campagne',
        'label_pays' => 'Pays',
        'label_prenom' => 'Prénom',
        'label_recu_fiscal' => 'Recevoir un reçu fiscal',