Subversion Repositories eFlore/Applications.eflore-consultation

Rev

Rev 507 | Rev 530 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 507 Rev 528
Line 1... Line 1...
1
$(document).ready(function() {
1
$(document).ready(function() {
-
 
2
	$("#annuler").on('click', fermerFenetre);
2
	$("#effacer").on('click', effacerFomulaire);
3
	$("#effacer").on('click', effacerFomulaire);
3
	$("#envoyer").on('click', envoyerCourriel);
4
	$("#envoyer").on('click', envoyerCourriel);
4
});
5
});
Line -... Line 6...
-
 
6
 
-
 
7
function fermerFenetre() {
-
 
8
	window.close();
-
 
9
}
5
 
10
 
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+'".';
11
function effacerFomulaire() {
57
	$("#sujet").attr('value', sujet);
12
	$("#sujet").attr('value', $("#sujet_defaut").val());
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
	
13
	$("#message").text($("#message_defaut").val());
75
}
14
}
76
 
15
 
77
function envoyerCourriel() {
-
 
78
	// console.log('Formulaire soumis');
16
function envoyerCourriel(event) {
79
	if ($("#form-contact").valid()) {
-
 
80
		// console.log('Formulaire valide');
-
 
81
		// $.fancybox.showActivity();
17
	if (verifierFormContact()) {
82
		var destinataireId = $("#fc_destinataire_id").attr('value');
18
		var destinataireId = $("#destinataire_id").val();
83
		var urlMessage = "http://www.tela-botanica.org/service:annuaire:Utilisateur/"+destinataireId+"/message"
19
		var urlMessage = URL_WS_UTILISATEUR+"/"+destinataireId+"/message"
-
 
20
		var erreurMsg = "";
-
 
21
		
-
 
22
		var sujet = $("#sujet").val()+" - Carnet en ligne - Tela Botanica";
-
 
23
		var message = $("#message").val()+"\n--\n"+
-
 
24
			"Ce message vous est envoyé par l'intermédiaire de l'application eFlore du réseau Tela Botanica.\n"+
84
		var erreurMsg = "";
25
			"http://www.tela-botanica.org/eflore";
85
		var donnees = new Array();
-
 
86
		$.each($(this).serializeArray(), function (index, champ) {
-
 
87
			var cle = champ.name;
26
		var donnees = new Array();
88
			cle = cle.replace(/^fc_/, '');
-
 
89
			
-
 
90
			if (cle == 'sujet') {
27
		donnees[0] = {'name':'sujet','value':sujet};
91
				champ.value += " - Carnet en ligne - Tela Botanica";
-
 
92
			}
-
 
93
			if (cle == 'message') {
-
 
94
				champ.value += "\n--\n"+
28
		donnees[1] = {'name':'message','value':message};
95
					"Ce message vous est envoyé par l'intermédiaire du widget Cartographique "+
-
 
96
					"du Carnet en Ligne du réseau Tela Botanica.\n"+
29
		donnees[2] = {'name':'utilisateur_courriel','value':$("#utilisateur_courriel").val()};
97
					"http://www.tela-botanica.org/widget:cel:carto";
-
 
98
			}
30
		donnees[3] = {'name':'copies','value':$("#copies").val()};
99
			
-
 
100
			donnees[index] = {'name':cle,'value':champ.value};
-
 
101
		});
31
 
102
		$.ajax({
32
		$.ajax({
103
			type : "POST",
33
			type : "POST",
104
			cache : false,
34
			cache : false,
105
			url : urlMessage,
35
			url : urlMessage,
106
			data : donnees,
36
			data : donnees,
107
			beforeSend : function() {
37
			beforeSend : function() {
108
				$(".msg").remove();
38
				nettoyerMsg();
109
			},
39
			},
110
			success : function(data) {
40
			success : function(data) {
111
				$("#fc-zone-dialogue").append('<pre class="msg info">'+data.message+'</pre>');
41
				afficherInfo('Votre message a été correctement envoyé');
112
			},
42
			},
113
			error : function(jqXHR, textStatus, errorThrown) {
43
			error : function(jqXHR, textStatus, errorThrown) {
114
				erreurMsg += "Erreur Ajax :\ntype : "+textStatus+' '+errorThrown+"\n";
44
				erreurMsg += "Erreur Ajax :\ntype : "+textStatus+' '+errorThrown+"\n";
115
				reponse = jQuery.parseJSON(jqXHR.responseText);
45
				reponse = jQuery.parseJSON(jqXHR.responseText);
Line 128... Line 58...
128
							debugMsg += valeur + "\n";
58
							debugMsg += valeur + "\n";
129
						});
59
						});
130
					}
60
					}
131
				}
61
				}
132
				if (erreurMsg != '') {
62
				if (erreurMsg != '') {
133
					$("#fc-zone-dialogue").append('<p class="msg">'+
-
 
134
							'Une erreur est survenue lors de la transmission de votre message.'+'<br />'+
63
					afficherMsg('Une erreur est survenue lors de la transmission de votre message.'+'<br />'+
135
							'Vous pouvez signaler le disfonctionnement à <a href="'+
64
						'Vous pouvez signaler le disfonctionnement à <a href="'+
136
							'mailto:cel@tela-botanica.org'+'?'+
65
						'mailto:cel@tela-botanica.org'+'?'+
137
							'subject=Disfonctionnement du widget de Cartographie'+
66
						'subject=Disfonctionnement du formulaire de contact'+
138
							"&body="+erreurMsg+"\nDébogage :\n"+debugMsg+
67
						"&body="+erreurMsg+"\nDébogage :\n"+debugMsg+
139
							'">cel@tela-botanica.org</a>.'+
68
						'">eflore_remarques@tela-botanica.org</a>.');
140
							'</p>');
-
 
141
				}
69
				}
142
				if (DEBUG) {
70
				if (DEBUG) {
143
					console.log('Débogage : '+debugMsg);
71
					console.log('Débogage : '+debugMsg);
144
				}
72
				}
145
				// console.log('Débogage : '+debugMsg);
-
 
146
				// console.log('Erreur : '+erreurMsg);
-
 
147
			}
73
			}
148
		});
74
		});
-
 
75
	} else {
-
 
76
		afficherInfo('Veuillez saisir un message');
149
	}
77
	}
-
 
78
	event.preventDefault();
150
	return false;
79
	return false;
-
 
80
}
-
 
81
 
-
 
82
function afficherInfo(msg) {
-
 
83
	afficherTxt(msg, 'information');
-
 
84
}
-
 
85
 
-
 
86
function afficherMsg(msg) {
-
 
87
	afficherTxt(msg);
-
 
88
}
-
 
89
 
-
 
90
function afficherTxt(msg, type) {
-
 
91
	type = type ? ' '+type : '';
-
 
92
	nettoyerMsg();
-
 
93
	$("#zone-dialogue").append('<pre class="msg'+type+'">'+msg+'</pre>');
-
 
94
}
-
 
95
 
-
 
96
function nettoyerMsg() {
-
 
97
	$(".msg").remove();
-
 
98
}
-
 
99
 
-
 
100
function verifierFormContact() {
-
 
101
	var valide = true;
-
 
102
	var msg = trim($("#message").val());
-
 
103
	var msgDefaut = trim($("#message_defaut").val());
-
 
104
	if (msg == msgDefaut) {
-
 
105
		valide = false;
-
 
106
	}
-
 
107
	return valide;
-
 
108
}
-
 
109
 
-
 
110
function trim(chaine) {
-
 
111
	return chaine.replace(/^\s+/g, '').replace(/\s+$/g, '');
151
}
112
}
152
113