Subversion Repositories eFlore/Applications.eflore-consultation

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
507 jpm 1
$(document).ready(function() {
2
	$("#effacer").on('click', effacerFomulaire);
3
	$("#envoyer").on('click', envoyerCourriel);
4
});
5
 
6
function effacerFomulaire() {
7
	$("#destinataire_id").attr('value', '');
8
	$("#sujet").attr('value', '');
9
	$("#message").text('');
10
}
11
 
12
function ajouterFomulaireContact(element) {
13
	$(element).fancybox({
14
		transitionIn:'elastic',
15
		transitionOut:'elastic',
16
		speedIn	:600,
17
		speedOut:200,
18
		scrolling: 'no',
19
		titleShow: false,
20
		onStart: function(selectedArray, selectedIndex, selectedOpts) {
21
			var element = selectedArray[selectedIndex];
22
 
23
			var motif = / contributeur-([0-9]+)$/;
24
			motif.exec($(element).attr('class'));
25
			var id = RegExp.$1;
26
			// console.log('Destinataire id : '+id);
27
			$("#fc_destinataire_id").attr('value', id);
28
 
29
			var motif = / obs-([0-9]+) /;
30
			motif.exec($(element).attr('class'));
31
			var id = RegExp.$1;
32
			// console.log('Obs id : '+id);
33
			chargerInfoObsPourMessage(id);
34
		},
35
		onCleanup: function() {
36
			// console.log('Avant fermeture fancybox');
37
			$("#fc_destinataire_id").attr('value', '');
38
			$("#fc_sujet").attr('value', '');
39
			$("#fc_message").text('');
40
		},
41
		onClosed: function(e) {
42
			// console.log('Fermeture fancybox');
43
			if (e.stopPropagation) {
44
				e.stopPropagation();
45
			}
46
			return false;
47
		}
48
	});
49
}
50
 
51
function chargerInfoObsPourMessage(idObs) {
52
	var nomSci = trim($(".cel-obs-"+idObs+" .nom-sci:eq(0)").text());
53
	var date = trim($(".cel-obs-"+idObs+" .date:eq(0)").text());
54
	var lieu = trim($(".cel-obs-"+idObs+" .lieu:eq(0)").text());
55
	var sujet = "Observation #"+idObs+" de "+nomSci;
56
	var message = "\n\n\n\n\n\n\n\n--\nConcerne l'observation de \""+nomSci+'" du "'+date+'" au lieu "'+lieu+'".';
57
	$("#sujet").attr('value', sujet);
58
	$("#message").text(message);
59
}
60
 
61
function initialiserFormulaireContact() {
62
	// console.log('Initialisation du form contact');
63
	$("#form-contact").validate({
64
		rules: {
65
			fc_sujet : "required",
66
			fc_message : "required",
67
			fc_utilisateur_courriel : {
68
				required : true,
69
				email : true}
70
		}
71
	});
72
	$("#form-contact").bind("submit", envoyerCourriel);
73
	$("#fc_annuler").bind("click", function() {$.fancybox.close();});
74
 
75
}
76
 
77
function envoyerCourriel() {
78
	// console.log('Formulaire soumis');
79
	if ($("#form-contact").valid()) {
80
		// console.log('Formulaire valide');
81
		// $.fancybox.showActivity();
82
		var destinataireId = $("#fc_destinataire_id").attr('value');
83
		var urlMessage = "http://www.tela-botanica.org/service:annuaire:Utilisateur/"+destinataireId+"/message"
84
		var erreurMsg = "";
85
		var donnees = new Array();
86
		$.each($(this).serializeArray(), function (index, champ) {
87
			var cle = champ.name;
88
			cle = cle.replace(/^fc_/, '');
89
 
90
			if (cle == 'sujet') {
91
				champ.value += " - Carnet en ligne - Tela Botanica";
92
			}
93
			if (cle == 'message') {
94
				champ.value += "\n--\n"+
95
					"Ce message vous est envoyé par l'intermédiaire du widget Cartographique "+
96
					"du Carnet en Ligne du réseau Tela Botanica.\n"+
97
					"http://www.tela-botanica.org/widget:cel:carto";
98
			}
99
 
100
			donnees[index] = {'name':cle,'value':champ.value};
101
		});
102
		$.ajax({
103
			type : "POST",
104
			cache : false,
105
			url : urlMessage,
106
			data : donnees,
107
			beforeSend : function() {
108
				$(".msg").remove();
109
			},
110
			success : function(data) {
111
				$("#fc-zone-dialogue").append('<pre class="msg info">'+data.message+'</pre>');
112
			},
113
			error : function(jqXHR, textStatus, errorThrown) {
114
				erreurMsg += "Erreur Ajax :\ntype : "+textStatus+' '+errorThrown+"\n";
115
				reponse = jQuery.parseJSON(jqXHR.responseText);
116
				if (reponse != null) {
117
					$.each(reponse, function (cle, valeur) {
118
						erreurMsg += valeur + "\n";
119
					});
120
				}
121
			},
122
			complete : function(jqXHR, textStatus) {
123
				var debugMsg = '';
124
				if (jqXHR.getResponseHeader("X-DebugJrest-Data") != '') {
125
					debugInfos = jQuery.parseJSON(jqXHR.getResponseHeader("X-DebugJrest-Data"));
126
					if (debugInfos != null) {
127
						$.each(debugInfos, function (cle, valeur) {
128
							debugMsg += valeur + "\n";
129
						});
130
					}
131
				}
132
				if (erreurMsg != '') {
133
					$("#fc-zone-dialogue").append('<p class="msg">'+
134
							'Une erreur est survenue lors de la transmission de votre message.'+'<br />'+
135
							'Vous pouvez signaler le disfonctionnement à <a href="'+
136
							'mailto:cel@tela-botanica.org'+'?'+
137
							'subject=Disfonctionnement du widget de Cartographie'+
138
							"&body="+erreurMsg+"\nDébogage :\n"+debugMsg+
139
							'">cel@tela-botanica.org</a>.'+
140
							'</p>');
141
				}
142
				if (DEBUG) {
143
					console.log('Débogage : '+debugMsg);
144
				}
145
				// console.log('Débogage : '+debugMsg);
146
				// console.log('Erreur : '+erreurMsg);
147
			}
148
		});
149
	}
150
	return false;
151
}