Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1922 Rev 1946
Line 44... Line 44...
44
 
44
 
45
//+----------------------------------------------------------------------------------------------------------+
45
//+----------------------------------------------------------------------------------------------------------+
Line 46... Line 46...
46
//FORM IDENTITE : gestion de l'observateur => OK
46
//FORM IDENTITE : gestion de l'observateur => OK
47
 
47
 
-
 
48
$(document).ready(function() {
-
 
49
	requeterIdentite();// Sur rechargement de la page
48
$(document).ready(function() {
50
	
-
 
51
	// Interaction sur le formulaire observateur
-
 
52
	$('#courriel').on('keypress', testerLancementRequeteIdentite);
-
 
53
	$('#courriel').on('blur', requeterIdentite);
-
 
54
	$('#prenom').on('change', formaterPrenom);
49
	$('#courriel').on('blur', requeterIdentite);
55
	$('#nom').on('change', formaterNom);
Line 50... Line 56...
50
	$('#courriel').on('keypress', testerLancementRequeteIdentite);
56
	$('#courriel_confirmation').on('paste', bloquerCopierCollerCourriel);
51
});
57
});
52
 
58
 
Line 58... Line 64...
58
	}
64
	}
59
}
65
}
Line 60... Line 66...
60
 
66
 
61
function requeterIdentite() {
67
function requeterIdentite() {
62
	var courriel = $('#courriel').val();
68
	var courriel = $('#courriel').val();
63
	//TODO: mettre ceci en paramètre de config
69
	if (courriel) {
64
	var urlAnnuaire = SERVICE_ANNUAIRE_ID_URL + courriel;
70
		var urlAnnuaire = SERVICE_ANNUAIRE_ID_URL + courriel;
65
	$.ajax({
71
		$.ajax({
66
		url: urlAnnuaire,
72
			url: urlAnnuaire,
67
		type: 'GET',
73
			type: 'GET',
68
		success: function(data, textStatus, jqXHR) {
74
			success: function(data, textStatus, jqXHR) {
69
			if (data != undefined && data[courriel] != undefined) {
75
				if (data != undefined && data[courriel] != undefined) {
70
				var infos = data[courriel];
76
					var infos = data[courriel];
71
				$('#id_utilisateur').val(infos.id);
77
					$('#id_utilisateur').val(infos.id);
72
				$('#prenom').val(infos.prenom);
78
					$('#prenom').val(infos.prenom);
73
				$('#nom').val(infos.nom);
79
					$('#nom').val(infos.nom);
74
				$('#courriel_confirmation').val(courriel);
80
					$('#courriel_confirmation').val(courriel);
75
				$('#prenom, #nom, #courriel_confirmation').attr('disabled', 'disabled');
81
					$('#prenom, #nom, #courriel_confirmation').attr('disabled', 'disabled');
76
				$('#structure').focus();
82
					$('#structure').focus();
-
 
83
				} else {
-
 
84
					surErreurCompletionCourriel();
-
 
85
				}
-
 
86
			},
77
			} else {
87
			error: function(jqXHR, textStatus, errorThrown) {
-
 
88
				surErreurCompletionCourriel();
-
 
89
			},
-
 
90
			complete: function(jqXHR, textStatus) {
-
 
91
				$('#zone-prenom-nom').removeClass('hidden');
78
				surErreurCompletionCourriel();
92
				$('#zone-courriel-confirmation').removeClass('hidden');
79
			}
-
 
80
		},
-
 
81
		error: function(jqXHR, textStatus, errorThrown) {
-
 
82
			surErreurCompletionCourriel();
-
 
83
		},
-
 
84
		complete: function(jqXHR, textStatus) {
-
 
85
			$('#zone-prenom-nom').removeClass('hidden');
-
 
86
			$('#zone-courriel-confirmation').removeClass('hidden');
-
 
87
		}
93
			}
-
 
94
	});
88
	});
95
	}
Line 89... Line 96...
89
}
96
}
90
 
-
 
91
function surErreurCompletionCourriel() {
97
 
92
	$('#prenom, #nom, #courriel_confirmation').val('');
98
function surErreurCompletionCourriel() {
93
	$('#prenom, #nom, #courriel_confirmation').removeAttr('disabled');
99
	$('#prenom, #nom, #courriel_confirmation').removeAttr('disabled');
Line 94... Line 100...
94
	afficherPanneau('#dialogue-courriel-introuvable');
100
	afficherPanneau('#dialogue-courriel-introuvable');
Line 118... Line 124...
118
		}
124
		}
