Subversion Repositories Applications.reseau

Rev

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

Rev Author Line No. Line
21 mathias 1
/**
2
 * Charge la barre de navigation depuis le widget:reseau:navigation dans un <div id="tb-navigation"> , s'il existe
3
 * dans la page appelante.
4
 *
5
 * Nécessite jQuery
6
 *
7
 * Utilisation :
8
 *	- prévoir un <div id="tb-navigation"> dans la page, qui accueillera la barre de navigation.
23 mathias 9
 *	- si ce <div> contient déjà quelque chose, son contenu sera reporté à la place de la zone ayant l'id "contenu-source"
10
 *	  de la barre de navigation (si une telle zone existe)
21 mathias 11
 *  - si ce <div> contient un attribut "data-courant" et si la valeur de cet attribut correspond à l'id d'un des éléments
12
 *    de navigation, alors cet élément aura la classe "active" (pour localiser la page courante dans les menus)
13
 *  - si ce <div> contient un attribut "data-squelette", alors le widget de navigation sera appelé avec le paramètre
14
 *    "?squelette=contenu-de-data-squelette"; se reporter à la documentation du widget:reseau:navigation
15
 */
16
 
17
$(document).ready(function() {
18
	var div = $('#tb-navigation');
19
	if (div) {
20
		var squelette = div.data('squelette'),
21
			courant = div.data('courant'),
22
			contenu = div.html();
23
 
24
		// chargement de la barre
23 mathias 25
		var urlBarreNavigation = 'http://localhost/widget:reseau:navigation';
22 mathias 26
		if (squelette) {
23 mathias 27
			urlBarreNavigation += '?squelette=' + squelette;
21 mathias 28
		}
22 mathias 29
		htmlBarre = $.ajax({
23 mathias 30
			url: urlBarreNavigation,
22 mathias 31
			type: 'get',
32
			success: function(data) {
33
				div.html(data);
34
				// activation de l'entrée de menu
35
				if (courant) {
36
					var menuCourant = div.find('#' + courant);
37
					if (menuCourant) {
38
						menuCourant.addClass('active');
39
					}
40
				}
41
				// remplacement de la zone contenu-source
23 mathias 42
				var zoneSource = div.find('#contenu-source');
22 mathias 43
				if (zoneSource) {
23 mathias 44
					zoneSource.replaceWith(contenu);
22 mathias 45
				}
46
			},
47
			error: function() {
48
				div.html('Erreur: impossible de charger la barre de navigation');
49
			}
50
		});
21 mathias 51
	}
52
});