Subversion Repositories eFlore/Applications.cel

Rev

Rev 1380 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1380 Rev 1383
1
//+---------------------------------------------------------------------------------------------------------+
1
//+---------------------------------------------------------------------------------------------------------+
2
// AUTO-COMPLÉTION Noms Scientifiques
2
// AUTO-COMPLÉTION Noms Scientifiques
-
 
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
}
-
 
17
 
-
 
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
}
3
 
48
 
4
function ajouterAutocompletionCommunes() {
49
function ajouterAutocompletionCommunes() {
5
	$('#commune').autocomplete({
50
	$('#commune').autocomplete({
6
		source: function(requete, add){  
51
		source: function(requete, add){  
7
			// la variable de requête doit être vidée car sinon le parametre "term" est ajouté
52
			// la variable de requête doit être vidée car sinon le parametre "term" est ajouté
8
			requete = "";
53
			requete = "";
9
			var url = getUrlAutocompletionCommunes()+"/"+$('#commune').val();
54
			var url = getUrlAutocompletionCommunes()+"/"+$('#commune').val();
10
			$.getJSON(url, requete, function(data) {  
55
			$.getJSON(url, requete, function(data) {  
11
				var suggestions = traiterRetourCommune(data);
56
				var suggestions = traiterRetourCommune(data);
12
				add(suggestions);  
57
				add(suggestions);  
13
            });
58
            });
14
        },
59
        },
15
        html: true
60
        html: true
16
	});
61
	});
17
	
62
	
18
	$( "#commune" ).bind("autocompleteselect", function(event, ui) {
63
	$( "#commune" ).bind("autocompleteselect", function(event, ui) {
19
		console.log(ui.item);
64
		console.log(ui.item);
20
		$("#commune").data(ui.item.value);
65
		$("#commune").data(ui.item.value);
21
		$("#dept").data(ui.item.code);
66
		$("#dept").data(ui.item.code);
22
		$("#dept").val(ui.item.code);
67
		$("#dept").val(ui.item.code);
23
	});
68
	});
24
}
69
}
-
 
70
 
-
 
71
function getUrlAutocompletionNomSci() {
-
 
72
	var url = SERVICE_AUTOCOMPLETION_NOM_SCI_URL;
-
 
73
	return url;
-
 
74
}
25
 
75
 
26
function separerCommuneDepartement(chaine) {
76
function separerCommuneDepartement(chaine) {
27
	var deptCommune = chaine.split(' (');
77
	var deptCommune = chaine.split(' (');
28
	if(deptCommune[1] != null && deptCommune[1] != undefined) {
78
	if(deptCommune[1] != null && deptCommune[1] != undefined) {
29
		deptCommune[1] = deptCommune[1].replace(')', '');
79
		deptCommune[1] = deptCommune[1].replace(')', '');
30
	} else {
80
	} else {
31
		deptCommune[1] = '';
81
		deptCommune[1] = '';
32
	}
82
	}
33
	return deptCommune;
83
	return deptCommune;
34
}
84
}
35
 
85
 
36
function traiterRetourCommune(data) {
86
function traiterRetourCommune(data) {
37
	var suggestions = [];  
87
	var suggestions = [];  
38
	if (data != undefined) {
88
	if (data != undefined) {
39
		$.each(data, function(i, val) {
89
		$.each(data, function(i, val) {
40
			var nom = {label : '', value : ''};
90
			var nom = {label : '', value : ''};
41
			if (suggestions.length >= AUTOCOMPLETION_ELEMENTS_NBRE) {
91
			if (suggestions.length >= AUTOCOMPLETION_ELEMENTS_NBRE) {
42
				nom.label = "...";
92
				nom.label = "...";
43
				nom.value = val[0];
93
				nom.value = val[0];
44
				suggestions.push(nom);
94
				suggestions.push(nom);
45
				return false;
95
				return false;
46
			} else {
96
			} else {
47
				nom.label = val[0];
97
				nom.label = val[0];
48
				var deptCommune = separerCommuneDepartement(val[0]);
98
				var deptCommune = separerCommuneDepartement(val[0]);
49
				nom.value = deptCommune[0];
99
				nom.value = deptCommune[0];
50
				nom.code = deptCommune[1];
100
				nom.code = deptCommune[1];
51
				suggestions.push(nom);
101
				suggestions.push(nom);
52
			}			
102
			}			
53
		});
103
		});
54
	}
104
	}
55
		
105
		
56
	return suggestions;
106
	return suggestions;
57
}
107
}
58
 