119
	}
125
	}
120
	$(this).val(prenom.join(' '));
126
	$(this).val(prenom.join(' '));
121
}
127
}
Line -... Line 128...
-
 
128
 
-
 
129
function bloquerCopierCollerCourriel() {
-
 
130
	afficherPanneau('#dialogue-bloquer-copier-coller');
-
 
131
	return false;
-
 
132
}
122
 
133
 
123
//+----------------------------------------------------------------------------------------------------------+
134
//+----------------------------------------------------------------------------------------------------------+
Line 124... Line 135...
124
//GOOGLE MAP => OK
135
//GOOGLE MAP => OK
125
 
136
 
Line 182... Line 193...
182
	
193
	
183
	$('#geolocaliser').on('click', geolocaliser);
194
	$('#geolocaliser').on('click', geolocaliser);
Line 184... Line 195...
184
});
195
});
185
 
196
 
-
 
197
function initialiserGoogleMap(){
-
 
198
	latLngDeb = new google.maps.LatLng(48.8543, 2.3483);// Paris
-
 
199
	if (VILLE == 'Marseille') {
-
 
200
		latLngDeb = new google.maps.LatLng(43.29545, 5.37458);
-
 
201
	} else if (VILLE == 'Montpellier') {
186
function initialiserGoogleMap(){
202
		latLngDeb = new google.maps.LatLng(43.61077, 3.87672);
187
	latLngDeb = new google.maps.LatLng(46.30871, 2.54395);// Centre de la France
203
	}
188
	var options = {
204
	var options = {
189
			zoom: 5,
205
			zoom: 16,
190
			center: latLngDeb,
206
			center: latLngDeb,
191
			mapTypeId: google.maps.MapTypeId.HYBRID,
207
			mapTypeId: google.maps.MapTypeId.HYBRID,
192
			mapTypeControlOptions: {
208
			mapTypeControlOptions: {
Line 646... Line 662...
646
	$('.has-tooltip').tooltip('enable');
662
	$('.has-tooltip').tooltip('enable');
647
	$('#btn-aide').on('click', basculerAffichageAide);
663
	$('#btn-aide').on('click', basculerAffichageAide);
648
	$('.dropdown-menu input, .dropdown-menu label').on('click', function(event) {
664
	$('.dropdown-menu input, .dropdown-menu label').on('click', function(event) {
649
		event.stopPropagation();
665
		event.stopPropagation();
650
	});
666
	});
-
 
667
	
-
 
668
	// Gestion de la liste des taxons
-
 
669
	ajouterAutocompletionNoms();
-
 
670
	surChangementTaxonListe();
-
 
671
	$('#taxon-liste').on('change', surChangementTaxonListe);
-
 
672
	console.log('Selected taxon:'+$('#taxon-liste option:selected').val());
-
 
673
	
Line 651... Line 674...
651
 
674
 
652
	// Interaction sur le formulaire observateur
675
	// Validation du formulaire
653
	$('#prenom').on('change', formaterPrenom);
676
	configurerFormValidator();
654
	$('#nom').on('change', formaterNom);
-
 
Line 655... Line 677...
655
	$('#courriel_confirmation').on('paste', bloquerCopierCollerCourriel);
677
	definirReglesFormValidator();
656
	
678
	
657
	// Interaction sur le formulaire obs
679
	// Interaction sur le formulaire obs
658
	configurerDatePicker('#date');
-
 
659
	$('a.afficher-coord').on('click', basculerAffichageCoord);
-
 
660
	$('#taxon-liste').on('change', surChangementTaxonListe);	
680
	configurerDatePicker('#date');
661
	ajouterAutocompletionNoms();
681
	$('a.afficher-coord').on('click', basculerAffichageCoord);
662
	$('.cb-milieux').on('click', function(event) {
682
	$('.cb-milieux').on('click', function(event) {
663
		$(this).valid();
683
		$(this).valid();
664
		event.stopPropagation();
-
 
665
	});
-
 
666
 
-
 
667
	// Validation du formulaire
-
 
668
	configurerFormValidator();
-
 
669
	definirReglesFormValidator();
-
 
670
	
684
		event.stopPropagation();
671
	// Gestion des obs
685
	});
672
	$('#ajouter-obs').on('click', ajouterObs);
686
	$('#ajouter-obs').on('click', ajouterObs);
673
	$('.obs-nbre').on('changement', surChangementNbreObs);
687
	$('.obs-nbre').on('changement', surChangementNbreObs);
Line 766... Line 780...
766
			'milieu[]': 'Vous devez sélectionner au moins un milieu'
780
			'milieu[]': 'Vous devez sélectionner au moins un milieu'
767
		}
781
		}
768
	});
782
	});
