source: spip-zone/_plugins_/lim/trunk/formulaires/inc-choisir-rubriques.html @ 123191

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

Gestion des contenus par rubrique : nouvelle fonctionnalité « cadenasser » un objet. A la création d’une rubrique, l’objet est alors automatiquement exclu de cette rubrique.

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