Subversion Repositories eFlore/Applications.cel

Rev

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

Rev Author Line No. Line
1375 aurelien 1
//+---------------------------------------------------------------------------------------------------------+
2
// AUTO-COMPLÉTION Noms Scientifiques
1383 aurelien 3
function ajouterAutocompletionNomSci() {
4
	$('#taxon').autocomplete({
5
		source: function(requete, add){
6
			// la variable de requête doit être vidée car sinon le parametre "term" est ajouté
7
			requete = "";
8
			var url = getUrlAutocompletionNomSci()+"/"+formaterRequeteNomSci($('#taxon').val());
9
			$.getJSON(url, requete, function(data) {
10
				var suggestions = traiterRetourNomSci(data);
11
				add(suggestions);
12
            });
13
        },
14
        html: true
15
	});
16
}
1375 aurelien 17
 
1383 aurelien 18
function formaterRequeteNomSci(nomSci) {
19
	var nomSciCoupe = nomSci.split(' ');
20
	if(nomSciCoupe.length >= 2) {
21
		nomSci = nomSciCoupe[0]+'/'+nomSciCoupe[1];
22
	} else {
23
		nomSci = nomSciCoupe[0]+'/*';
24
	}
25
	return nomSci;
26
}
27
 
28
function traiterRetourNomSci(data) {
29
	var suggestions = [];
30
	if (data != undefined) {
31
		$.each(data, function(i, val) {
32
			var nom = {label : '', value : ''};
33
			if (suggestions.length >= AUTOCOMPLETION_ELEMENTS_NBRE) {
34
				nom.label = "...";
35
				nom.value = val[0];
36
				suggestions.push(nom);
37
				return false;
38
			} else {
39
				nom.label = val[0];
40
				nom.value = val[0];
41
				suggestions.push(nom);
42
			}
43
		});
44
	}
45
 
46
	return suggestions;
47
}
48
 
1375 aurelien 49
function ajouterAutocompletionCommunes() {
50
	$('#commune').autocomplete({
51
		source: function(requete, add){
52
			// la variable de requête doit être vidée car sinon le parametre "term" est ajouté
53
			requete = "";
54
			var url = getUrlAutocompletionCommunes()+"/"+$('#commune').val();
55
			$.getJSON(url, requete, function(data) {
56
				var suggestions = traiterRetourCommune(data);
57
				add(suggestions);
58
            });
59
        },
60
        html: true
61
	});
62
 
63
	$( "#commune" ).bind("autocompleteselect", function(event, ui) {
64
		console.log(ui.item);
65
		$("#commune").data(ui.item.value);
66
		$("#dept").data(ui.item.code);
67
		$("#dept").val(ui.item.code);
68
	});
69
}
70
 
1383 aurelien 71
function getUrlAutocompletionNomSci() {
1623 aurelien 72
	var url = SERVICE_AUTOCOMPLETION_NOM_SCI_URL+"/"+REFERENTIEL_NOMS_SCI;
1383 aurelien 73
	return url;
74
}
75
 
1375 aurelien 76
function separerCommuneDepartement(chaine) {
77
	var deptCommune = chaine.split(' (');
78
	if(deptCommune[1] != null && deptCommune[1] != undefined) {
79
		deptCommune[1] = deptCommune[1].replace(')', '');
80
	} else {
81
		deptCommune[1] = '';
82
	}
83
	return deptCommune;
84
}
85
 
86
function traiterRetourCommune(data) {
87
	var suggestions = [];
88
	if (data != undefined) {
89
		$.each(data, function(i, val) {
90
			var nom = {label : '', value : ''};
91
			if (suggestions.length >= AUTOCOMPLETION_ELEMENTS_NBRE) {
92
				nom.label = "...";
93
				nom.value = val[0];
94
				suggestions.push(nom);
95
				return false;
96
			} else {
97
				nom.label = val[0];
98
				var deptCommune = separerCommuneDepartement(val[0]);
99
				nom.value = deptCommune[0];
100
				nom.code = deptCommune[1];
101
				suggestions.push(nom);
102
			}
103
		});
104
	}
105
 
106
	return suggestions;
107
}
108
 
