New file |
0,0 → 1,368 |
/** |
************************************************************************************************ |
************************************************************************************************ |
|
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(); |
|
$('.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; |
|
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() { |
|
anneeEnCours = $("#annee_en_cours").attr("value"); |
|
if(typeof(anneeEnCours)=='undefined'){ |
dateCourante = new Date(); |
anneeEnCours = dateCourante.getFullYear(); |
} |
|
$(".calendrier").each(function() { |
$(this).find("input").datepicker({ |
disabled: true, |
altFormat: 'dd/mm/yyyy', |
minDate: '01/01/'+anneeEnCours, |
maxDate: '31/12/'+anneeEnCours |
|
}); |
}); |
} |
|
$(document).ready(function() { |
initialiserCalendrierFormulaire(); |
|
}); |
|
/** Fonctions de manipulation des éléments du tableau pour les transformer en élements cliquables et calendriers **/ |
function initialiserMiniCalendrierFormulaire(id_element) { |
|
anneeEnCours = jQuery.trim($("#annee_en_cours").html()); |
|
if(typeof(anneeEnCours)=='undefined'){ |
dateCourante = new Date(); |
anneeEnCours = dateCourante.getFullYear(); |
} |
|
$('#'+id_element).datepicker({ |
disabled: true, |
altFormat: 'dd/mm/yyyy', |
minDate: '01/01/'+anneeEnCours, |
maxDate: '31/12/'+anneeEnCours |
}); |
} |
|
function remplacerElementDateParFormulaireAjax(id_element, conteneur_selectionne) { |
|
if(elementEnCours != null) { |
elementEnCours.removeClass('element_clique'); |
elementEnCours.html(htmlEnCours); |
} |
|
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="10" maxlenght="10" /><input id="valider_formulaire_ajax" class="valider_formulaire" type="button" value="OK" /></div>'); |
initialiserMiniCalendrierFormulaire(id_formulaire); |
|
$('#valider_formulaire_ajax').bind('click', function() { |
|
donnees_obs = collecterDonneesMiniFormulaire(id_formulaire); |
envoyerRequeteAjaxValidationMiniFormulaire(donnees_obs, id_formulaire); |
|
return true; |
}); |
} |
|
function remplacerMiniFormulaireParElementDate(id_element) { |
|
elementEnCours.html('<span id="'+id_element+'">'+valeur_date_pour_stade+' </span>'); |
|
elementEnCours.removeClass('element_clique'); |
elementEnCours = null; |
elementEnCours = 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.replace('module=Individu&action=afficherListeIndividu','module=Observation&action=validerFormulaireModificationObservationAjax'); |
|
$.post(url_page_courante, donnees_obs, function(data) { |
|
var obj_retour = jQuery.parseJSON(data); |
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 || jQuery.trim(valeur_date_pour_stade) == '') { |
return false ; |
} |
|
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 , |
}; |
|
donnees_obs['observation_'+id_individu_stade_obs[3]] = 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; |
|
function ajouterListenerFormulaireSaisieLatLon() { |
|
$('#cacher_afficher_lien').bind('click', function() { |
$('#conteneur_form_liens_lat_lon').slideToggle(); |
return false; |
}); |
|
$('input#station_lat').bind('blur', function() { |
verifierEtLocaliserCoordonnees(); |
}); |
|
$('input#station_lon').bind('blur', function() { |
verifierEtLocaliserCoordonnees(); |
}); |
|
$('input#localiser_lat_lon').click(function() { |
verifierEtLocaliserCoordonnees(); |
}); |
|
$('#conteneur_form_liens_lat_lon').hide(); |
} |
|
function carteEstEnSaisie() { |
return ($('#conteneur_form_liens_lat_lon').length > 0); |
} |
|
function verifierEtLocaliserCoordonnees() { |
|
lat ; |
lon; |
|
if(carteEstEnSaisie()) { |
lat = $('#station_lat').val(); |
lon = $('#station_lon').val(); |
} 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); |
} |
|
function mettreAJourValeursFormulaire(latlon) { |
|
latlon = latlon.toString().split(','); |
|
$('#station_lat').val(latlon[0].replace('(', '')); |
$('#station_lon').val(latlon[1].replace(')', '')); |
} |
|
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() { |
mettreAJourValeursFormulaire(marker.getPosition()); |
}); |
$('#conteneur_form_liens_lat_lon').ready(function() { |
verifierEtLocaliserCoordonnees(); |
ajouterListenerFormulaireSaisieLatLon(); |
}); |
} 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(); |
}); |