New file |
0,0 → 1,168 |
//+---------------------------------------------------------------------------------------------------------+ |
// AUTO-COMPLÉTION Noms Scientifiques |
function ajouterAutocompletionNomSci() { |
$('#taxon').autocomplete({ |
source: function(requete, add){ |
// la variable de requête doit être vidée car sinon le parametre "term" est ajouté |
requete = ""; |
var url = getUrlAutocompletionNomSci()+"/"+formaterRequeteNomSci($('#taxon').val()); |
$.getJSON(url, requete, function(data) { |
var suggestions = traiterRetourNomSci(data); |
add(suggestions); |
}); |
}, |
html: true |
}); |
} |
|
function formaterRequeteNomSci(nomSci) { |
var nomSciCoupe = nomSci.split(' '); |
if(nomSciCoupe.length >= 2) { |
nomSci = nomSciCoupe[0]+'/'+nomSciCoupe[1]; |
} else { |
nomSci = nomSciCoupe[0]+'/*'; |
} |
return nomSci; |
} |
|
function traiterRetourNomSci(data) { |
var suggestions = []; |
if (data != undefined) { |
$.each(data, function(i, val) { |
var nom = {label : '', value : ''}; |
if (suggestions.length >= AUTOCOMPLETION_ELEMENTS_NBRE) { |
nom.label = "..."; |
nom.value = val[0]; |
suggestions.push(nom); |
return false; |
} else { |
nom.label = val[0]; |
nom.value = val[0]; |
suggestions.push(nom); |
} |
}); |
} |
|
return suggestions; |
} |
|
function ajouterAutocompletionCommunes() { |
$('#commune').autocomplete({ |
source: function(requete, add){ |
// la variable de requête doit être vidée car sinon le parametre "term" est ajouté |
requete = ""; |
var url = getUrlAutocompletionCommunes()+"/"+$('#commune').val(); |
$.getJSON(url, requete, function(data) { |
var suggestions = traiterRetourCommune(data); |
add(suggestions); |
}); |
}, |
html: true |
}); |
|
$( "#commune" ).bind("autocompleteselect", function(event, ui) { |
console.log(ui.item); |
$("#commune").data(ui.item.value); |
$("#dept").data(ui.item.code); |
$("#dept").val(ui.item.code); |
}); |
} |
|
function getUrlAutocompletionNomSci() { |
var url = SERVICE_AUTOCOMPLETION_NOM_SCI_URL; |
return url; |
} |
|
function separerCommuneDepartement(chaine) { |
var deptCommune = chaine.split(' ('); |
if(deptCommune[1] != null && deptCommune[1] != undefined) { |
deptCommune[1] = deptCommune[1].replace(')', ''); |
} else { |
deptCommune[1] = ''; |
} |
return deptCommune; |
} |
|
function traiterRetourCommune(data) { |
var suggestions = []; |
if (data != undefined) { |
$.each(data, function(i, val) { |
var nom = {label : '', value : ''}; |
if (suggestions.length >= AUTOCOMPLETION_ELEMENTS_NBRE) { |
nom.label = "..."; |
nom.value = val[0]; |
suggestions.push(nom); |
return false; |
} else { |
nom.label = val[0]; |
var deptCommune = separerCommuneDepartement(val[0]); |
nom.value = deptCommune[0]; |
nom.code = deptCommune[1]; |
suggestions.push(nom); |
} |
}); |
} |
|
return suggestions; |
} |
|
function getUrlAutocompletionCommunes() { |
var url = SERVICE_AUTOCOMPLETION_COMMUNE_URL; |
return url; |
} |
|
function configurerValidationFormulaire() { |
$("#form-export-obs").validate({ |
rules: { |
utilisateur: { |
email: true |
}, |
date_debut: { |
date: true, |
date_valid : $('#date_debut') |
}, |
date_fin: { |
date: true, |
date_valid : $('#date_fin') |
}, |
dept: { |
dept_valid : $('#dept') |
}, |
num_taxon: { |
number: true |
} |
}, |
messages: { |
email: "L'email de l'utilisateur doit être valide", |
num_taxon: "Le numéro taxonomique doit être un entier" |
} |
}); |
|
$.validator.addMethod("dept_valid", function(valeur) { |
return valeur == "" || valeur.match(/^\d+(?:,\d+)*$/); |
}, "Le ou les département(s) doivent être sur deux chiffres, séparés par des virgules" |
); |
|
$.validator.addMethod("date_valid", function(element) { |
var valid = true; |
var dateDebut = $('#date_debut').datepicker("getDate"); |
var dateFin = $('#date_fin').datepicker("getDate"); |
if($('#date_debut').val() != "" && $('#date_fin').val() != "") { |
if(dateDebut != null && dateFin != null) { |
valid = dateDebut <= dateFin; |
} else { |
valid = dateDebut == null || dateFin == null; |
} |
} |
return valid; |
}, "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" |
); |
} |
|
$(document).ready(function() { |
ajouterAutocompletionNomSci(); |
ajouterAutocompletionCommunes(); |
$("#date_debut").datepicker($.datepicker.regional['fr']); |
$("#date_fin").datepicker($.datepicker.regional['fr']); |
configurerValidationFormulaire(); |
}); |