Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1256 Rev 1258
Line 166... Line 166...
166
 
166
 
167
//+----------------------------------------------------------------------------------------------------------+
167
//+----------------------------------------------------------------------------------------------------------+
168
// GOOGLE MAP
168
// GOOGLE MAP
169
var geocoder;
169
var geocoder;
-
 
170
var map;
170
var map;
171
// marqueurs de début et fin de rue
171
var marker;
172
var marker;
-
 
173
var markerFin;
172
var markerFin;
174
// coordonnées de début et fin de rue
173
var latLng;
175
var latLng;
-
 
176
var latLngFin;
174
var latLngFin;
177
// ligne reliant les deux points de début et fin
-
 
178
var ligneRue;
175
var ligneRue;
179
// Booléen de test afin de ne pas faire apparaitre la fin de rue à la premiere localisation
Line 176... Line 180...
176
var premierDeplacement = true;
180
var premierDeplacement = true;
177
 
181
 
178
function initialiserGoogleMap(){
182
function initialiserGoogleMap(){
Line 214... Line 218...
214
 
218
 
215
	// Marqueur google draggable
219
	// Marqueur google draggable
216
	marker = new google.maps.Marker({
220
	marker = new google.maps.Marker({
217
		map: map,
221
		map: map,
218
		draggable: true,
222
		draggable: true,
219
		title: 'Début de la rue',
223
		title: 'Début de la portion de rue étudiée',
220
		icon: GOOGLE_MAP_MARQUEUR_URL,
224
		icon: GOOGLE_MAP_MARQUEUR_URL,
221
		position: latLng
225
		position: latLng
Line 222... Line 226...
222
	});
226
	});
Line 232... Line 236...
232
			deplacerMarker(latLng);
236
			deplacerMarker(latLng);
233
		});
237
		});
234
	}
238
	}
235
}
239
}
Line -... Line 240...
-
 
240
 
-
 
241
 
-
 
242
var valeurDefautRechercheLieu = "Entrez un nom de ville, de lieu ou de rue...";
236
 
243
 