769
}
783
}
Line -... Line 784...
-
 
784
 
-
 
785
function validerFormulaire() {
-
 
786
	var observateur = $('#form-observateur').valid(),
-
 
787
		obs = $('#form-obs').valid(),
-
 
788
		debRue = (latLngDeb == undefined) ? false : true,
-
 
789
		finRue = (latLngFin == undefined) ? false : true;
-
 
790
	var ok = (observateur && obs && debRue && finRue) ? true : false;
-
 
791
	//console.log('observateur:'+observateur+'-obs:'+obs+'-debRue:'+debRue+'-finRue:'+finRue);
-
 
792
	return ok;
-
 
793
}
770
 
794
 
771
function surChangementTaxonListe() {
795
function surChangementTaxonListe() {
772
	if ($('#taxon-liste').val() === '?') {
796
	if ($('#taxon-liste').val() === '?') {
773
		$('#taxon-input-groupe').removeClass('hidden');
797
		$('#taxon-input-groupe').removeClass('hidden');
774
	} else {
798
	} else {
Line 806... Line 830...
806
		$(this).removeClass('btn-success').addClass('btn-warning');
830
		$(this).removeClass('btn-success').addClass('btn-warning');
807
		$('#btn-aide-txt', this).text("Activer l'aide");
831
		$('#btn-aide-txt', this).text("Activer l'aide");
808
	}
832
	}
809
}
833
}
Line 810... Line -...
810
 
-
 
811
function bloquerCopierCollerCourriel() {
-
 
812
	afficherPanneau('#dialogue-bloquer-copier-coller');
-
 
813
	return false;
-
 
814
}
-
 
815
 
834
 
