Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 90 | Rev 168 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 90 Rev 100
Line 167... Line 167...
167
		maxDate: '31/12/'+anneeEnCours,
167
		maxDate: '31/12/'+anneeEnCours,
168
		onSelect: function(dateText, inst) {
168
		onSelect: function(dateText, inst) {
169
			$('#'+id_element).val(dateText);
169
			$('#'+id_element).val(dateText);
170
			donnees_obs = collecterDonneesMiniFormulaire(id_formulaire);
170
			donnees_obs = collecterDonneesMiniFormulaire(id_formulaire);
171
			envoyerRequeteAjaxValidationMiniFormulaire(donnees_obs, id_formulaire);
171
			envoyerRequeteAjaxValidationMiniFormulaire(donnees_obs, id_formulaire);
172
		},
-
 
173
		onClose: function(dateText, inst) {
-
 
174
			remplacerMiniFormulaireParElementDate(id_element);
-
 
175
		}
172
		}
176
 
-
 
177
	});
173
	});
Line 178... Line 174...
178
 
174
 
Line 179... Line 175...
179
	$('#'+id_element).datepicker( "show" );
175
	$('#'+id_element).datepicker( "show" );
Line 215... Line 211...
215
	/*if(!estUneDateValide(valeur_date_pour_stade)) {
211
	/*if(!estUneDateValide(valeur_date_pour_stade)) {
216
		valeur_date_pour_stade = htmlEnCours;
212
		valeur_date_pour_stade = htmlEnCours;
217
	}*/
213
	}*/
Line 218... Line 214...
218
	
214
	
219
	elementEnCours.html('<span id="'+id_element+'">'+valeur_date_pour_stade+' </span>');
-
 
220
	
215
	elementEnCours.html('<span id="'+id_element+'">'+valeur_date_pour_stade+' </span>');
221
	elementEnCours.removeClass('element_clique');
216
	elementEnCours.removeClass('element_clique');
222
	elementEnCours = null;
-
 
-
 
217
	elementEnCours = null;
223
	elementEnCours = null; 
218
 
Line 224... Line 219...
224
}
219
}
225
 
220
 
226
 
221
 
-
 
222
/** Fonctions d'envoi et de récupération des élements du formulaire ajax **/
-
 
