New file |
0,0 → 1,222 |
//+---------------------------------------------------------------------------------------------------------+ |
// 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+"/"+REFERENTIEL_NOMS_SCI; |
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 getUrlExport() { |
var url = SERVICE_EXPORT_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" |
}, |
submitHandler: function(form) { |
if($(form).valid()) { |
validerExport(); |
} |
return false; |
} |
}); |
|
$.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" |
); |
} |
|
function validerExport() { |
var urlCalcul = getUrlExport()+'/calcul'; |
var valeurs = |
$.grep($('#form-export-obs').serializeArray(), function(field, i) { |
if($.trim(field.value) == '') return false; |
return true; |
}); |
|
$.get(urlCalcul, valeurs, function(data) { |
if(data.length == 1) { |
window.location.href = data[0]; |
} else { |
$('.attention').effect("highlight", {}, 1500); |
afficherListeTelechargements(data); |
} |
}); |
} |
|
function afficherListeTelechargements(urls) { |
var htmlListe = '<ul>'; |
$.each(urls, function(index, url) { |
htmlListe += '<li><a class="lien_telechargement" href="'+url+'">Feuille n°'+(index+1)+'</a></li>'; |
}); |
htmlListe += '</ul>'; |
$('#liste_telechargements').html(htmlListe); |
} |
|
function ouvrirDansUneNouvelleFenetre(evenement, lien) { |
evenement.preventDefault(); |
window.open(lien.attr("href")); |
} |
|
$(document).ready(function() { |
ajouterAutocompletionNomSci(); |
ajouterAutocompletionCommunes(); |
$("#date_debut").datepicker($.datepicker.regional['fr']); |
$("#date_fin").datepicker($.datepicker.regional['fr']); |
$(".lien_telechargement").live("click", function(event) {ouvrirDansUneNouvelleFenetre(event, $(this))}); |
$('#label_options_export').toggle( |
function() { |
$('#checkbox_set_cols').show(); |
$('#label_options_export').text("Cacher les options d'export avancées"); |
}, |
function() { |
$('#checkbox_set_cols').hide(); |
$('#label_options_export').text("Afficher les options d'export avancées"); |
} |
); |
configurerValidationFormulaire(); |
}); |