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; |
} |