Line 237... Line 244...
237
$(document).ready(function() {
244
$(document).ready(function() {
-
 
245
	
238
	
246
	initialiserGoogleMap();
239
	initialiserGoogleMap();
247
	gererAffichageValeursParDefaut();
240
	
248
 
241
	// Autocompletion du champ adresse
249
	// Autocompletion du champ adresse
242
	$("#rue").autocomplete({
250
	$("#rue").autocomplete({
243
		//Cette partie utilise geocoder pour extraire des valeurs d'adresse
251
		//Cette partie utilise geocoder pour extraire des valeurs d'adresse
Line 266... Line 274...
266
		},
274
		},
267
		// Cette partie est executee a la selection d'une adresse
275
		// Cette partie est executee a la selection d'une adresse
268
		select: function(event, ui) {
276
		select: function(event, ui) {
269
			latLng = new google.maps.LatLng(ui.item.latitude, ui.item.longitude);
277
			latLng = new google.maps.LatLng(ui.item.latitude, ui.item.longitude);
270
			deplacerMarker(latLng);
278
			deplacerMarker(latLng);
-
 
279
			afficherEtapeGeolocalisation(2);
271
		}
280
		}
272
	});
281
	});
Line 273... Line 282...
273
	
282
	
274
	$("#geolocaliser").click(function() {
283
	$("#geolocaliser").click(function() {
Line 287... Line 296...
287
	google.maps.event.addListener(map, 'click', function(event) {
296
	google.maps.event.addListener(map, 'click', function(event) {
288
		deplacerMarker(event.latLng);
297
		deplacerMarker(event.latLng);
289
	});
298
	});
290
});
299
});
Line -... Line 300...
-
 
300
 
-
 
301
function gererAffichageValeursParDefaut() {	
-
 
302
 
-
 
303
	afficherEtapeGeolocalisation(1);
-
 
304
	$("#rue").val(valeurDefautRechercheLieu);
-
 
305
	$('#rue').addClass('valeur-defaut-recherche');
-
 
306
	$("#rue").focus(function() {
-
 
307
		$('#rue').removeClass('valeur-defaut-recherche');
-
 
308
		if ($('#rue').val() == valeurDefautRechercheLieu) {
-
 
309
			$('#rue').val('');
-
 
310
		} else {
-
 
311
			$('#rue').select();
-
 
312
		}
-
 
313
	});
-
 
314
}
-
 
315
 
-
 
316
function afficherEtapeGeolocalisation(numEtape) {
-
 
317
	$(".liste_indication_geolocalisation").children().hide();
-
 
318
	$(".liste_indication_geolocalisation :nth-child("+numEtape+")").show();
-
 
319
}
291
 
320
 
292
function afficherErreurGoogleMap(status) {
321
function afficherErreurGoogleMap(status) {
293
	if (DEBUG) {
322
	if (DEBUG) {
294
		$("#dialogue-google-map").empty();
323
		$("#dialogue-google-map").empty();
295
		$("#dialogue-google-map").append('<pre class="msg-erreur">'+
324
		$("#dialogue-google-map").append('<pre class="msg-erreur">'+
Line 309... Line 338...
309
		if(!premierDeplacement) {
338
		if(!premierDeplacement) {
310
			if(markerFin != undefined) {
339
			if(markerFin != undefined) {
311
				markerFin.setMap(null);
340
				markerFin.setMap(null);
312
			}
341
			}
Line 313... Line 342...
313
			
342
			
314
			latLngFin = new google.maps.LatLng(latLng.lat(), latLng.lng() - 0.0002);
343
			latLngFin = new google.maps.LatLng(latLng.lat(), latLng.lng() + 0.0010);
315
			// Marqueur google draggable
344
			// Marqueur google draggable
316
			markerFin = new google.maps.Marker({
345
			markerFin = new google.maps.Marker({
317
				map: map,
346
				map: map,
318
				draggable: true,
347
				draggable: true,
319
				title: 'Fin de la rue',
348
				title: 'Fin de la portion de rue étudiée',
320
				icon: FIN_ICONE_URL,
349
				icon: FIN_ICONE_URL,
321
				position: latLngFin
350
				position: latLngFin
Line 322... Line 351...
322
			});
351
			});
323
			
352
			
324
			google.maps.event.addListener(markerFin, 'dragend', function() {
353
			google.maps.event.addListener(markerFin, 'dragend', function() {
325
				dessinerLigneRue(marker.getPosition(), markerFin.getPosition());
354
				dessinerLigneRue(marker.getPosition(), markerFin.getPosition());
326
				latLngFin = markerFin.getPosition();
355
				latLngFin = markerFin.getPosition();
-
 
356
				latLngCentre = new google.maps.LatLng((latLngFin.lat() + latLng.lat())/2, (latLngFin.lng() + latLng.lng())/2); 
327
				latLngCentre = new google.maps.LatLng((latLngFin.lat() + latLng.lat())/2, (latLngFin.lng() + latLng.lng())/2); 
357
				mettreAJourMarkerPosition(latLngCentre);
Line 328... Line 358...
328
				mettreAJourMarkerPosition(latLngCentre);
358
				afficherEtapeGeolocalisation(4);
Line 329... Line 359...
329
			});
359
			});
330
			
360
			
-
 
361
			dessinerLigneRue(latLng, latLngFin);
331
			dessinerLigneRue(latLng, latLngFin);
362
			
332
			
363
			latLngCentre = new google.maps.LatLng((latLngFin.lat() + latLng.lat())/2, (latLngFin.lng() + latLng.lng())/2); 
333
			latLngCentre = new google.maps.LatLng((latLngFin.lat() + latLng.lat())/2, (latLngFin.lng() + latLng.lng())/2); 
364
			mettreAJourMarkerPosition(latLng);
334
			mettreAJourMarkerPosition(latLng);
365
			afficherEtapeGeolocalisation(3);
335
		} else {
366
		} else {
Line 449... Line 480...
449
				email : true},
480
				email : true},
450
			courriel_confirmation : {
481
			courriel_confirmation : {
451
				required : true,
482
				required : true,
452
				equalTo: "#courriel"
483
				equalTo: "#courriel"
453
			},
484
			},
454
			rue : "required",
-
 
455
			rue_cote : "required",
485
			rue_cote : "required",
-
 
486
			"milieu[]" : {
456
			milieu : "required",
487
			       required: true,
-
 
488
			       minlength: 1
-
 
489
			},
457
			latitude : {
490
			latitude : {
458
				required: true,
491
				required: true,
459
				range: [-90, 90]},
492
				range: [-90, 90]},
460
			longitude : {
493
			longitude : {
461
				required: true,
494
				required: true,
462
				range: [-180, 180]},
495
				range: [-180, 180]},
463
			date : {
496
			date : {
464
				required: true,
497
				required: true,
465
				date: true},
498
				date: true},
466
			taxon : "required"
499
			taxon : "required"
-
 
500
		},
-
 
501
		messages: {
-
 
502
			"milieu[]": "Vous devez sélectionner au moins un milieu",
467
		}
503
		}
468
	});
504
	});
Line 469... Line 505...
469
	
505
	
470
	$("#courriel_confirmation").bind('paste', function(e) {
506
	$("#courriel_confirmation").bind('paste', function(e) {
Line 483... Line 519...
483
	var obsNumero = 0;
519
	var obsNumero = 0;
484
	$("#ajouter-obs").bind('click', function(e) {
520
	$("#ajouter-obs").bind('click', function(e) {
485
		if ($("#saisie-obs").valid() == false) {
521
		if ($("#saisie-obs").valid() == false) {
486
			$("#dialogue-form-invalide").dialog();
522
			$("#dialogue-form-invalide").dialog();
487
		} else {
523
		} else {
-
 
524
			
-
 
525
			var milieux = [];
-
 
526
			$('input:checked["name=milieux[]"]').each(function() {
-
 
527
				milieux.push($(this).val());
-
 
528
			});
-
 
529
			
488
			//rassemble les obs dans un tableau html
530
			//rassemble les obs dans un tableau html
489
			obsNumero = obsNumero + 1;
531
			obsNumero = obsNumero + 1;
490
			$("#liste-obs tbody").append(
532
			$("#liste-obs tbody").append(
491
					'<tr id="obs'+obsNumero+'" class="obs">'+
533
					'<tr id="obs'+obsNumero+'" class="obs">'+
492
					'<td>'+obsNumero+'</td>'+
534
					'<td>'+obsNumero+'</td>'+
493
					'<td>'+$("#date").val()+'</td>'+
535
					'<td>'+$("#date").val()+'</td>'+
494
					'<td>'+$("#rue").val()+'</td>'+
536
					'<td>'+$("#rue").val()+'</td>'+
495
					'<td>'+$("#taxon option:selected").text()+'</td>'+
537
					'<td>'+$("#taxon option:selected").text()+'</td>'+
496
					'<td>'+$('input[name=milieu]:checked').val()+'</td>'+
538
					'<td>'+milieux.join(',')+'</td>'+
497
					'<td>'+$("#latitude").val()+' / '+$("#longitude").val()+'</td>'+
539
					'<td>'+$("#latitude").val()+' / '+$("#longitude").val()+'</td>'+
498
					//Ajout du champ photo
540
					//Ajout du champ photo
499
					'<td class="obs-miniature">'+ajouterImgMiniatureAuTransfert()+'</td>'+
541
					'<td class="obs-miniature">'+ajouterImgMiniatureAuTransfert()+'</td>'+
500
					'<td>'+$("#notes").val()+'</td>'+
542
					'<td>'+$("#notes").val()+'</td>'+
501
					'<td><button class="supprimer-obs" value="'+obsNumero+'" title="Supprimer l\'observation '+obsNumero+'">'+
543
					'<td><button class="supprimer-obs" value="'+obsNumero+'" title="Supprimer l\'observation '+obsNumero+'">'+
Line 510... Line 552...
510
				'nom_ret' : taxons[numNomSel]['nom_ret'],
552
				'nom_ret' : taxons[numNomSel]['nom_ret'],
511
				'num_nom_ret' : taxons[numNomSel]['num_nom_ret'],
553
				'num_nom_ret' : taxons[numNomSel]['num_nom_ret'],
512
				'num_taxon' : taxons[numNomSel]['num_taxon'],
554
				'num_taxon' : taxons[numNomSel]['num_taxon'],
513
				'famille' : taxons[numNomSel]['famille'],
555
				'famille' : taxons[numNomSel]['famille'],
514
				'nom_fr' : taxons[numNomSel]['nom_fr'],
556
				'nom_fr' : taxons[numNomSel]['nom_fr'],
515
				'milieu' : $('input[name=milieu]:checked').val(),
557
				'milieu' : milieux.join(','),
516
				'latitude' : $("#latitude").val(),
558
				'latitude' : $("#latitude").val(),
517
				'longitude' : $("#longitude").val(),
559
				'longitude' : $("#longitude").val(),
518
				'commune_nom' : $("#commune-nom").text(),
560
				'commune_nom' : $("#commune-nom").text(),
519
				'commune_code_insee' : $("#commune-code-insee").text(),
561
				'commune_code_insee' : $("#commune-code-insee").text(),
520
				'lieudit' : $("#rue").val(),
562
				'lieudit' : $("#rue").val(),
Line 596... Line 638...
596
							$.each(debugInfos, function (cle, valeur) {
638
							$.each(debugInfos, function (cle, valeur) {
597
								debugMsg += valeur + "\n";
639
								debugMsg += valeur + "\n";
598
							});
640
							});
599
						}
641
						}
600
					}
642
					}
-
 
643
					console.log(jqXHR);
601
					if (erreurMsg != '') {
644
					if (erreurMsg != '') {
602
						$("#dialogue-obs-transaction").append('<p class="msg">'+
645
						$("#dialogue-obs-transaction").append('<p class="msg">'+
603
								'Une erreur est survenue lors de la transmission de vos observations.'+'<br />'+
646
								'Une erreur est survenue lors de la transmission de vos observations.'+'<br />'+
604
								'Vous pouvez signaler le disfonctionnement à <a href="'+
647
								'Vous pouvez signaler le disfonctionnement à <a href="'+
605
								'mailto:cel@tela-botanica.org'+'?'+
648
								'mailto:cel@tela-botanica.org'+'?'+