816
function basculerAffichageCoord() {
835
function basculerAffichageCoord() {
817
	$('.afficher-coord-action').toggle();
836
	$('.afficher-coord-action').toggle();
818
	$('#coordonnees-geo').toggle('slow');
837
	$('#coordonnees-geo').toggle('slow');
819
	//valeur false pour que le lien ne soit pas suivi
838
	//valeur false pour que le lien ne soit pas suivi
Line 849... Line 868...
849
		nomSpecial = $('#taxon-liste option:selected').hasClass('nom-special'),
868
		nomSpecial = $('#taxon-liste option:selected').hasClass('nom-special'),
850
		taxon = ($('#taxon-liste').val() == '?') ? $('#taxon').val() : $('#taxon-liste option:selected').data('nom-a-sauver'),
869
		taxon = ($('#taxon-liste').val() == '?') ? $('#taxon').val() : $('#taxon-liste option:selected').data('nom-a-sauver'),
851
		referentiel = (numNomSel == undefined) ? '' : '['+NOM_SCI_PROJET+']',
870
		referentiel = (numNomSel == undefined) ? '' : '['+NOM_SCI_PROJET+']',
852
		commune = $('#commune-nom').text(),
871
		commune = $('#commune-nom').text(),
853
		codeInsee = $('#commune-code-insee').text(),
872
		codeInsee = $('#commune-code-insee').text(),
-
 
873
		station = $('input[name="adresse"]').val(),
854
		lat = $('input[name="latitude"]').val(),
874
		lat = $('input[name="latitude"]').val(),
855
		lng = $('input[name="longitude"]').val(),
875
		lng = $('input[name="longitude"]').val(),
856
		date = $('#date').val(),
876
		date = $('#date').val(),
857
		site = $('#station').val(),
-
 
858
		revetement = $('#revetement-sol').val(),
-
 
859
		intensiteGestion = $('#intensite-gestion').val(),
-
 
860
		resistance = $('#resistance-traitement-phyto').val(),
-
 
861
		milieux = getMilieux(),
877
		milieux = getMilieux(),
862
		notes = (nomSpecial ? taxons[numNomSel]['nom_fr'] + ".<br />" : '') + $('#notes').val();
878
		notes = (nomSpecial ? taxons[numNomSel]['nom_fr'] + ".<br />" : '') + $('#notes').val();
Line 863... Line 879...
863
	
879
	
864
	$('#liste-obs').prepend(
880
	$('#liste-obs').prepend(
865
		'<div id="obs'+obsNbre+'" class="row-fluid obs obs'+obsNbre+'">'+
881
		'<div id="obs'+obsNbre+'" class="row-fluid obs obs'+obsNbre+'">' +
866
			'<div class="span12">'+
882
			'<div class="span12">' +
867
				'<div class="well">'+
883
				'<div class="well">' +
868
					'<div class="obs-action pull-right has-tooltip" data-placement="bottom" '+
884
					'<div class="obs-action pull-right has-tooltip" data-placement="bottom" ' +
869
						'title="Supprimer cette observation de la liste à transmettre">'+
885
						'title="Supprimer cette observation de la liste à transmettre">' +
870
						'<button class="btn btn-danger supprimer-obs" value="'+obsNbre+'" title="'+obsNbre+'">'+
886
						'<button class="btn btn-danger supprimer-obs" value="'+obsNbre+'" title="'+obsNbre+'">' +
871
							'<i class="icon-trash icon-white"></i>'+
887
							'<i class="icon-trash icon-white"></i>' +
872
						'</button>'+
888
						'</button>' +
873
					'</div> '+		
889
					'</div> ' +	
874
					'<div class="row-fluid">'+	
890
					'<div class="row-fluid">' +	
875
						'<div class="span2 obs-miniatures">'+
891
						'<div class="span2 obs-miniatures">' +
876
							ajouterImgMiniatureAuTransfert()+
892
							ajouterImgMiniatureAuTransfert() +
877
						'</div>'+
893
						'</div>'+
878
						'<div class="span8">'+
894
						'<div class="span7">' +
879
							'<ul class="unstyled">'+
895
							'<ul class="unstyled">' +
880
								'<li>'+
896
								'<li>'+
881
									'<span class="nom-sci">' + taxon + '</span> ' +
897
									'<span class="nom-sci">' + taxon + '</span> ' +
882
									formaterNumNomSel(numNomSel)+
-
 
883
									'<span class="referentiel-obs">' + referentiel + '</span>' +
898
									formaterNumNomSel(numNomSel) +
-
 
899
									' observé à <br />' +
884
									' observé à ' +
900
									'<span class="station">' + station + '</span><br /> ' +
885
									'<span class="commune">' + commune + '</span> ' +
901
									'<span class="commune">' + commune + '</span> ' +
886
									'(' + codeInsee + ') [' + lat +' / ' + lng + ']' +
902
									'(' + codeInsee + ') ' +
887
									' le ' +
903
									' le ' +
888
									'<span class="date">' + date + '</span>' +
904
									'<span class="date">' + date + '</span>' +
889
								'</li>' +
905
								'</li>' +
890
								'<li>' +
-
 
891
									'<span>Site :</span> ' + site + ' ' + ' ; ' +
-
 
892
									'<span>Revêtement au sol :</span> ' + revetement + ' ' + ' ; ' +
-
 
893
									'<span>Intensité de gestion :</span> ' + intensiteGestion + ' ' + ' ; ' +
906
								'<li>' +
894
									'<span>Milieu :</span> ' + milieux + ' ' + ' ; ' +
-
 
895
									'<span>Résistance/Résilience :</span> ' + resistance + ' ' +
907
									'Milieux : ' + milieux + ' ' + ' ; ' +
896
								'</li>' +
908
								'</li>' +
897
								'<li>' +
909
								'<li>' +
898
									'Commentaires : ' + notes + 
910
									'Notes : ' + notes + 
899
								'</li>'+
911
								'</li>' +
900
							'</ul>'+
912
							'</ul>' +
901
						'</div>'+
913
						'</div>' +
902
					'</div>'+
914
					'</div>' +
903
				'</div>'+
915
				'</div>' +
904
			'</div>'+
916
			'</div>'+
905
		'</div>');
917
		'</div>');
Line 906... Line 918...
906
}
918
}
Line 1043... Line 1055...
1043
	$('#liste-obs').removeData();
1055
	$('#liste-obs').removeData();
1044
	$('.obs').remove();
1056
	$('.obs').remove();
1045
	$('#dialogue-bloquer-creer-obs').hide();
1057
	$('#dialogue-bloquer-creer-obs').hide();
1046
}
1058
}
Line 1047... Line -...
1047
 
-
 
1048
function getNomsImgsOriginales() {
-
 
1049
	var noms = new Array();
-
 
1050
	$('.miniature-img').each(function() {
-
 
1051
		noms.push($(this).attr('alt'));
-
 
1052
	});
-
 
1053
	return noms;
-
 
1054
}
-
 
1055
 
1059
 
