Subversion Repositories Sites.obs-saisons.fr

Compare Revisions

Ignore whitespace Rev 99 → Rev 100

/trunk/applications/saisie/squelettes/js/saisie.js
169,11 → 169,7
$('#'+id_element).val(dateText);
donnees_obs = collecterDonneesMiniFormulaire(id_formulaire);
envoyerRequeteAjaxValidationMiniFormulaire(donnees_obs, id_formulaire);
},
onClose: function(dateText, inst) {
remplacerMiniFormulaireParElementDate(id_element);
}
 
});
 
$('#'+id_element).datepicker( "show" );
217,22 → 213,23
}*/
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(obj_retour) {
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);
}
});
281,27 → 278,37
**/
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() {
$('#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() {
316,6 → 323,8
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());
335,14 → 344,177
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('http://162.38.234.9/obs_saisons/applications/jrest/OdsCommune/informationsPourCoordonnees/?lat='+lat+'&lon='+lon, function(data) {
infos_localites = jQuery.parseJSON(data);
$('#station_alt').val(infos_localites.alt);
if(jQuery.trim($('#station_commune').val()) == '') {
$('#station_commune').val(infos_localites.commune);
}
montrerElementsRafraichissables();
});
 
}
 
function obtenirInformationsPourCommune(nom_commune) {
if(jQuery.trim(nom_commune) == '') {
$('.conteneur_suggestions').hide();
return;
}
$.get('http://162.38.234.9/obs_saisons/applications/jrest/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();
// entree
if(event.which==13){
selectionnerCommune(indice_commune_en_cours);
event.preventDefault();
}
// haut
if(event.which == 38){
if(indice_commune_en_cours > 0) {
mettreEnSurbrillanceCommune(indice_commune_en_cours - 1);
}
}
// bas
if(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']);
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() {
370,12 → 542,13
marker.setDraggable(true);
google.maps.event.addListener(marker, 'dragend', function() {
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);
392,4 → 565,40
 
$('#map_canvas').ready(function() {
initialiserCarte();
});
});
 
 
/**
************************************************************************************************
************************************************************************************************
 
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/Objects
for(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;
}