Subversion Repositories Applications.reseau

Rev

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

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