Ignore:
Timestamp:
Sep 26, 2019, 5:04:10 PM (13 months ago)
Author:
root
Message:

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:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/acces_restreint/trunk/formulaires/editer_zone.html

    r107230 r117969  
    4545                </[(#DIV|sinon{ul})]>
    4646               
    47                 <fieldset>
     47                <fieldset class="rubriques">
    4848                        <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>
    4953                        [(#INCLURE{fond=formulaires/inc-select_rubriques}{rubriques=#ENV{rubriques}})]
    5054                </fieldset>
     
    5660        ]
    5761</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 TracChangeset for help on using the changeset viewer.