source: spip-zone/_plugins_/acces_restreint/trunk/formulaires/editer_zone.html @ 117969

Last change on this file since 117969 was 117969, checked in by root, 12 months ago

Formulaire d'édition d'une zone : ajout d'un petit widget pour filtrer la liste des rubriques, exactement sur le même principe que la liste des plugins dans SVP : on tape les 1ères lettres, et hop, la liste n'affiche que les rubriques correspondantes en direct. Quand la liste est très longue, ça aide à retrouver une rubrique précise.

File size: 4.9 KB
Line 
1<div class="formulaire_spip formulaire_editer formulaire_editer_zone formulaire_editer_zone-#ENV{id_zone,nouveau}">
2        [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
3        [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV**{message_erreur})</p>]
4        [(#ENV{editable})
5        <form method="post" action="#ENV{action}" enctype="multipart/form-data"><div>
6                [(#REM) declarer les hidden qui declencheront le service du formulaire
7                parametre : url d'action ]
8                #ACTION_FORMULAIRE{#ENV{action}}
9                <input type="hidden" name="id_zone" value="#ENV{id_zone}" />
10                <[(#DIV|sinon{ul})] class="editer-groupe">
11                        <[(#DIV|sinon{li})] class="editer editer_titre obligatoire[ (#ENV**{erreurs}|table_valeur{titre}|oui)erreur]">
12                                <label for="titre"><:accesrestreint:label_titre_zone:></label>[
13                                        <span class="erreur_message">(#ENV**{erreurs}|table_valeur{titre})</span>
14                                        ]<input type="text" class="text" name="titre" id="titre" value="#ENV{titre}" />
15                        </[(#DIV|sinon{li})]>
16                </[(#DIV|sinon{ul})]>
17                       
18                <fieldset>
19                        <legend><:accesrestreint:label_droits_acces:></legend>
20                        <[(#DIV|sinon{ul})] class="editer-groupe">
21                                [(#ENV{id_zone}|intval|non|et{#AUTORISER{modifier,zone}})
22                                <[(#DIV|sinon{li})] class="editer editer_droits_admin pleine_largeur">
23                                        <div class="choix"><input type="checkbox" name="droits_admin" value="oui" id="droits_admin" checked="checked" />
24                                        <label for="droits_admin"><:accesrestreint:ajouter_droits_auteur:></label></div>
25                                </[(#DIV|sinon{li})]>]
26                                <[(#DIV|sinon{li})] class="editer editer_publique_privee pleine_largeur">
27                                        <div class="choix"><input type="checkbox" name="publique" value="oui" id="publique"[ (#PUBLIQUE|=={oui}|oui)checked="checked"] />
28                                        <label for="publique"><:accesrestreint:zone_restreinte_publique:></label></div>
29                                        <div class="choix"><input type="checkbox" name="privee" value="oui" id="privee"[ (#PRIVEE|=={oui}|oui)checked="checked"] />
30                                        <label for="privee"><:accesrestreint:zone_restreinte_espace_prive:></label></div>
31                                </[(#DIV|sinon{li})]>
32                                <[(#DIV|sinon{li})] class="editer editer_autoriser_si_connexion pleine_largeur">
33                                        <div class="choix"><input type="checkbox" name="autoriser_si_connexion" value="oui" id="autoriser_si_connexion"[ (#AUTORISER_SI_CONNEXION|=={oui}|oui)checked="checked"] />
34                                        <label for="autoriser_si_connexion"><:accesrestreint:zone_restreinte_autoriser_si_connexion_label:></label></div>
35                                </[(#DIV|sinon{li})]>
36                        </[(#DIV|sinon{ul})]>
37                </fieldset>
38
39                <[(#DIV|sinon{ul})] class="editer-groupe">
40                        <[(#DIV|sinon{li})] class="editer editer_descriptif[ (#ENV**{erreurs}|table_valeur{descriptif}|oui)erreur]">
41                                <label for="descriptif"><:accesrestreint:descriptif:></label>[
42                                <span class="erreur_message">(#ENV**{erreurs}|table_valeur{descriptif})</span>
43                                ]<textarea name="descriptif" rows="5" id="descriptif">[(#ENV{descriptif})]</textarea>
44                        </[(#DIV|sinon{li})]>
45                </[(#DIV|sinon{ul})]>
46               
47                <fieldset class="rubriques">
48                        <legend><:accesrestreint:rubriques_zones_acces:></legend>
49                        <div class="filtrer">
50                                <label for="filtrer_rubriques"><:accesrestreint:label_filtrer_rubriques:> :</label>
51                                <input type="input" id="filtrer_rubriques" placeholder="<:accesrestreint:placeholder_filtrer_rubriques|attribut_html:>">
52                        </div>
53                        [(#INCLURE{fond=formulaires/inc-select_rubriques}{rubriques=#ENV{rubriques}})]
54                </fieldset>
55
56                [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
57                <!--extra-->
58                <p class="boutons"><input type="submit" class="submit" value="[(#ENV{id_zone}|?{<:bouton_enregistrer:>,<:bouton_ajouter:>})]" /></p>
59        </div></form>
60        ]
61</div>
62
63<script type="text/javascript">
64        /*<![CDATA[*/
65                (function($){
66
67                        var tous_les_elements = $('.formulaire_editer_zone ul.hierarchie li');
68                        console.log(tous_les_elements);
69
70                        // on filtre les plugins
71                        $('input#filtrer_rubriques').keyup(function(){
72                                var that = this;
73                                jQuery('.formulaire_editer_zone .rubriques > legend').attr('data-filtrer',$(this).val());
74                                var elements_trouves = tous_les_elements.filter(function(i, li){
75                                        var listItemText = $(li).text().toUpperCase()
76                                        searchText       = that.value.toUpperCase();
77                                        return ~listItemText.indexOf(searchText);
78                                });
79                                tous_les_elements.hide();
80                                elements_trouves.show();
81                        });
82
83                        onAjaxLoad(refiltrer);
84
85                        // Au rechargement de la page et lors du chargement du descriptif d'un plugin
86                        // on recupere l'éventuel filtre et on l'applique si présent
87                        function refiltrer(){
88                                if (jQuery('.formulaire_editer_zone .rubriques > legend').attr('data-filtrer')) {
89                                        var elements_trouves = tous_les_elements.filter(function(i, li){
90                                                var listItemText = $(li).text().toUpperCase()
91                                                var searchText = jQuery('.formulaire_editer_zone .rubriques > legend').attr('data-filtrer');
92                                                jQuery('input#filtrer_rubriques').val(searchText);
93                                                return ~listItemText.indexOf(searchText.toUpperCase());
94                                        });
95                                        tous_les_elements.hide();
96                                        elements_trouves.show();
97                                }
98                        }
99
100                })(jQuery);
101
102        /*]]>*/
103</script>
Note: See TracBrowser for help on using the repository browser.