223
function envoyerRequeteAjaxValidationMiniFormulaire(donnees_obs, id_formulaire) {
227
/** Fonctions d'envoi et de récupération des élements du formulaire ajax **/
224
		
-
 
225
	url_page_courante = document.URL;
228
function envoyerRequeteAjaxValidationMiniFormulaire(donnees_obs, id_formulaire) {
226
	url_page_courante = url_page_courante.replace('module=Individu','module=Observation');
229
	
227
	url_page_courante = url_page_courante.replace('action=afficherListeIndividu','action=validerFormulaireModificationObservationAjax');
Line 230... Line 228...
230
	url_page_courante = document.URL.replace('module=Individu&action=afficherListeIndividu','module=Observation&action=validerFormulaireModificationObservationAjax');
228
	url_ajax = url_page_courante.replace('action=validerFormulaireSaisieIndividu','action=validerFormulaireModificationObservationAjax');
231
	
-
 
232
	$.post(url_page_courante, donnees_obs, function(obj_retour) {
229
		
233
		
230
	$.post(url_ajax, donnees_obs, function(obj_retour) {
234
		if(obj_retour.reponse === 'OK') {
231
		
235
			
232
		if(obj_retour.reponse === 'OK') {
Line 279... Line 276...
279
	************************************************************************************************
276
	************************************************************************************************
280
	************************************************************************************************
277
	************************************************************************************************
281
**/  
278
**/  
282
var map;
279
var map;
283
var marker;
280
var marker;
-
 
281
var liste_localite_en_cours;
-
 
282
var indice_commune_en_cours;
-
 
283
var liste_auto_completion_a_le_focus;
-
 
284
var timerRequeteAutocompletion;
-
 
285
var timerAffichageAutocompletion;
Line 284... Line -...
284
 
-
 
285
function ajouterListenerFormulaireSaisieLatLon() {
286
 
286
	
287
 
287
	$('#cacher_afficher_lien').bind('click', function() {
288
function cacherElementsRafraichissables() {
288
		$('#conteneur_form_liens_lat_lon').slideToggle();
289
	$('.rafraichissable input').attr('disabled', 'disabled');
289
		return false;
290
	$('.rafraichissable input[type="text"]').addClass("chargement");
290
	});
291
}
-
 
292
 
291
	
293
function montrerElementsRafraichissables() {
292
	$('input#station_lat').bind('blur', function() {
294
	$('.rafraichissable input').removeAttr('disabled');
293
		verifierEtLocaliserCoordonnees();
295
	$('.chargement').removeClass("chargement");
294
	});
296
}
295
	
-
 
296
	$('input#station_lon').bind('blur', function() {
297
 
297
		verifierEtLocaliserCoordonnees();
-
 
Line -... Line 298...
-
 
298
function ajouterAutoCompletionCommune() {
-
 
299
	
-
 
300
	$('input#station_commune').after('<div class="conteneur_suggestions"></div>');
-
 
301
	$('input#station_commune').parent().addClass('autocompletion');
-
 
302
	$('input#station_commune').attr('autocomplete','off');
-
 
303
	$('.conteneur_suggestions').hide();
-
 
304
	rendreListeAutoCompletionInteractive('input#station_commune');
-
 
305
}
-
 
306
 
298
	});
307
function ajouterListenerFormulaireSaisieLatLon() {
299
	
308
				
300
	$('input#localiser_lat_lon').click(function() {
309
	$('input#localiser_lat_lon').click(function() {
301
		verifierEtLocaliserCoordonnees();
-
 
302
	});
-
 
303
	
310
		verifierEtLocaliserCoordonnees();
Line 304... Line 311...
304
	$('#conteneur_form_liens_lat_lon').hide();
311
	});
305
}
312
}
306
 
313
 
Line 314... Line 321...
314
	lon;
321
	lon;
Line 315... Line 322...
315
	
322
	
316
	if(carteEstEnSaisie()) {
323
	if(carteEstEnSaisie()) {
317
		lat = $('#station_lat').val();
324
		lat = $('#station_lat').val();
-
 
325
		lon = $('#station_lon').val();
-
 
326
		
318
		lon = $('#station_lon').val();
327
		obtenirInformationsPourCoordonnees(lat, lon);
319
	} else {
328
	} else {
320
		var lat = jQuery.trim($('#station_lat').html());
329
		var lat = jQuery.trim($('#station_lat').html());
321
		var lon = jQuery.trim($('#station_lon').html());
330
		var lon = jQuery.trim($('#station_lon').html());
Line 333... Line 342...
333
	
342
	
Line 334... Line 343...
334
	var positionMarker = new google.maps.LatLng(lat, lon);
343
	var positionMarker = new google.maps.LatLng(lat, lon);
335
	
344
	
-
 
345
	marker.setPosition(positionMarker);
-
 
346
	map.setCenter(positionMarker);
-
 
347
	map.setZoom(12);
-
 
348
}
-
 
349
 
-
 
350
function obtenirInformationsPourCoordonnees(lat, lon) {
-
 
351
		
-
 
352
	lat = jQuery.trim(lat);
-
 
353
	lon = jQuery.trim(lon);	
-
 
354
	
-
 
355
	if(isNaN(lat) || lat.length <= 0 || isNaN(lon) || lon.length <= 0) {
-
 
356
		return;
-
 
357
	}
-
 
358
	
-
 
359
	cacherElementsRafraichissables();
-
 
360
	
-
 
361
	$.get('http://162.38.234.9/obs_saisons/applications/jrest/OdsCommune/informationsPourCoordonnees/?lat='+lat+'&lon='+lon, function(data) {	
-
 
362
		
-
 
363
		infos_localites = jQuery.parseJSON(data);
-
 
364
		$('#station_alt').val(infos_localites.alt);
-
 
365
		
-
 
366
		if(jQuery.trim($('#station_commune').val()) == '') { 
-
 
367
			$('#station_commune').val(infos_localites.commune);
-
 
368
		}
-
 
369
		
-
 
370
		montrerElementsRafraichissables();
-
 
371
		
-
 
372
	});
-
 
373
 
-
 
374
}
-
 
375
 
-
 
376
function obtenirInformationsPourCommune(nom_commune) {
-
 
377
	
-
 
378
	if(jQuery.trim(nom_commune) == '') {
-
 
379
		$('.conteneur_suggestions').hide();
-
 
380
		return;
-
 
381
	}
-
 
382
	
-
 
383
	$.get('http://162.38.234.9/obs_saisons/applications/jrest/OdsCommune/informationsPourCommune/?commune='+nom_commune, function(data) {	
-
 
384
		
-
 
385
		infos_localites = jQuery.parseJSON(data);
-
 
386
		afficherListeAutoCompletion(infos_localites);		
-
 
387
	});
-
 
388
}
-
 
389
 
-
 
390
function afficherListeAutoCompletion(tableau_localites) {
-
 
391
	
-
 
392
	liste_localite_en_cours = tableau_localites;
-
 
393
	
-
 
394
	html_liste_localite = '<ul class="liste_suggestions">';
-
 
395
	
-
 
396
	for(i = 0; i< tableau_localites.length; i++) {
-
 
397
		html_liste_localite += '<li id="commune_'+i+'" class="element_auto_completion_commune">'+tableau_localites[i]['commune']+'  ('+tableau_localites[i]['dpt']+')</li>';
-
 
398
	}
-
 
399
	
-
 
400
	html_liste_localite += '</ul>';
-
 
401
	
-
 
402
	$('.conteneur_suggestions').html(html_liste_localite);
-
 
403
	
-
 
404
	$('.element_auto_completion_commune').hover(function() {
-
 
405
		indice = $(this).attr('id').split('_')[1];
-
 
406
		mettreEnSurbrillanceCommune(indice);
-
 
407
	});
-
 
408
	
-
 
409
	$('.element_auto_completion_commune').click(function() {
-
 
410
		indice = $(this).attr('id').split('_')[1];
-
 
411
		selectionnerCommune(indice);
-
 
412
	});
-
 
413
	
-
 
414
	if(tableau_localites.length > 0) {
-
 
415
		$('.conteneur_suggestions').show();
-
 
416
		
-
 
417
		mettreEnSurbrillanceCommune(0);
-
 
418
	}
-
 
419
}
-
 
420
 
-
 
421
function mettreEnSurbrillanceCommune(indice) {
-
 
422
	
-
 
423
	if(indice_commune_en_cours != null) { 
-
 
424
		$('#commune_'+indice_commune_en_cours).removeClass('element_selectionne');
-
 
425
	}
-
 
426
	$('#commune_'+indice).addClass('element_selectionne');
-
 
427
	indice_commune_en_cours = indice;
-
 
428
	
-
 
429
	reprogrammerTimerPourCacherListeAutoCompletion();
-
 
430
}
-
 
431
 
-
 
432
function rendreListeAutoCompletionInteractive(selecteur) {
-
 
433
	
-
 
434
	$(selecteur).keyup(function(event) {
-
 
435
		if(event.which == 8 || (event.which >= 48 && event.which <= 90)) { 
-
 
436
			
-
 
437
			reprogrammerTimerPourCacherListeAutoCompletion();
-
 
438
			reprogrammerTimerPourLancerRequeteCommune();
-
 
439
		}
-
 
440
	});
-
 
441
	
-
 
442
	$(selecteur).keydown(function(event) {
-
 
443
		
-
 
444
		reprogrammerTimerPourCacherListeAutoCompletion();
-
 
445
		
-
 
446
		// entree
-
 
447
		if(event.which==13){
-
 
448
			selectionnerCommune(indice_commune_en_cours);
-
 
449
			event.preventDefault();
-
 
450
		}
-
 
451
		
-
 
452
		// haut
-
 
453
		if(event.which == 38){
-
 
454
			if(indice_commune_en_cours > 0) { 
-
 
455
				mettreEnSurbrillanceCommune(indice_commune_en_cours - 1);
-
 
456
			}
-
 
457
		}
-
 
458
		
-
 
459
		// bas
-
 
460
		if(event.which == 40){
-
 
461
			if(indice_commune_en_cours < liste_localite_en_cours.length - 1) { 
-
 
462
				mettreEnSurbrillanceCommune(indice_commune_en_cours + 1);
-
 
463
			}
-
 
464
		}
-
 
465
	});
-
 
466
	
-
 
467
	$('.conteneur_suggestions').blur(function() {
-
 
468
		$('.conteneur_suggestions').hide();
-
 
469
	});
-
 
470
}
-
 
471
 
-
 
472
function reprogrammerTimerPourCacherListeAutoCompletion() {
-
 
473
	
-
 
474
	if(timerAffichageAutocompletion != null) {
-
 
475
		window.clearTimeout(timerAffichageAutocompletion);
-
 
476
	}
-
 
477
	
-
 
478
	timerAffichageAutocompletion = window.setTimeout(function() {
-
 
479
		$('.conteneur_suggestions').hide();
-
 
480
	}, 2000);
-
 
481
}
-
 
482
 
-
 
483
function reprogrammerTimerPourLancerRequeteCommune() {
-
 
484
	
-
 
485
	if(timerRequeteAutocompletion != null) {
-
 
486
		window.clearTimeout(timerRequeteAutocompletion);
-
 
487
	}
-
 
488
	
-
 
489
	timerRequeteAutocompletion = window.setTimeout(function() {
-
 
490
		obtenirInformationsPourCommune($('input#station_commune').val());
-
 
491
	}, 350);
-
 
492
}
-
 
493
 
-
 
494
function selectionnerCommune(indice) {
-
 
495
	
-
 
496
	infos_commune = liste_localite_en_cours[indice];
-
 
497
	
-
 
498
	$('input#station_commune').val(infos_commune['commune']);
-
 
499
	$('input#station_lat').val(infos_commune['lat']);
-
 
500
	$('input#station_lon').val(infos_commune['lon']);
-
 
501
	
-
 
502
	verifierEtLocaliserCoordonnees();
336
	marker.setPosition(positionMarker);
503
	
Line 337... Line 504...
337
	map.setCenter(positionMarker);
504
	$('.conteneur_suggestions').hide();
Line 338... Line 505...
338
}
505
}
Line -... Line 506...
-
 
506
 
-
 
507
function mettreAJourValeursFormulaire(latlon) {
-
 
508
 
339
 
509
	latlon = latlon.toString().split(','); 
340
function mettreAJourValeursFormulaire(latlon) {
510
	
-
 
511
	lat = latlon[0].replace('(', '');
-
 
512
	lon = latlon[1].replace(')', '');
341
 
513
	
Line 342... Line 514...
342
	latlon = latlon.toString().split(','); 
514
	$('#station_lat').val(latlon[0].replace('(', ''));
Line 343... Line 515...
343
	
515
	$('#station_lon').val(latlon[1].replace(')', ''));
Line 368... Line 540...
368
	
540
	
Line 369... Line 541...
369
	if (carteEstEnSaisie()) {
541
	if (carteEstEnSaisie()) {
Line 370... Line 542...
370
	
542
	
371
			marker.setDraggable(true);
543
			marker.setDraggable(true);
372
			
544
			
373
			google.maps.event.addListener(marker, 'dragend', function() {	
545
			google.maps.event.addListener(marker, 'dragend', function(event) {	
374
				mettreAJourValeursFormulaire(marker.getPosition());
546
				mettreAJourValeursFormulaire(marker.getPosition());
375
			});
547
			});
-
 
548
			$('#conteneur_form_liens_lat_lon').ready(function() {
376
			$('#conteneur_form_liens_lat_lon').ready(function() {
549
				verifierEtLocaliserCoordonnees();
377
				verifierEtLocaliserCoordonnees();
550
				ajouterListenerFormulaireSaisieLatLon();
378
				ajouterListenerFormulaireSaisieLatLon();
551
				ajouterAutoCompletionCommune();
379
			});
552
			});
380
	} else {
553
	} else {
Line 390... Line 563...
390
	marker.setMap(map); 
563
	marker.setMap(map); 
391
}
564
}
Line 392... Line 565...
392
 
565
 
393
$('#map_canvas').ready(function() {
566
$('#map_canvas').ready(function() {
394
	initialiserCarte();
-
 
395
});
567
	initialiserCarte();
-
 
568
});
-
 
569
 
-
 
570
 
-
 
571
/** 
-
 
572
************************************************************************************************
-
 
573
************************************************************************************************
-
 
574
 
-
 
575
    Fonctions de debug permattant d'afficher les objets javascript à la manière de print_r
-
 
576
 
-
 
577
************************************************************************************************
-
 
578
************************************************************************************************
-
 
579
**/ 
-
 
580
 
-
 
581
function dump(arr,level) {
-
 
582
	var dumped_text = "";
-
 
583
	if(!level) level = 0;
-
 
584
 
-
 
585
	//The padding given at the beginning of the line.
-
 
586
	var level_padding = "";
-
 
587
	for(var j=0;j<level+1;j++) level_padding += "    ";
-
 
588
 
-
 
589
	if(typeof(arr) == 'object') { //Array/Hashes/Objects
-
 
590
	 for(var item in arr) {
-
 
591
	  var value = arr[item];
-
 
592
	 
-
 
593
	  if(typeof(value) == 'object') { //If it is an array,
-
 
594
	   dumped_text += level_padding + "'" + item + "' ...\n";
-
 
595
	   dumped_text += dump(value,level+1);
-
 
596
	  } else {
-
 
597
	   dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
-
 
598
	  }
-
 
599
	 }
-
 
600
	} else { //Stings/Chars/Numbers etc.
-
 
601
	 dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
-
 
602
	}
-
 
603
	return dumped_text;
-
 
604
}