Rev 225 | Rev 320 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
function getUrlBaseJrest() {return urlBaseJrest;}/**************************************************************************************************************************************************************************************************Fonction permettant de transformer les élements de la classe pliage en accordéon**************************************************************************************************************************************************************************************************/function initialiserElementsPliables() {$('.pliage h4').addClass('lien_pliage');$('.pliage ul').hide();$('.pliage > ul:first-child').hide();$('.1er_element_date ul').show();$('.1er_element_date > ul:first-child').show();$('.lien_pliage').bind('click', function() {$(this).nextAll('ul').slideToggle();return false;});}$('.pliage').ready(function() {initialiserElementsPliables();});/**************************************************************************************************************************************************************************************************Fonctions de gestion des onglets du formulaire de saisie d'espèce**************************************************************************************************************************************************************************************************/function initialiserOnglets() {$(".contenu_onglet").hide();$("ul.liste_onglets li:first").addClass("active").show();$(".contenu_onglet:first").show();$("ul.liste_onglets li").click(function() {$("ul.liste_onglets li").removeClass("active");$(this).addClass("active");$(".contenu_onglet").hide();var activeTab = $(this).find("a").attr("href");$(activeTab).fadeIn();return false;});}$('.contenu_onglet').ready(function() {initialiserOnglets();});function agrandirZoneCLicBoutonsRadios() {$('.formulaire_informations_espece_mini').addClass("element_cliquable");$('#form_saisie_espece').children('input[type="submit"]').hide();$('.formulaire_informations_espece_mini').children('input[type="radio"]').hide();$('.titre_type').hide();$('.formulaire_informations_espece_mini').bind('click',function() {$(this).children('input[type="radio"]').attr('checked','checked');$('.formulaire_informations_espece_mini').removeClass('element_clique');$(this).addClass('element_clique');$('#form_saisie_espece').submit();});}$('#form_saisie_espece').ready(function() {agrandirZoneCLicBoutonsRadios();});/**************************************************************************************************************************************************************************************************Fonctions permettant de transformer les cases du tableau d'évenements en mini formulaire**************************************************************************************************************************************************************************************************/htmlEnCours = '';elementEnCours = null;ancienneValeurEnCours = null;function initialiserLignesCliquables() {$('.conteneur_element_modifier').hide();$(".date_observation_individu").each(function() {$(this).bind('click', function() {if($(this).hasClass('element_clique')) {return false;} else {conteneur_obs = $(this).children('span');id_formulaire = conteneur_obs.attr('id');remplacerElementDateParFormulaireAjax(id_formulaire, $(this));return false;}});});}function initialiserCalendrierFormulaire() {dateMin = getDateMinCalendrier();dateMax = getDateMaxCalendrier();$(".calendrier").each(function() {$(this).find("input").datepicker({disabled: true,altFormat: 'dd/mm/yyyy',minDate: dateMin,maxDate: dateMax});});}$(document).ready(function() {initialiserCalendrierFormulaire();});function estUneDateValide(peutEtreUneDate) {var reg= new RegExp("^[0-3][0-9][/]{1}[0-1][0-2][/]{1}[0-9]{4}$","g");return reg.test(peutEtreUneDate);}function getAnneeEnCoursDeConsultation() {anneeEnCours = jQuery.trim($("#annee_en_cours").html());if(typeof(anneeEnCours)=='undefined'){dateCourante = new Date();anneeEnCours = dateCourante.getFullYear();}return anneeEnCours;}function getDateMinCalendrier() {anneeEnCours = getAnneeEnCoursDeConsultation();dateMin = '01/01/'+anneeEnCours;return dateMin;}function getDateMaxCalendrier() {anneeEnCours = getAnneeEnCoursDeConsultation();dateMax = '31/12/'+anneeEnCours;dateCourante = new Date();if(anneeEnCours == dateCourante.getFullYear()) {dateMax = dateCourante.getDate()+'/'+(dateCourante.getMonth()+ 1)+'/'+anneeEnCours;}return dateMax;}/** Fonctions de manipulation des éléments du tableau pour les transformer en élements cliquables et calendriers **/function initialiserMiniCalendrierFormulaire(id_element) {dateMin = getDateMinCalendrier();dateMax = getDateMaxCalendrier();$('#'+id_element).datepicker({disabled: true,constrainInput: true,altFormat: 'dd/mm/yyyy',minDate: dateMin,maxDate: dateMax,onSelect: function(dateText, inst) {$('#'+id_element).val(dateText);donnees_obs = collecterDonneesMiniFormulaire(id_formulaire);envoyerRequeteAjaxValidationMiniFormulaire(donnees_obs, id_formulaire);},onClose: function(dateText, inst) {gererFermetureMiniCalendrier(dateText,id_formulaire);}});$('#'+id_element).datepicker( "show" );}function gererFermetureMiniCalendrier(dateText, id_formulaire) {ancienne_valeur_date = jQuery.trim(ancienneValeurEnCours);nouvelle_valeur_date = jQuery.trim(dateText);if(nouvelle_valeur_date == '' && ancienne_valeur_date != '-' && ancienne_valeur_date != nouvelle_valeur_date) {if(window.confirm("Voulez vous supprimer cette observation ?")) {$('#'+id_formulaire).val(nouvelle_valeur_date);donnees_obs = collecterDonneesMiniFormulaire(id_formulaire);envoyerRequeteAjaxValidationMiniFormulaire(donnees_obs, id_formulaire);} else {$('#'+id_formulaire).val(ancienne_valeur_date);remplacerMiniFormulaireParElementDate(id_formulaire);}}}function remplacerElementDateParFormulaireAjax(id_element, conteneur_selectionne) {if(elementEnCours != null) {elementEnCours.removeClass('element_clique');elementEnCours.html(htmlEnCours);ancienneValeurEnCours = null;}ancienneValeurEnCours = conteneur_selectionne.children('span').html()elementEnCours = conteneur_selectionne;htmlEnCours = conteneur_selectionne.html();conteneur_obs = $('#'+id_element);valeur_date = conteneur_obs.html();valeur_date = valeur_date.replace('-','');conteneur_selectionne.addClass('element_clique');conteneur_selectionne.html('<span class="calendrier"><input type="text" value="'+jQuery.trim(valeur_date)+'" class="calendrier" id="'+id_formulaire+'" size="7" maxlenght="10" /></div>');initialiserMiniCalendrierFormulaire(id_formulaire);}function remplacerMiniFormulaireParElementDate(id_element) {valeur_date_pour_stade = $('#'+id_element).val();if(jQuery.trim(valeur_date_pour_stade) == '') {valeur_date_pour_stade = '-';}elementEnCours.html('<span id="'+id_element+'">'+valeur_date_pour_stade+' </span>');elementEnCours.removeClass('element_clique');elementEnCours = null;ancienneValeurEnCours = null;}/** Fonctions d'envoi et de récupération des élements du formulaire ajax **/function envoyerRequeteAjaxValidationMiniFormulaire(donnees_obs, id_formulaire) {url_page_courante = document.URL;url_page_courante = url_page_courante.replace('module=Individu','module=Observation');url_page_courante = url_page_courante.replace('action=afficherListeIndividu','action=validerFormulaireModificationObservationAjax');url_ajax = url_page_courante.replace('action=validerFormulaireSaisieIndividu','action=validerFormulaireModificationObservationAjax');$.post(url_ajax, donnees_obs, function(obj_retour) {if(obj_retour.reponse === 'OK') {remplacerMiniFormulaireParElementDate(id_formulaire);}});}function collecterDonneesMiniFormulaire(id_formulaire) {valeur_date_pour_stade = $('#'+id_formulaire).val();if(valeur_date_pour_stade == null ) {return false ;}if(jQuery.trim(valeur_date_pour_stade) == '') {valeur_date_pour_stade = '00/00/'+anneeEnCours;}id_individu_stade_obs = id_formulaire.split('_');stade_obs = 'observation_'+id_individu_stade_obs[3];date_annee_en_cours = jQuery.trim($("#annee_en_cours").html());donnees_obs = { "id_individu": id_individu_stade_obs[1],"annee_en_cours": date_annee_en_cours};identifiant_observation = 'observation_'+id_individu_stade_obs[3];donnees_obs[identifiant_observation] = valeur_date_pour_stade;return donnees_obs;}$('#saisie_liste_evenements').ready(function() {initialiserLignesCliquables();});/**************************************************************************************************************************************************************************************************Fonctions concernant la carte permettant de pointer d'afficher l'emplacement des stations**************************************************************************************************************************************************************************************************/var map;var marker;var liste_localite_en_cours;var indice_commune_en_cours;var liste_auto_completion_a_le_focus;var timerRequeteAutocompletion;var timerAffichageAutocompletion;function cacherElementsRafraichissables() {$('.rafraichissable input').attr('disabled', 'disabled');$('.rafraichissable input[type="text"]').addClass("chargement");}function montrerElementsRafraichissables() {$('.rafraichissable input').removeAttr('disabled');$('.chargement').removeClass("chargement");}function ajouterAutoCompletionCommune() {$('input#station_commune').after('<div class="conteneur_suggestions"></div>');$('input#station_commune').parent().addClass('autocompletion');$('input#station_commune').attr('autocomplete','off');$('.conteneur_suggestions').hide();rendreListeAutoCompletionInteractive('input#station_commune');}function ajouterListenerFormulaireSaisieLatLon() {$('input#localiser_lat_lon').click(function() {verifierEtLocaliserCoordonnees();});}function carteEstEnSaisie() {return ($('#conteneur_form_liens_lat_lon').length > 0);}function verifierEtLocaliserCoordonnees() {lat ;lon;if(carteEstEnSaisie()) {lat = $('#station_lat').val();lon = $('#station_lon').val();obtenirInformationsPourCoordonnees(lat, lon);} else {var lat = jQuery.trim($('#station_lat').html());var lon = jQuery.trim($('#station_lon').html());}if(jQuery.trim(lat) == '' || jQuery.trim(lon) == '') {return;}if(!isNaN(lat) && lat.length > 0 && !isNaN(lon) && lon.length > 0) {} else {window.alert("coordonnées invalides");}var positionMarker = new google.maps.LatLng(lat, lon);marker.setPosition(positionMarker);map.setCenter(positionMarker);map.setZoom(12);}function obtenirInformationsPourCoordonnees(lat, lon) {lat = jQuery.trim(lat);lon = jQuery.trim(lon);if(isNaN(lat) || lat.length <= 0 || isNaN(lon) || lon.length <= 0) {return;}cacherElementsRafraichissables();$.get(urlBaseJrest+'OdsCommune/informationsPourCoordonnees/?lat='+lat+'&lon='+lon, function(data) {infos_localites = jQuery.parseJSON(data);$('#station_alt').val(infos_localites.alt);if(infos_localites.commune != null && infos_localites.commune != '') {$('#station_commune').val(infos_localites.commune);$('#station_code_insee').val(infos_localites.code_insee);}montrerElementsRafraichissables();});}function obtenirInformationsPourCommune(nom_commune) {if(jQuery.trim(nom_commune) == '') {$('.conteneur_suggestions').hide();return;}$.get(urlBaseJrest+'OdsCommune/informationsPourCommune/?commune='+nom_commune, function(data) {infos_localites = jQuery.parseJSON(data);afficherListeAutoCompletion(infos_localites);});}function afficherListeAutoCompletion(tableau_localites) {liste_localite_en_cours = tableau_localites;html_liste_localite = '<ul class="liste_suggestions">';for(i = 0; i< tableau_localites.length; i++) {html_liste_localite += '<li id="commune_'+i+'" class="element_auto_completion_commune">'+tableau_localites[i]['commune']+' ('+tableau_localites[i]['dpt']+')</li>';}html_liste_localite += '</ul>';$('.conteneur_suggestions').html(html_liste_localite);$('.element_auto_completion_commune').hover(function() {indice = $(this).attr('id').split('_')[1];mettreEnSurbrillanceCommune(indice);});$('.element_auto_completion_commune').click(function() {indice = $(this).attr('id').split('_')[1];selectionnerCommune(indice);});if(tableau_localites.length > 0) {$('.conteneur_suggestions').show();mettreEnSurbrillanceCommune(0);}}function mettreEnSurbrillanceCommune(indice) {if(indice_commune_en_cours != null) {$('#commune_'+indice_commune_en_cours).removeClass('element_selectionne');}$('#commune_'+indice).addClass('element_selectionne');indice_commune_en_cours = indice;reprogrammerTimerPourCacherListeAutoCompletion();}function rendreListeAutoCompletionInteractive(selecteur) {$(selecteur).keyup(function(event) {if(event.which == 8 || (event.which >= 48 && event.which <= 90)) {reprogrammerTimerPourCacherListeAutoCompletion();reprogrammerTimerPourLancerRequeteCommune();}});$(selecteur).keydown(function(event) {reprogrammerTimerPourCacherListeAutoCompletion();// entreeif(event.which==13){selectionnerCommune(indice_commune_en_cours);event.preventDefault();}// hautif(event.which == 38){if(indice_commune_en_cours > 0) {mettreEnSurbrillanceCommune(indice_commune_en_cours - 1);}}// basif(event.which == 40){if(indice_commune_en_cours < liste_localite_en_cours.length - 1) {mettreEnSurbrillanceCommune(indice_commune_en_cours + 1);}}});$('.conteneur_suggestions').blur(function() {$('.conteneur_suggestions').hide();});}function reprogrammerTimerPourCacherListeAutoCompletion() {if(timerAffichageAutocompletion != null) {window.clearTimeout(timerAffichageAutocompletion);}timerAffichageAutocompletion = window.setTimeout(function() {$('.conteneur_suggestions').hide();}, 2000);}function reprogrammerTimerPourLancerRequeteCommune() {if(timerRequeteAutocompletion != null) {window.clearTimeout(timerRequeteAutocompletion);}timerRequeteAutocompletion = window.setTimeout(function() {obtenirInformationsPourCommune($('input#station_commune').val());}, 350);}function selectionnerCommune(indice) {infos_commune = liste_localite_en_cours[indice];$('input#station_commune').val(infos_commune['commune']);$('input#station_lat').val(infos_commune['lat']);$('input#station_lon').val(infos_commune['lon']);$('input#station_code_insee').val(infos_commune['code_insee']);verifierEtLocaliserCoordonnees();$('.conteneur_suggestions').hide();}function mettreAJourValeursFormulaire(latlon) {latlon = latlon.toString().split(',');lat = latlon[0].replace('(', '');lon = latlon[1].replace(')', '');$('#station_lat').val(latlon[0].replace('(', ''));$('#station_lon').val(latlon[1].replace(')', ''));obtenirInformationsPourCoordonnees(lat, lon);}function initialiserCarte() {if($('#map_canvas').length == 0) {return;}var latlng = new google.maps.LatLng(47.0504, 2.2347);var myOptions = {zoom: 6,center: latlng,mapTypeId: google.maps.MapTypeId.HYBRID};map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);marker = new google.maps.Marker({position: latlng,title:""});if (carteEstEnSaisie()) {marker.setDraggable(true);google.maps.event.addListener(marker, 'dragend', function(event) {mettreAJourValeursFormulaire(marker.getPosition());});$('#conteneur_form_liens_lat_lon').ready(function() {verifierEtLocaliserCoordonnees();ajouterListenerFormulaireSaisieLatLon();ajouterAutoCompletionCommune();});} else {marker.setDraggable(false);$('#conteneur_liens_lat_lon').ready(function() {verifierEtLocaliserCoordonnees();});}marker.setClickable(true);// To add the marker to the map, call setMap();marker.setMap(map);}$('#map_canvas').ready(function() {initialiserCarte();});/**************************************************************************************************************************************************************************************************Fonctions généralistes s'appliquant automatiquement à certaines classes css**************************************************************************************************************************************************************************************************/function initialiserLiensSuppression() {$('.lien_suppression').click(function() {return window.confirm('Êtes vous sur de vouloir supprimer ?');});}$(document).ready(function() {initialiserLiensSuppression();});/**************************************************************************************************************************************************************************************************Fonctions de debug permattant d'afficher les objets javascript à la manière de print_r**************************************************************************************************************************************************************************************************/function dump(arr,level) {var dumped_text = "";if(!level) level = 0;//The padding given at the beginning of the line.var level_padding = "";for(var j=0;j<level+1;j++) level_padding += " ";if(typeof(arr) == 'object') { //Array/Hashes/Objectsfor(var item in arr) {var value = arr[item];if(typeof(value) == 'object') { //If it is an array,dumped_text += level_padding + "'" + item + "' ...\n";dumped_text += dump(value,level+1);} else {dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";}}} else { //Stings/Chars/Numbers etc.dumped_text = "===>"+arr+"<===("+typeof(arr)+")";}return dumped_text;}