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
3
 
4
function ajouterAutocompletionCommunes() {
5
	$('#commune').autocomplete({
6
		source: function(requete, add){
7
			// la variable de requête doit être vidée car sinon le parametre "term" est ajouté
8
			requete = "";
9
			var url = getUrlAutocompletionCommunes()+"/"+$('#commune').val();
10
			$.getJSON(url, requete, function(data) {
11
				var suggestions = traiterRetourCommune(data);
12
				add(suggestions);
13
            });
14
        },
15
        html: true
16
	});
17
 
18
	$( "#commune" ).bind("autocompleteselect", function(event, ui) {
19
		console.log(ui.item);
20
		$("#commune").data(ui.item.value);
21
		$("#dept").data(ui.item.code);
22
		$("#dept").val(ui.item.code);
23
	});
24
}
25
 
26
function separerCommuneDepartement(chaine) {
27
	var deptCommune = chaine.split(' (');
28
	if(deptCommune[1] != null && deptCommune[1] != undefined) {
29
		deptCommune[1] = deptCommune[1].replace(')', '');
30
	} else {
31
		deptCommune[1] = '';
32
	}
33
	return deptCommune;
34
}
35
 
36
function traiterRetourCommune(data) {
37
	var suggestions = [];
38
	if (data != undefined) {
39
		$.each(data, function(i, val) {
40
			var nom = {label : '', value : ''};
41
			if (suggestions.length >= AUTOCOMPLETION_ELEMENTS_NBRE) {
42
				nom.label = "...";
43
				nom.value = val[0];
44
				suggestions.push(nom);
45
				return false;
46
			} else {
47
				nom.label = val[0];
48
				var deptCommune = separerCommuneDepartement(val[0]);
49
				nom.value = deptCommune[0];
50
				nom.code = deptCommune[1];
51
				suggestions.push(nom);
52
			}
53
		});
54
	}
55
 
56
	return suggestions;
57
}
58
 
59
function getUrlAutocompletionCommunes() {
60
	var url = SERVICE_AUTOCOMPLETION_COMMUNE_URL;
61
	return url;
62
}
63
 
1380 aurelien 64
function configurerValidationFormulaire() {
65
	$("#form-export-obs").validate({
66
		rules: {
67
			utilisateur: {
68
				email: true
69
			},
70
			date_debut: {
71
				date: true,
72
				date_valid : $('#date_debut')
73
			},
74
			date_fin: {
75
				date: true,
76
				date_valid : $('#date_fin')
77
			},
78
			dept: {
79
				dept_valid : $('#dept')
80
			},
81
			num_taxon: {
82
				number: true
83
			}
84
		},
85
		messages: {
86
			email: "L'email de l'utilisateur doit être valide",
87
			num_taxon: "Le numéro taxonomique doit être un entier"
88
		}
89
	});
90
 
91
	$.validator.addMethod("dept_valid",  function(valeur) {
92
			return valeur == "" || valeur.match(/^\d+(?:,\d+)*$/);
93
		}, "Le ou les département(s) doivent être sur deux chiffres, séparés par des virgules"
94
	);
95
 
96
	$.validator.addMethod("date_valid",  function(element) {
97
			var valid = true;
98
			var dateDebut = $('#date_debut').datepicker("getDate");
99
			var dateFin = $('#date_fin').datepicker("getDate");
100
			if($('#date_debut').val() != "" && $('#date_fin').val() != "") {
101
				if(dateDebut != null && dateFin != null) {
102
					valid = dateDebut <= dateFin;
103
				} else {
104
					valid = dateDebut == null || dateFin == null;
105
				}
106
			}
107
			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"
109
	);
110
}
111
 
1375 aurelien 112
$(document).ready(function() {
113
	ajouterAutocompletionCommunes();
1377 aurelien 114
	$("#date_debut").datepicker($.datepicker.regional['fr']);
115
	$("#date_fin").datepicker($.datepicker.regional['fr']);
1380 aurelien 116
	configurerValidationFormulaire();
1375 aurelien 117
});