Changeset 111153 in spip-zone


Ignore:
Timestamp:
Jul 17, 2018, 10:14:09 AM (3 years ago)
Author:
tcharlss@…
Message:

Plan des chapitres : quand on dépliait un noeud, les liens à l'intérieur n'étaient pas cliquables -> relancer la fonction. Il reste un bug : quand on sélectionne programmatiquement un noeud (le chapitre en cours), la lib est censée ouvrir les parents mais ça ne fonctionne pas, cf. https://github.com/vakata/jstree/issues/1623.

Location:
_plugins_/chapitres/trunk
Files:
2 edited

Legend:

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

    r110636 r111153  
    22        prefix="chapitres"
    33        categorie="edition"
    4         version="1.0.27"
     4        version="1.0.28"
    55        etat="dev"
    66        compatibilite="[3.2.0;3.2.*]"
  • _plugins_/chapitres/trunk/prive/javascript/chapitres_plan.js

    r110636 r111153  
    22 * Chapitres : gestion du plan
    33 *
    4  * Mettre ne jstree
     4 * Mettre en jstree
    55 * Mettre en sticky
    66 */
     
    88
    99        var plan = '#chapitres-plan';
    10         var plan_parent = '.chapitres-plan';
     10        var plan_conteneur = '.chapitres-plan';
    1111
    1212        // Initialiser jstree
     
    2323        $(plan).bind('ready.jstree', function(e, data) {
    2424
    25                 // Déplier ceux à la racine
    26                 $(this).jstree('open_node', $(plan + ' > ul > li'));
    27                 // Déplier le chapitre en cours (toute la branche si vue complète)
     25                // Déplier le chapitre ou la branche en cours
    2826                if ($(this).hasClass('editables')) {
    2927                        $(this).jstree('open_all', $(plan + ' li.expose'));
     
    3129                        $(this).jstree('open_node', $(plan + ' li.expose'));
    3230                }
    33                 // Sélectionner le chapitre en cours
    34                 $(this).jstree('select_node', $(plan + ' li.expose'));
     31                // Sélectionner le chapitre en cours (censé ouvrir les parents mais ne fonctionne pas)
     32                $(this).jstree('select_node', $(plan + ' li.expose'), true, false);
     33
    3534                // Liens cliquables
    36                 $(plan + ' li a').click(function(e) {
    37                         var href = $(this).attr('href');
    38                         if (href !== '#') {
    39                                 document.location.href = href;
    40                         }
    41                 });
     35                liens_cliquables();
    4236
    4337                // Boutons de pliage
    44                 $(plan_parent + ' .pliage a').click(function(e) {
     38                $(plan_conteneur + ' .pliage a').click(function(e) {
    4539                        if ($(this).data('pliage') == 'deplier') {
    4640                                $(plan).jstree('open_all');
     
    5246
    5347                // Sticky
    54                 $(plan_parent).stick_in_parent({
     48                $(plan_conteneur).stick_in_parent({
    5549                        parent: '#navigation'
    5650                });
    5751                // Recalculer le sticky avec le pliage
    5852                $(plan).on('open_all.jstree', function(){
    59                         $(plan_parent).trigger('sticky_kit:recalc');
     53                        $(plan_conteneur).trigger('sticky_kit:recalc');
    6054                });
    6155                $(plan).on('close_all.jstree', function(){
    62                         $(plan_parent).trigger('sticky_kit:recalc');
     56                        $(plan_conteneur).trigger('sticky_kit:recalc');
    6357                });
    6458
    6559        });
    6660
     61        // Liens cliquables lors des changements
     62        $(plan).bind('open_node.jstree open_all.jstree view_all', function(e, data) {
     63                liens_cliquables();
     64        });
     65        function liens_cliquables(){
     66                $(plan + ' li a').click(function(e) {
     67                        var href = $(this).attr('href');
     68                        if (href !== '#') {
     69                                document.location.href = href;
     70                        }
     71                });
     72        }
     73
    6774});
Note: See TracChangeset for help on using the changeset viewer.