Changeset 109222 in spip-zone for _plugins_/pays/trunk


Ignore:
Timestamp:
Mar 1, 2018, 4:52:30 PM (8 months ago)
Author:
cedric@…
Message:

Gestion de l'option multiple sur la saisie pays : un JS d'aide a la selection et fix de la vue qui ne savait pas gerer le tableau comme valeur

Location:
_plugins_/pays/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/pays/trunk/paquet.xml

    r106754 r109222  
    22        prefix="pays"
    33        categorie="divers"
    4         version="3.1.12"
     4        version="3.2.0"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.2.*]"
  • _plugins_/pays/trunk/saisies-vues/pays.html

    r46356 r109222  
    11<BOUCLE_code(CONDITION){si #ENV{code_pays}|=={oui}}>
    2         <BOUCLE_pays_code(PAYS){code = #ENV*{valeur}}>
    3                 #NOM
    4         </BOUCLE_pays_code>
     2        <BOUCLE_pays_code(PAYS){code IN #ENV*{valeur}|is_array|?{#ENV*{valeur},#LISTE{#ENV*{valeur}}}}{', '}>
     3                #NOM</BOUCLE_pays_code>
    54</BOUCLE_code>
    6         <BOUCLE_pays_id(PAYS){id_pays = #ENV*{valeur}}>
    7                 #NOM
    8         </BOUCLE_pays_id>
     5        <BOUCLE_pays_id(PAYS){id_pays IN #ENV*{valeur}|is_array|?{#ENV*{valeur},#LISTE{#ENV*{valeur}}}}{', '}>
     6                #NOM</BOUCLE_pays_id>
    97<//B_code>
  • _plugins_/pays/trunk/saisies/pays.html

    r98718 r109222  
    2222                label=<:plugin:info_pays:>})]
    2323]<select name="#ENV{nom}[(#ENV{multiple}|?{\[\]})]" id="champ_[(#ENV{id,#ENV{nom}}|saisie_nom2classe)]"[ class="(#ENV{class})"][(#ENV{multiple}|oui) multiple="multiple"[ size="(#ENV{size})"]][ disabled="(#ENV{disable})"][ readonly="(#ENV{readonly})"][ (#ENV*{attributs})]>
     24        #SET{selected,#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut}}}}
    2425        [(#ENV{cacher_option_intro}|ou{#ENV{multiple}}|non)
    2526        <option value="">[(#ENV{option_intro})]</option>]
     
    4243        (#SET{label,#GET{mapping_champs/#GET{champ_pays}/label}})
    4344        ][(#ENV{multiple}|oui)
    44                 <option value="#GET{pays}"[(#GET{pays}|in_array{#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut,#ARRAY}}}}|oui) selected="selected"]>[(#GET{label})]</option>]
     45                <option value="#GET{pays}"[(#GET{pays}|in_array{#GET{selected}|is_array|?{#GET{selected},#GET{selected}|explode{','}}}|oui) selected="selected"]>[(#GET{label})]</option>]
    4546                [(#ENV{multiple}|non)
    46                 <option value="#GET{pays}"[(#GET{pays}|=={#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut}}}}|oui) selected="selected"]>[(#GET{label})]</option>]
     47                <option value="#GET{pays}"[(#GET{pays}|=={#GET{selected}}|oui) selected="selected"]>[(#GET{label})]</option>]
    4748        </BOUCLE_pays>
    4849</select>
     50[(#ENV{multiple}|oui)
     51<div class="explication liste-selection"></div>
     52<script type="text/javascript">
     53(function(){
     54        var id = 'champ_[(#ENV{id,#ENV{nom}}|saisie_nom2classe)]';
     55        function actualise_liste_selection(){
     56                var selected = \[\];
     57                jQuery('#'+id).find(':selected').each(function(){selected.push(jQuery(this).html())});
     58                jQuery('#'+id+' + .liste-selection').html(selected.join(', '));
     59        }
     60        jQuery(actualise_liste_selection);
     61        jQuery('#'+id).on('change', actualise_liste_selection);
     62})();
     63</script>
     64]
Note: See TracChangeset for help on using the changeset viewer.