1056
function stockerObsData() {
1060
function stockerObsData() {
1057
	var nomHorsListe = $('#taxon-liste').val() == '?' ? true : false;
1061
	var nomHorsListe = $('#taxon-liste').val() == '?' ? true : false;
1058
		nomSpecial = $('#taxon-liste option:selected').hasClass('nom-special'),
1062
		nomSpecial = $('#taxon-liste option:selected').hasClass('nom-special'),
1059
		numNomSel = nomHorsListe ? $('#taxon').data('numNomSel') : $('#taxon-liste').val(),
1063
		numNomSel = nomHorsListe ? $('#taxon').data('numNomSel') : $('#taxon-liste').val(),
Line 1067... Line 1071...
1067
	
1071
	
1068
	$('#liste-obs').data('obsId'+obsNbre, {
1072
	$('#liste-obs').data('obsId'+obsNbre, {
1069
		'date': $('#date').val(), 
1073
		'date': $('#date').val(), 
Line 1070... Line 1074...
1070
		'notes': notes,
1074
		'notes': notes,
1071
		
1075
		
1072
		'station': $('#station').val(),
1076
		'station': $('input[name="adresse"]').val(),
1073
		'latitude': $('#latitude').val(),
1077
		'latitude': $('#latitude').val(),
1074
		'longitude': $('#longitude').val(),
1078
		'longitude': $('#longitude').val(),
Line 1092... Line 1096...
1092
		'obs_etendue': getObsChpEtendus()
1096
		'obs_etendue': getObsChpEtendus()
1093
	});
1097
	});
1094
	//console.log($('#liste-obs').data('obsId'+obsNbre));
1098
	//console.log($('#liste-obs').data('obsId'+obsNbre));
1095
}
1099
}
Line -... Line 1100...
-
 
1100
 
-
 
1101
function getNomsImgsOriginales() {
-
 
1102
	var noms = new Array();
-
 
1103
	$('.miniature-img').each(function() {
-
 
1104
		noms.push($(this).attr('alt'));
-
 
1105
	});
-
 
1106
	return noms;
-
 
1107
}
1096
 
1108
 
1097
function getObsChpEtendus() {
1109
function getObsChpEtendus() {
1098
	var champs = [],
-
 
1099
		perceptionTechnicien = getPerceptionTechnicien();
-
 
1100
	if (perceptionTechnicien != undefined) {
-
 
1101
		champs.push(perceptionTechnicien);
-
 
1102
	}
1110
	var champs = [];
1103
	if (latLngDeb != undefined) {
1111
	if (latLngDeb != undefined) {
1104
		var latitudeDebutRue = {cle: 'latitudeDebutRue', label: 'Latitude du début de la rue', valeur: latLngDeb.lat().toFixed(5)};
1112
		var latitudeDebutRue = {cle: 'latitudeDebutRue', label: 'Latitude du début de la rue', valeur: latLngDeb.lat().toFixed(5)};
1105
		champs.push(latitudeDebutRue);
1113
		champs.push(latitudeDebutRue);
1106
		var longitudeDebutRue = {cle: 'longitudeDebutRue', label: 'Longitude du début de la rue', valeur: latLngDeb.lng().toFixed(5)};
1114
		var longitudeDebutRue = {cle: 'longitudeDebutRue', label: 'Longitude du début de la rue', valeur: latLngDeb.lng().toFixed(5)};
Line 1123... Line 1131...
1123
		}
1131
		}
1124
	});
1132
	});
1125
	return champs;
1133
	return champs;
1126
}
1134
}
Line 1127... Line -...
1127
 
-
 
1128
function getPerceptionTechnicien() {
-
 
1129
	var perceptionTechnicien = undefined,
-
 
1130
		perceptions = [];
-
 
1131
	$('.cb-perception-technicien:checked').each(function() {
-
 
1132
		perceptions.push($(this).val());
-
 
1133
	});
-
 
1134
	if (perceptions.length > 0) {
-
 
1135
		var valeur = Array.prototype.slice.call(perceptions).join(', ');
-
 
1136
		perceptionTechnicien = {cle: 'perceptionTechnicien', label: "Perceptions par l'équipe", valeur: valeur};
-
 
1137
	}
-
 
1138
	return perceptionTechnicien;
-
 
1139
}
-
 
1140
 
1135
 
1141
//+----------------------------------------------------------------------------------------------------------+
1136
//+----------------------------------------------------------------------------------------------------------+
Line 1142... Line 1137...
1142
//TRANSFERER OBS : envoie des obs au CEL => OK
1137
//TRANSFERER OBS : envoie des obs au CEL => OK
1143
 
1138