108
 
59
function getUrlAutocompletionCommunes() {
109
function getUrlAutocompletionCommunes() {
60
	var url = SERVICE_AUTOCOMPLETION_COMMUNE_URL;
110
	var url = SERVICE_AUTOCOMPLETION_COMMUNE_URL;
61
	return url;
111
	return url;
62
}
112
}
63
 
113
 
64
function configurerValidationFormulaire() {
114
function configurerValidationFormulaire() {
65
	$("#form-export-obs").validate({
115
	$("#form-export-obs").validate({
66
		rules: {
116
		rules: {
67
			utilisateur: {
117
			utilisateur: {
68
				email: true
118
				email: true
69
			},
119
			},
70
			date_debut: {
120
			date_debut: {
71
				date: true,
121
				date: true,
72
				date_valid : $('#date_debut')
122
				date_valid : $('#date_debut')
73
			},
123
			},
74
			date_fin: {
124
			date_fin: {
75
				date: true,
125
				date: true,
76
				date_valid : $('#date_fin')
126
				date_valid : $('#date_fin')
77
			},
127
			},
78
			dept: {
128
			dept: {
79
				dept_valid : $('#dept')
129
				dept_valid : $('#dept')
80
			},
130
			},
81
			num_taxon: {
131
			num_taxon: {
82
				number: true
132
				number: true
83
			}
133
			}
84
		},
134
		},
85
		messages: {
135
		messages: {
86
			email: "L'email de l'utilisateur doit être valide",
136
			email: "L'email de l'utilisateur doit être valide",
87
			num_taxon: "Le numéro taxonomique doit être un entier"
137
			num_taxon: "Le numéro taxonomique doit être un entier"
88
		}
138
		}
89
	});
139
	});
90
	
140
	
91
	$.validator.addMethod("dept_valid",  function(valeur) {
141
	$.validator.addMethod("dept_valid",  function(valeur) {
92
			return valeur == "" || valeur.match(/^\d+(?:,\d+)*$/); 
142
			return valeur == "" || valeur.match(/^\d+(?:,\d+)*$/); 
93
		}, "Le ou les département(s) doivent être sur deux chiffres, séparés par des virgules"
143
		}, "Le ou les département(s) doivent être sur deux chiffres, séparés par des virgules"
94
	);
144
	);
95
	
145
	
96
	$.validator.addMethod("date_valid",  function(element) {
146
	$.validator.addMethod("date_valid",  function(element) {
97
			var valid = true;
147
			var valid = true;
98
			var dateDebut = $('#date_debut').datepicker("getDate");
148
			var dateDebut = $('#date_debut').datepicker("getDate");
99
			var dateFin = $('#date_fin').datepicker("getDate");
149
			var dateFin = $('#date_fin').datepicker("getDate");
100
			if($('#date_debut').val() != "" && $('#date_fin').val() != "") {
150
			if($('#date_debut').val() != "" && $('#date_fin').val() != "") {
101
				if(dateDebut != null && dateFin != null) {
151
				if(dateDebut != null && dateFin != null) {
102
					valid = dateDebut <= dateFin;
152
					valid = dateDebut <= dateFin;
103
				} else {
153
				} else {
104
					valid = dateDebut == null || dateFin == null;
154
					valid = dateDebut == null || dateFin == null;
105
				}
155
				}
106
			}
156
			}
107
			return valid; 
157
			return valid; 
108
		}, "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"
158
		}, "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"
109
	);
159
	);
110
}
160
}
111
 
161
 
112
$(document).ready(function() {
162
$(document).ready(function() {
-
 
163
	ajouterAutocompletionNomSci();
113
	ajouterAutocompletionCommunes();
164
	ajouterAutocompletionCommunes();
114
	$("#date_debut").datepicker($.datepicker.regional['fr']);
165
	$("#date_debut").datepicker($.datepicker.regional['fr']);
115
	$("#date_fin").datepicker($.datepicker.regional['fr']);
166
	$("#date_fin").datepicker($.datepicker.regional['fr']);
116
	configurerValidationFormulaire();
167
	configurerValidationFormulaire();
117
});
168
});