Subversion Repositories Applications.reseau

Rev

Rev 22 | Rev 24 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

/**
 * Charge la barre de navigation depuis le widget:reseau:navigation dans un <div id="tb-navigation"> , s'il existe
 * dans la page appelante.
 * 
 * Nécessite jQuery
 * 
 * Utilisation :
 *      - prévoir un <div id="tb-navigation"> dans la page, qui accueillera la barre de navigation.
 *      - si ce <div> contient déjà quelque chose, son contenu sera reporté à la place de la zone ayant l'id "contenu-source"
 *        de la barre de navigation (si une telle zone existe)
 *  - si ce <div> contient un attribut "data-courant" et si la valeur de cet attribut correspond à l'id d'un des éléments
 *    de navigation, alors cet élément aura la classe "active" (pour localiser la page courante dans les menus)
 *  - si ce <div> contient un attribut "data-squelette", alors le widget de navigation sera appelé avec le paramètre
 *    "?squelette=contenu-de-data-squelette"; se reporter à la documentation du widget:reseau:navigation
 */

$(document).ready(function() {
        var div = $('#tb-navigation');
        if (div) {
                var squelette = div.data('squelette'),
                        courant = div.data('courant'),
                        contenu = div.html();

                // chargement de la barre
                var urlBarreNavigation = 'http://localhost/widget:reseau:navigation';
                if (squelette) {
                        urlBarreNavigation += '?squelette=' + squelette;
                }
                htmlBarre = $.ajax({
                        url: urlBarreNavigation,
                        type: 'get',
                        success: function(data) {
                                div.html(data);
                                // activation de l'entrée de menu
                                if (courant) {
                                        var menuCourant = div.find('#' + courant);
                                        if (menuCourant) {
                                                menuCourant.addClass('active');
                                        }
                                }
                                // remplacement de la zone contenu-source
                                var zoneSource = div.find('#contenu-source');
                                if (zoneSource) {
                                        zoneSource.replaceWith(contenu);
                                }
                        },
                        error: function() {
                                div.html('Erreur: impossible de charger la barre de navigation');
                        }
                });
        }
});