refactoring formulaire edition campagne, en HTML, avec meilleure lisibilite/accessibilite
authorCerdic <cedric@yterium.com>
Fri, 6 Dec 2013 17:10:22 +0000 (18:10 +0100)
committerCerdic <cedric@yterium.com>
Mon, 9 Dec 2013 09:46:34 +0000 (10:46 +0100)
formulaires/configurer_souscription.html
formulaires/editer_souscription_campagne.html
formulaires/editer_souscription_campagne.php
formulaires/inc-formulaires-suite.html [new file with mode: 0644]
lang/souscription_campagne_fr.php

index b96dd83..1c2010d 100644 (file)
        </div>
        </form>
 </div>
-<script type="text/javascript">
-       jQuery(function(){
-               jQuery(".suite.fieldset").each(function(){
-                       var me=this;
-                       jQuery(me).prev(".editer").find("input.checkbox").click(function(){
-                               if (jQuery(this).prop("checked"))
-                                       jQuery(me).show('fast');
-                               else
-                                       jQuery(me).hide('fast');
-                       })
-               })
-       })
-</script>
-<style>
-input.checkbox:checked+label {font-weight: bold;}
-li.fieldset.adhesion {margin-bottom: 1em}
-li.suite {margin-left: 40px;}
-</style>
\ No newline at end of file
+<INCLURE{fond=formulaires/inc-formulaires-suite} />
index d330355..e59fdc7 100644 (file)
@@ -7,7 +7,119 @@
       #ACTION_FORMULAIRE{#ENV{action}}
 
       <ul>