109
function getUrlAutocompletionCommunes() {
110
	var url = SERVICE_AUTOCOMPLETION_COMMUNE_URL;
111
	return url;
112
}
113
 
1626 aurelien 114
function getUrlExport() {
115
	var url = SERVICE_EXPORT_URL;
116
	return url;
117
}
118
 
1380 aurelien 119
function configurerValidationFormulaire() {
120
	$("#form-export-obs").validate({
121
		rules: {
122
			utilisateur: {
123
				email: true
124
			},
125
			date_debut: {
126
				date: true,
127
				date_valid : $('#date_debut')
128
			},
129
			date_fin: {
130
				date: true,
131
				date_valid : $('#date_fin')
132
			},
133
			dept: {
134
				dept_valid : $('#dept')
135
			},
136
			num_taxon: {
137
				number: true
138
			}
139
		},
140
		messages: {
141
			email: "L'email de l'utilisateur doit être valide",
142
			num_taxon: "Le numéro taxonomique doit être un entier"
1626 aurelien 143
		},
144
		submitHandler: function(form) {
145
			if($(form).valid()) {
146
				validerExport();
147
			}
148
			return false;
1380 aurelien 149
		}
150
	});
151
 
152
	$.validator.addMethod("dept_valid",  function(valeur) {
153
			return valeur == "" || valeur.match(/^\d+(?:,\d+)*$/);
154
		}, "Le ou les département(s) doivent être sur deux chiffres, séparés par des virgules"
155
	);
156
 
157
	$.validator.addMethod("date_valid",  function(element) {
158
			var valid = true;
159
			var dateDebut = $('#date_debut').datepicker("getDate");
160
			var dateFin = $('#date_fin').datepicker("getDate");
161
			if($('#date_debut').val() != "" && $('#date_fin').val() != "") {
162
				if(dateDebut != null && dateFin != null) {
163
					valid = dateDebut <= dateFin;
164
				} else {
165
					valid = dateDebut == null || dateFin == null;
166
				}
167
			}
168
			return valid;
169
		}, "Les dates de début et de fin doivent être au format jj/mm/aaaa et la première inférieur à la dernière, si les deux sont présentes"
170
	);
171
}
172
 
1626 aurelien 173
function validerExport() {
174
	var urlCalcul = getUrlExport()+'/calcul';
175
	var valeurs = {};
176
	$.each($('#form-export-obs').serializeArray(), function(i, field) {
177
		if(field.value != null && $.trim(field.value) != '') {
178
			valeurs[field.name] = field.value;
179
		}
180
	});
181
	$.get(urlCalcul, valeurs, function(data) {
182
		if(data.length == 1) {
183
			window.location.href = data[0];
184
		} else {
185
			$('.attention').effect("highlight", {}, 1500);
186
			afficherListeTelechargements(data);
187
		}
188
	});
189
}
190
 
191
function afficherListeTelechargements(urls) {
192
	var htmlListe = '<ul>';
193
	$.each(urls, function(index, url) {
194
		htmlListe += '<li><a class="lien_telechargement" href="'+url+'">Feuille n°'+(index+1)+'</a></li>';
195
	});
196
	htmlListe += '</ul>';
197
	$('#liste_telechargements').html(htmlListe);
198
}
199
 
200
function ouvrirDansUneNouvelleFenetre(evenement, lien) {
201
	evenement.preventDefault();
202
	window.open(lien.attr("href"));
203
}
204
 
1375 aurelien 205
$(document).ready(function() {
1383 aurelien 206
	ajouterAutocompletionNomSci();
1375 aurelien 207
	ajouterAutocompletionCommunes();
1377 aurelien 208
	$("#date_debut").datepicker($.datepicker.regional['fr']);
209
	$("#date_fin").datepicker($.datepicker.regional['fr']);
1626 aurelien 210
	$(".lien_telechargement").live("click", function(event) {ouvrirDansUneNouvelleFenetre(event, $(this))});
1380 aurelien 211
	configurerValidationFormulaire();
1375 aurelien 212
});