Changeset 117754 in spip-zone


Ignore:
Timestamp:
Sep 6, 2019, 4:37:19 PM (6 months ago)
Author:
maieul@…
Message:

Et enfin ce js commun. Reste à tester avec deux formulaires sur la même
page.

Location:
_plugins_/saisies/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/saisies/trunk/inc/ancien-generer-js.php

    r117748 r117754  
    1818        $code .= "\tverifier_saisies_".$id_form." = function(form){\n";
    1919
    20         if (!defined('_SAISIES_AFFICHER_SI_JS_SHOW')) {
    21                 define ('_SAISIES_AFFICHER_SI_JS_SHOW', 'show(400)');
    22         }
    23         if (!defined('_SAISIES_AFFICHER_SI_JS_HIDE')) {
    24                 define ('_SAISIES_AFFICHER_SI_JS_HIDE', 'hide(400)');
    25         }
    2620        foreach ($saisies as $saisie) {
    2721                // on utilise comme selecteur l'identifiant de saisie en priorite s'il est connu
     
    3630                                        '_'
    3731                        );
    38                         // retrouver la classe css probable
    39                         switch ($saisie['saisie']) {
    40                                 case 'fieldset':
    41                                         $class_li = 'fieldset_'.$nom_underscore;
    42                                         break;
    43                                 case 'explication':
    44                                         $class_li = 'explication_'.$nom_underscore;
    45                                         break;
    46                                 default:
    47                                         // Les [] dans le nom de la saisie sont transformés en _ dans le
    48                                         // nom de la classe, il faut faire pareil
    49                                         $class_li = 'editer_'.$nom_underscore;
    50                         }
    51                         $condition = trim($saisie['options']['afficher_si']);
    52                         // retrouver l'identifiant
    53                         $identifiant = '';
    54                         if (isset($saisie['identifiant']) and $saisie['identifiant']) {
    55                                 $identifiant = $saisie['identifiant'];
    56                         }
    57                         // On transforme en une condition valide
    58                         preg_match_all('#@(.+)@#U', $condition, $matches);
    59                         }
    60                         if ($identifiant) {
    61                                 $sel = "[data-id='$identifiant']";
    62                         } else {
    63                                 $sel = ".$class_li";
    64                         }
    65                         $code .= "\tif (".$condition.") {\n"
    66                                                          .      "\t\t$(form).find(\"$sel\")."._SAISIES_AFFICHER_SI_JS_SHOW.".addClass('afficher_si_visible').removeClass('afficher_si_masque');\n";
    67                         if (html5_permis()) {
    68                         $code .=        "\t\t$(form).find(\"$sel [data-afficher-si-required]\").attr(\"required\",true).attr(\"data-afficher-si-required\",null);\n";
    69                         }
    70                         $code .=        "\t}\n";
    71                         $code .= "\telse {\n";
    72                         if (html5_permis()) {
    73                                 $code .= "\t\t$(form).find(\"$sel [required]\").attr(\"required\",false).attr(\"data-afficher-si-required\",true);\n";
    74                         }
    75                         $code .= "\t\tif (chargement==true) {\n"
    76                                         ."\t\t\t$(form).find(\"$sel\")."._SAISIES_AFFICHER_SI_JS_HIDE.".addClass('afficher_si_masque').removeClass('afficher_si_visible').css".'("display","none")'.";\n"
    77                                         ."\t\t}\n"
    78                                         ."\t\telse {\n"
    79                                         ."\t\t\t$(form).find(\"$sel\")."._SAISIES_AFFICHER_SI_JS_HIDE.".addClass('afficher_si_masque').removeClass('afficher_si_visible');\n"
    80                                         ."\t\t};\n"
    81                                         ."\t}\n";
    82                 }
    8332        }
    84         $code .= "$(form).trigger('saisies_afficher_si_js_ok');\n";
    85         $code .= "};\n";
    86         $code .= "\t".'$("#afficher_si_'.$id_form.'").parents("form").each(function(){'."\n\t\t".'verifier_saisies_'.$id_form.'(this);});'."\n";
    87         $code .= "\t".'$("#afficher_si_'.$id_form.'").parents("form").change(function(){'."\n\t\t".'verifier_saisies_'.$id_form.'(this);});'."\n";
    88         $code .= "\tchargement=false;})\n";
    8933
    90         if (!defined('_SAISIES_AFFICHER_SI_JS_LISIBLE')) {
    91                 define('_SAISIES_AFFICHER_SI_JS_LISIBLE', false);
    92         }
    93         if (!_SAISIES_AFFICHER_SI_JS_LISIBLE) {
    94                 // il suffit de régler cette constante à TRUE pour afficher le js de manière plus lisible (et moins sibyllin)
    95                 $code = str_replace("\n", '', $code); //concatener
    96                 $code = str_replace("\t", '', $code); //concatener
    97         }
    98         return $i > 0 ? $code : '';
    9934}
    10035
  • _plugins_/saisies/trunk/javascript/afficher_si.js.html

    r117750 r117754  
    1414        }
    1515)
    16 [(#REM) #EVAL et pas #CONST pour compatibilité SPIP <3.2]
     16[(#REM) EVAL et pas CONST pour compatibilité SPIP <3.2]
    1717function verifier_afficher_si(form, saisie, chargement=false) {
    1818        var condition = saisie.attr('data-afficher_si');
     
    2020        if (condition) {
    2121                saisie.[(#EVAL{_SAISIES_AFFICHER_SI_JS_SHOW})];
     22                saisie.removeClass('afficher_si_masque').addClass('afficher_si_visible');
     23                saisie.find('[data-afficher-si-required]').attr('required', true).attr('data-afficher-si-required',false);
    2224        } else {
    2325                if (chargement) {
     
    2628                        saisie.[(#EVAL{_SAISIES_AFFICHER_SI_JS_HIDE})];
    2729                }
     30                saisie.addClass('afficher_si_masque').removeClass('afficher_si_visible');
     31                saisie.find('[required]').attr('required', false).attr('data-afficher-si-required', null);
    2832        }
    2933}
Note: See TracChangeset for help on using the changeset viewer.