Subversion Repositories eFlore/Applications.cel

Rev

Rev 1383 | Details | Compare with Previous | 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() {
72
	var url = SERVICE_AUTOCOMPLETION_NOM_SCI_URL;
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
 
1380 aurelien 114
function configurerValidationFormulaire() {
115
	$("#form-export-obs").validate({
116
		rules: {
117
			utilisateur: {
118
				email: true
119
			},
120
			date_debut: {
121
				date: true,
122
				date_valid : $('#date_debut')
123
			},
124
			date_fin: {
125
				date: true,
126
				date_valid : $('#date_fin')
127
			},
128
			dept: {
129
				dept_valid : $('#dept')
130
			},
131
			num_taxon: {
132
				number: true
133
			}
134
		},
135
		messages: {
136
			email: "L'email de l'utilisateur doit être valide",
137
			num_taxon: "Le numéro taxonomique doit être un entier"
138
		}
139
	});
140
 
141
	$.validator.addMethod("dept_valid",  function(valeur) {
142
			return valeur == "" || valeur.match(/^\d+(?:,\d+)*$/);
143
		}, "Le ou les département(s) doivent être sur deux chiffres, séparés par des virgules"
144
	);
145
 
146
	$.validator.addMethod("date_valid",  function(element) {
147
			var valid = true;
148
			var dateDebut = $('#date_debut').datepicker("getDate");
149
			var dateFin = $('#date_fin').datepicker("getDate");
150
			if($('#date_debut').val() != "" && $('#date_fin').val() != "") {
151
				if(dateDebut != null && dateFin != null) {
152
					valid = dateDebut <= dateFin;
153
				} else {
154
					valid = dateDebut == null || dateFin == null;
155
				}
156
			}
157
			return valid;
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"
159
	);
160
}
161
 
1375 aurelien 162
$(document).ready(function() {
1383 aurelien 163
	ajouterAutocompletionNomSci();
1375 aurelien 164
	ajouterAutocompletionCommunes();
1377 aurelien 165
	$("#date_debut").datepicker($.datepicker.regional['fr']);
166
	$("#date_fin").datepicker($.datepicker.regional['fr']);
1380 aurelien 167
	configurerValidationFormulaire();
1375 aurelien 168
});