-      #GENERER_SAISIES{#ENV{_saisies}}
+             #SET{name,titre}#SET{obli,'obligatoire'}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+        <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+          <label for="#GET{name}"><:souscription:label_titre:> <:info_obligatoire_02:></label>[
+          <span class='erreur_message'>(#GET{erreurs})</span>
+          ]<input type="text" name="#GET{name}" class="text" value="#ENV*{#GET{name},#GET{defaut}}" id="#GET{name}" [(#HTML5|et{#GET{obli}})required='required']/>
+        </li>
+             #SET{name,type_objectif}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+        <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+          <label for="#GET{name}"><:souscription:label_type_objectif:></label>[
+          <span class='erreur_message'>(#GET{erreurs})</span>
+          ]<select name="#GET{name}" class="select" id="#GET{name}">
+            #SET{val,don}
+            <option value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)selected="selected"]><:souscription_campagne:label_type_objectif_dons:></option>
+            #SET{val,adhesion}
+            <option value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)selected="selected"]><:souscription_campagne:label_type_objectif_adhesions:></option>
+          </select>
+               <p class="explication"><:souscription:explication_type_objectif:></p>
+        </li>
+             #SET{name,texte}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+                               <li class="editer pleine_largeur editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+                                       <label for="#GET{name}"><:souscription:label_description:></label>[
+                                       <span class='erreur_message'>(#GET{erreurs})</span>
+                                       ]<textarea name="#GET{name}" class="textarea" rows="10">
+#ENV*{#GET{name},#GET{defaut}}</textarea>
+                               </li>
+             #SET{name,objectif_oui_non}#SET{obli,''}#SET{defaut,#ENV{_defaut_objectif,''}}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+             <li class="editer pleine_largeur editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[
+                       <span class='erreur_message'>(#GET{erreurs})</span>
+                       ]
+                       #SET{val,''}
+                       <input type="hidden" name="#GET{name}" value="#GET{val}" />
+                       #SET{val,on}
+                       <div class="choix">
+                               <input type="checkbox" name="#GET{name}" class="checkbox" id="#GET{name}_#GET{val}" value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)checked="checked"] />
+                               <label for="#GET{name}_#GET{val}"><:souscription:label_objectif_oui_non:></label>
+                       </div>
+               </li>
+             <li class="suite fieldset limite[(#ENV{#GET{name},#GET{defaut}}|=={on}|non)none]">
+                       <fieldset>
+                               <legend><:souscription:label_objectif_groupe:></legend>
+                               <ul>
+                                     #SET{name,objectif}#SET{obli,'obligatoire'}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+                               <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+                                 <label for="#GET{name}"><:souscription:label_objectif:> <:info_obligatoire_02:></label>[
+                                 <span class='erreur_message'>(#GET{erreurs})</span>
+                                 ]<input type="text" name="#GET{name}" class="text" value="#ENV*{#GET{name},#GET{defaut}}" id="#GET{name}"/>
+                                       <p class="explication"><:souscription:explication_campagne_objectif:></p>
+                               </li>
+                                     #SET{name,objectif_initial}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+                               <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+                                 <label for="#GET{name}"><:souscription:label_objectif_initial:></label>[
+                                 <span class='erreur_message'>(#GET{erreurs})</span>
+                                 ]<input type="text" name="#GET{name}" class="text" value="#ENV*{#GET{name},#GET{defaut}}" id="#GET{name}" [(#HTML5|et{#GET{obli}})required='required']/>
+                                       <p class="explication"><:souscription:explication_campagne_objectif_initial:></p>
+                               </li>
+                                     #SET{name,objectif_limiter}#SET{obli,''}#SET{defaut,#ENV{_defaut_objectif,''}}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+                                     <li class="editer pleine_largeur editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[
+                                               <span class='erreur_message'>(#GET{erreurs})</span>
+                                               ]
+                                               #SET{val,''}
+                                               <input type="hidden" name="#GET{name}" value="#GET{val}" />
+                                               #SET{val,on}
+                                               <div class="choix">
+                                                       <input type="checkbox" name="#GET{name}" class="checkbox" id="#GET{name}_#GET{val}" value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)checked="checked"] />
+                                                       <label for="#GET{name}_#GET{val}"><:souscription:label_objectif_limite:></label>
+                                               </div>
+                                             <p class="explication"><:souscription:explication_campagne_objectif_limite:></p>
+                                       </li>
+                             </ul>
+                     </fieldset>
+             </li>
+             #SET{name,configuration_specifique}#SET{obli,''}#SET{defaut,#ENV{_defaut_objectif,''}}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+             <li class="editer pleine_largeur editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[
+                       <span class='erreur_message'>(#GET{erreurs})</span>
+                       ]
+                       #SET{val,''}
+                       <input type="hidden" name="#GET{name}" value="#GET{val}" />
+                       #SET{val,on}
+                       <div class="choix">
+                               <input type="checkbox" name="#GET{name}" class="checkbox" id="#GET{name}_#GET{val}" value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)checked="checked"] />
+                               <label for="#GET{name}_#GET{val}"><:souscription:label_configuration_specifique:></label>
+                       </div>
+                     <p class="explication"><:souscription:explication_configuration_specifique:></p>
+               </li>
+             <li class="suite fieldset configuration_specifique[(#ENV{#GET{name},#GET{defaut}}|=={on}|non)none]">
+                       <fieldset>
+                               <legend><:souscription:label_objectif_groupe:></legend>
+                               <ul>
+                                     #SET{name,type_saisie}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+                         <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+                           <label for="#GET{name}"><:souscription:label_type_saisie:></label>[
+                           <span class='erreur_message'>(#GET{erreurs})</span>
+                           ]<select name="#GET{name}" class="select" id="#GET{name}">
+                             #SET{val,input}
+                             <option value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)selected="selected"]><:souscription:configurer_type_saisie_input:></option>
+                             #SET{val,radio}
+                             <option value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)selected="selected"]><:souscription:configurer_type_saisie_radio:></option>
+                             #SET{val,selection}
+                             <option value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)selected="selected"]><:souscription:configurer_type_saisie_selection:></option>
+                           </select>
+                                 <p class="explication"><:souscription:explication_type_saisie:></p>
+                         </li>
+                                     #SET{name,montants}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+                         <li class="editer pleine_largeur editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+                           <label for="#GET{name}"><:souscription:label_montants:></label>[
+                           <span class='erreur_message'>(#GET{erreurs})</span>
+                           ]<textarea name="#GET{name}" class="textarea" rows="4">
+#ENV*{#GET{name},#GET{defaut}}</textarea>
+                           <p class="explication"><:souscription:explication_montants:></p>
+                         </li>
+                             </ul>
+                     </fieldset>
+             </li>
       </ul>
 
       <p class="boutons"><input type="submit" class="submit" value="<:souscription:confirmer_creation_campagne:>" /></p>
   </form>
   ]
 </div>
