source: spip-zone/_plugins_/lim/branches/V2/formulaires/inc-choisir-rubriques.html @ 123298

Last change on this file since 123298 was 123298, checked in by peetdu@…, 3 months ago

Gestion Contenus par rubrique : ne plus recharger la page après avoir cadenassé un objet car pose problème UX.

  • Property svn:executable set to *
File size: 3.4 KB
Line 
1[(#REM) Récupérer les objets sélectionnés et la chaine de langue correspondante traduite.]
2#SET{traductions, #REM|lim_get_rubriques_objets}
3
4<div class="grid_rub">
5        <div></div>
6        <BOUCLE_entete2(DATA){source tableau,#GET{traductions}}{par valeur}>
7                #SET{type_obj, #CLE|objet_type}
8                <div class="center">
9                        <img src='#CHEMIN_IMAGE{#GET{type_obj}-24.png}'><br>
10                        <span>#VALEUR</span><br>
11                        #SET{table, #CLE|table_objet_sql}
12                        <input class="type_lock" type="checkbox" data-objet='#CLE' [checked="(#CLE|lim_valeur_cadenas)"]>
13                        [(#CLE|lim_valeur_cadenas|?{🔒,🔓})]
14                </div>
15        </BOUCLE_entete2>
16        #SET{nbre_objets, #TOTAL_BOUCLE}
17        </B_entete2>
18</div>
19
20<BOUCLE_titre_rubrique(RUBRIQUES){racine}{par num titre,titre}{tout}>
21        <div class='pin'><img src='#CHEMIN_IMAGE{rubrique-16.png}'></div>
22        <div class='secteur'>
23                <div class="grid_rub">
24                        <div class="titre_rub"><a href="#URL_ECRIRE{rubrique,id_rubrique=#ID_RUBRIQUE}">#TITRE</a></div>
25                        <BOUCLE_par_traduction1(DATA){source tableau,#GET{traductions}}{par valeur}>
26                                [(#INCLURE{fond=formulaires/inc-input-rub,env,name=#CLE}{#CLE=#ENV{#CLE}}{id_rubrique=#ID_RUBRIQUE}{secteur=oui})]
27                        </BOUCLE_par_traduction1>
28                </div>
29                <BOUCLE_enfants_rubriques(RUBRIQUES){id_parent}{par num titre,titre}{tout}>
30                        <div class='grid_rub sousrub sousrub--#PROFONDEUR'>
31                                <div class="titre_rub"><a href="#URL_ECRIRE{rubrique,id_rubrique=#ID_RUBRIQUE}">#TITRE</a></div>
32                                <BOUCLE_par_traduction2(DATA){source tableau,#GET{traductions}}{par valeur}>
33                                [(#INCLURE{fond=formulaires/inc-input-rub,env,name=#CLE}{#CLE=#ENV{#CLE}}{id_rubrique=#ID_RUBRIQUE})]
34                                </BOUCLE_par_traduction2></div><BOUCLE_rec(BOUCLE_enfants_rubriques)/>
35                </BOUCLE_enfants_rubriques>
36        </div>
37</BOUCLE_titre_rubrique>
38
39<style type="text/css">
40.grid_rub {
41        display:grid;
42        grid-template-columns: 3fr repeat(#GET{nbre_objets}, 1fr);
43        justify-items: center;
44        align-items: center;
45}
46</style>
47
48<script type="text/javascript">
49(function($){
50        $(document).ready(function(){
51
52                jQuery(".rub_secteur input:checkbox").change(function(){
53                        var type = $(this).attr('name').slice(0,-2);
54                        var $check = "div.check." + type;
55                        if (jQuery(this).is(":checked")) {
56                                jQuery.each( jQuery(this).parent().parent().parent().find($check), function(index,item) {
57                                        jQuery(item).find('input').prop('checked',true);
58                                        jQuery(item).find('.lim_icon').removeClass('icon-on').addClass('icon-off');
59                                });
60                        } else {
61                                jQuery.each( jQuery(this).parent().parent().parent().find($check), function(index,item) {
62                                        jQuery(item).find('input').prop('checked',false);
63                                        jQuery(item).find('.lim_icon').removeClass('icon-off').addClass('icon-on');
64                                });
65                        }
66                });
67
68                jQuery("input.lim_hidden:checkbox").change(function(){
69                        var type = $(this).attr('name').slice(0,-2);
70                        var $check = "div.check." + type;
71                        if (jQuery(this).is(":checked")) {
72                                $(this).parent().find('.lim_icon').removeClass('icon-on').addClass('icon-off');
73                        } else {
74                                $(this).parent().find('.lim_icon').removeClass('icon-off').addClass('icon-on');
75                        }
76                });
77
78                jQuery("input.type_lock").on('click', function(){
79                        var $me = $(this);
80                        var type_objet = $(this).attr('data-objet');
81                        var url = "[(#VAL{lock_objet}|generer_url_action{'', 1})]";
82
83                        if (jQuery(this).is(":checked")) {
84                                var action = "add";
85                        } else {
86                                var action = "delete";
87                        }
88
89                        $.post(url, {objet: type_objet, quoi: action})
90                                .done(function(data){
91                        });
92                });
93        });
94})(jQuery);
95</script>
Note: See TracBrowser for help on using the repository browser.