+<INCLURE{fond=formulaires/inc-formulaires-suite} />
+<script type="application/javascript">
+function up_visibility_montants(){
+       var val = jQuery('select[name="type_saisie"]').val();
+       console.log(val);
+       if (val=="input")
+               jQuery(".editer_montants").hide('fast');
+       else
+               jQuery(".editer_montants").show('fast');
+}
+jQuery(function(){
+       up_visibility_montants();
+       jQuery('select[name="type_saisie"],input.checkbox[name="configuration_specifique"]').change(up_visibility_montants);
+});
+</script>
index 000ac5c..3dbc733 100644 (file)
@@ -40,88 +40,14 @@ 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',
-                                           'label' => _T('souscription:label_titre'),
-                                           'obligatoire' => 'oui')
-                        ),
-                  array('saisie' => 'selection',
-                        'options' => array('nom' => 'type_objectif',
-                                           'obligatoire' => 'oui',
-                                           'label' => _T('souscription:label_type_objectif'),
-                                           'explication' => _T('souscription:explication_type_objectif'),
-                                           'datas' => array('don' => 'Dons',
-                                                            'adhesion' => 'Adhésions'))
-                        ),
-                  array('saisie' => 'oui_non',
-                        'options' => array('nom' => 'objectif_oui_non',
-                                           'label' => _T('souscription:label_objectif_oui_non'),
-                                           'defaut' => $defaut_objectif)
-                        ),
-                  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' => 'oui_non',
-                                                 'options' => array('nom' => 'objectif_limiter',
-                                                                    'explication' => _T('souscription:explication_campagne_objectif_limite'),
-                                                                    'label' => _T('souscription:label_objectif_limite')))
-                                           ),
-                        ),
-                  array('saisie' => 'oui_non',
-                        'options' => array('nom' => 'configuration_specifique',
-                                           'label' => _T('souscription:label_configuration_specifique'),
-                                           'explication' => _T('souscription:explication_configuration_specifique'),
-                                           'defaut' => $defaut_objectif)
-                        ),
-                  array('saisie' => 'fieldset',
-                        'options' => array('nom' => 'groupe_configuration_specifique',
-                                           'label' => _T('souscription:label_objectif_groupe'),
-                                           'afficher_si' => '@configuration_specifique@ == "on"'),
-                        'saisies' => array(array('saisie' => 'selection',
-                                                 'options' => array('nom' => 'type_saisie',
-                                                                    'label' => _T('souscription:label_type_saisie'),
-                                                                    'explication' => _T('souscription:explication_type_saisie'),
-                                                                    'datas' => array("input" => _T("souscription:configurer_type_saisie_input"),
-                                                                                     "radio" => _T("souscription:configurer_type_saisie_radio"),
-                                                                                     "selection" => _T("souscription:configurer_type_saisie_selection")),
-                                                                    'defaut' => 'input')
-                                                 ),
-                                           array('saisie' => 'textarea',
-                                                 'options' => array('nom' => 'montants',
-                                                                    'label' => _T('souscription:label_montants'),
-                                                                    'explication' => _T('souscription:explication_montants'),
-                                                                    'afficher_si' => '@type_saisie@ == "radio" || @type_saisie@ == "selection"',
-                                                                    'rows' => 4))
-                                           ),
-                        ),
-                  array('saisie' => 'textarea',
-                        'options' => array('nom' => 'texte',
-                                           'label' => _T('souscription:label_description'),
-                                           'inserer_barre' => 'edition',
-                                           'rows' => '10'))
-                  );
-
-  $valeurs['_saisies'] = $saisies;
+       $valeurs['_defaut_objectif'] = "";
+  if($valeurs['objectif'] AND $valeurs['objectif'] > 0)
+         $valeurs['_defaut_objectif'] = "on";
+
+       // pour la saisie uniquement, pas en base
+       $valeurs['objectif_oui_non'] = "";
 
   return $valeurs;
 }
diff --git a/formulaires/inc-formulaires-suite.html b/formulaires/inc-formulaires-suite.html
new file mode 100644 (file)
index 0000000..3ddde71
--- /dev/null
@@ -0,0 +1,18 @@
+<script type="text/javascript">
+       jQuery(function(){
+               jQuery(".suite.fieldset").each(function(){
+                       var me=this;
+                       jQuery(me).prev(".editer").find("input.checkbox").click(function(){
+                               if (jQuery(this).prop("checked"))
+                                       jQuery(me).show('fast');
+                               else
+                                       jQuery(me).hide('fast');
+                       })
+               })
+       })
+</script>
+<style>
+input.checkbox:checked+label {font-weight: bold;}
+li.fieldset.adhesion {margin-bottom: 1em}
+li.suite {margin-left: 40px;}
+</style>
\ No newline at end of file
index 234a9ed..9c9fd66 100644 (file)
@@ -22,5 +22,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'titre_souscription_campagne' => 'Campagne',
        'titre_souscription_campagnes' => 'Campagnes',
 
+       'label_type_objectif_dons' => 'Dons',
+       'label_type_objectif_adhesions' => 'Adhésions',
+
 );
 ?>