Subversion Repositories eFlore/Applications.cel

Rev

Rev 2910 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2910 Rev 3013
1
/* Héritage */
1
/* Héritage */
2
function WidgetSaisieMessicoles()
2
function WidgetSaisieMessicoles()
3
{
3
{
4
	this.taxons = {};
4
	this.taxons = {};
5
}
5
}
6
 
6
 
7
WidgetSaisieMessicoles.prototype = new WidgetSaisie();
7
WidgetSaisieMessicoles.prototype = new WidgetSaisie();
8
 
8
 
9
/* Surcharge des fonctions */
9
/* Surcharge des fonctions */
10
 
10
 
11
// Surcharge ajouterObs
11
// Surcharge ajouterObs
12
WidgetSaisieMessicoles.prototype.ajouterObs = function() {
12
WidgetSaisieMessicoles.prototype.ajouterObs = function() {
13
	// Fermeture automatique des dialogue de transmission de données
13
	// Fermeture automatique des dialogue de transmission de données
14
	// @WARNING TEST
14
	// @WARNING TEST
15
	$('#dialogue-obs-transaction-ko').hide();
15
	$('#dialogue-obs-transaction-ko').hide();
16
	$('#dialogue-obs-transaction-ok').hide();
16
	$('#dialogue-obs-transaction-ok').hide();
17
 
17
 
18
	// vérification : si la détermination est incertaine, obligation
18
	// vérification : si la détermination est incertaine, obligation
19
	// de fournir au moins une image
19
	// de fournir au moins une image
20
	var certitude = $('#identification-liste').val(),
20
	var certitude = $('#identification-liste').val(),
21
		nbImages = $('#miniatures img').length,
21
		nbImages = $('#miniatures img').length,
22
		imagesOK = true;
22
		imagesOK = true;
23
	if (certitude != "certaine" && nbImages == 0) {
23
	if (certitude != "certaine" && nbImages == 0) {
24
		imagesOK = false;
24
		imagesOK = false;
25
		$('#image-obligatoire').show();
25
		$('#image-obligatoire').show();
26
	} else {
26
	} else {
27
		$('#image-obligatoire').hide();
27
		$('#image-obligatoire').hide();
28
	}
28
	}
29
 
29
 
30
	if ((this.validerFormulaire() == true) && imagesOK) {
30
	if ((this.validerFormulaire() == true) && imagesOK) {
31
		this.masquerPanneau('#dialogue-form-invalide');
31
		this.masquerPanneau('#dialogue-form-invalide');
32
		//return false;
32
		//return false;
33
		// suite des opérations
33
		// suite des opérations
34
		this.obsNbre = this.obsNbre + 1;
34
		this.obsNbre = this.obsNbre + 1;
35
		$(".obs-nbre").text(this.obsNbre);
35
		$(".obs-nbre").text(this.obsNbre);
36
		$(".obs-nbre").triggerHandler('changement');
36
		$(".obs-nbre").triggerHandler('changement');
37
		this.afficherObs();
37
		this.afficherObs();
38
		this.stockerObsData();
38
		this.stockerObsData();
39
		this.supprimerMiniatures();
39
		this.supprimerMiniatures();
40
		if(! this.especeImposee) {
40
		if(! this.especeImposee) {
41
			$("#taxon").val("");
41
			$("#taxon").val("");
42
			$("#taxon").data("numNomSel",undefined);
42
			$("#taxon").data("numNomSel",undefined);
43
		}
43
		}
44
		$('#form-obs').each(function(){
44
		$('#form-obs').each(function(){
45
			this.reset();
45
			this.reset();
46
		});
46
		});
47
		$('#barre-progression-upload').attr('aria-valuemax', this.obsNbre);
47
		$('#barre-progression-upload').attr('aria-valuemax', this.obsNbre);
48
		$('#barre-progression-upload .sr-only').text('0/'+this.obsNbre+" observations transmises");
48
		$('#barre-progression-upload .sr-only').text('0/'+this.obsNbre+" observations transmises");
49
	} else {
49
	} else {
50
		this.afficherPanneau('#dialogue-form-invalide');
50
		this.afficherPanneau('#dialogue-form-invalide');
51
	}
51
	}
52
};
52
};
53
 
53
 
54
// surcharge fonction definirReglesFormValidator()
54
// surcharge fonction definirReglesFormValidator()
55
WidgetSaisieMessicoles.prototype.definirReglesFormValidator = function() {
55
WidgetSaisieMessicoles.prototype.definirReglesFormValidator = function() {
56
	// WidgetSaisie.definirReglesFormValidator();
56
	// WidgetSaisie.definirReglesFormValidator();
57
	$("#form-observateur").validate({
57
	$("#form-observateur").validate({
58
		rules: {
58
		rules: {
59
			courriel : {
59
			courriel : {
60
				required : true,
60
				required : true,
61
				email : true},
61
				email : true},
62
			courriel_confirmation : {
62
			courriel_confirmation : {
63
				required : true,
63
				required : true,
64
				equalTo: "#courriel"}
64
				equalTo: "#courriel"}
65
		}
65
		}
66
	});
66
	});
67
	$("#form-releve").validate({
67
	$("#form-releve").validate({
68
		rules: {
68
		rules: {
69
			date : {
69
			date : {
70
				required : true,
70
				required : true,
71
				date : date
71
				'dateCel' : true
72
			},
72
			},
73
			"type-culture" : "required"
73
			"type-culture" : "required"
74
		},
74
		},
75
		errorPlacement: function(error, element) {
75
		errorPlacement: function(error, element) {
76
			error.insertBefore(element.parent());
76
			error.insertBefore(element.parent());
77
		}
77
		}
78
	});
78
	});
79
	$("#form-station").validate({
79
	$("#form-station").validate({
80
		ignore: ':hidden:not("#latitude, #longitude")', // validation des champs cachés...
80
		ignore: ':hidden:not("#latitude, #longitude")', // validation des champs cachés...
81
		errorPlacement: function(error, element) { // ...mais erreur visible
81
		errorPlacement: function(error, element) { // ...mais erreur visible
82
			error.insertBefore("#coordonnees-geo");
82
			error.insertBefore("#coordonnees-geo");
83
		},
83
		},
84
		groups: {
84
		groups: {
85
			latLon: "latitude longitude"
85
			latLon: "latitude longitude"
86
		},
86
		},
87
		rules: {
87
		rules: {
88
			latitude : {
88
			latitude : {
89
				required: true,
89
				required: true,
90
				range: [-90, 90]
90
				range: [-90, 90]
91
			},
91
			},
92
			longitude : {
92
			longitude : {
93
				required: true,
93
				required: true,
94
				range: [-180, 180]
94
				range: [-180, 180]
95
			}
95
			}
96
		},
96
		},
97
		messages: {
97
		messages: {
98
			// astuce pour simuler un message personnalisé pour le groupe "latLon"
98
			// astuce pour simuler un message personnalisé pour le groupe "latLon"
99
			latitude: "Veuillez géolocaliser votre observation en déplaçant le curseur sur la carte",
99
			latitude: "Veuillez géolocaliser votre observation en déplaçant le curseur sur la carte",
100
			longitude: "Veuillez géolocaliser votre observation en déplaçant le curseur sur la carte"
100
			longitude: "Veuillez géolocaliser votre observation en déplaçant le curseur sur la carte"
101
		}
101
		}
102
	});
102
	});
103
	$("#form-obs").validate({
103
	$("#form-obs").validate({
104
		rules: {
104
		rules: {
105
			"taxon-liste" : "required",
105
			"taxon-liste" : "required",
106
			"abondance-liste" : "required",
106
			"abondance-liste" : "required",
107
			"zone-champ[]" : {
107
			"zone-champ[]" : {
108
            	required : true,
108
            	required : true,
109
            	minlength : 1
109
            	minlength : 1
110
            }		
110
            }		
111
		},
111
		},
112
		errorPlacement: function(error, element) {
112
		errorPlacement: function(error, element) {
113
			error.insertBefore(element.parent());
113
			error.insertBefore(element.parent());
114
		}
114
		}
115
	});
115
	});
116
};
116
};
117
 
117
 
118
// surcharge fonction validerFormulaire()
118
// surcharge fonction validerFormulaire()
119
WidgetSaisieMessicoles.prototype.validerFormulaire = function() {
119
WidgetSaisieMessicoles.prototype.validerFormulaire = function() {
120
	observateur = $("#form-observateur").valid();
120
	observateur = $("#form-observateur").valid();
121
	releve = $("#form-releve").valid();
121
	releve = $("#form-releve").valid();
122
	station = $("#form-station").valid();
122
	station = $("#form-station").valid();
123
	obs = $("#form-obs").valid();
123
	obs = $("#form-obs").valid();
124
	return (observateur && station && obs && releve);
124
	return (observateur && station && obs && releve);
125
};
125
};
126
 
126
 
127
// surcharge fonction stockerObsData()
127
// surcharge fonction stockerObsData()
128
WidgetSaisieMessicoles.prototype.stockerObsData = function() {
128
WidgetSaisieMessicoles.prototype.stockerObsData = function() {
129
	var lthis = this;
129
	var lthis = this;
130
	var nomHorsListe = $('#taxon-liste').val() == '?' ? true : false;
130
	var nomHorsListe = $('#taxon-liste').val() == '?' ? true : false;
131
		numNomSel = nomHorsListe ? $('#taxon').data('numNomSel') : $('#taxon-liste').val();
131
		numNomSel = nomHorsListe ? $('#taxon').data('numNomSel') : $('#taxon-liste').val();
132
	var nomSel = nomHorsListe ? $('#taxon').val() : $('#taxon-liste option:selected').data('nom-a-sauver'),
132
	var nomSel = nomHorsListe ? $('#taxon').val() : $('#taxon-liste option:selected').data('nom-a-sauver'),
133
		nomRet = nomHorsListe ? $('#taxon').data('nomRet') : this.taxons[numNomSel]['nom_ret'],
133
		nomRet = nomHorsListe ? $('#taxon').data('nomRet') : this.taxons[numNomSel]['nom_ret'],
134
		numNomRet = nomHorsListe ? $('#taxon').data('numNomRet') : this.taxons[numNomSel]['num_nom_ret'],
134
		numNomRet = nomHorsListe ? $('#taxon').data('numNomRet') : this.taxons[numNomSel]['num_nom_ret'],
135
		numTaxon = nomHorsListe ? $('#taxon').data('nt') : this.taxons[numNomSel]['num_taxon'],
135
		numTaxon = nomHorsListe ? $('#taxon').data('nt') : this.taxons[numNomSel]['num_taxon'],
136
		famille = nomHorsListe ? $('#taxon').data('famille') : this.taxons[numNomSel]['famille'],
136
		famille = nomHorsListe ? $('#taxon').data('famille') : this.taxons[numNomSel]['famille'],
137
		referentiel = (numNomSel == undefined) ? '' : this.nomSciReferentiel,
137
		referentiel = (numNomSel == undefined) ? '' : this.nomSciReferentiel,
138
		notes = $('#notes').val();
138
		notes = $('#notes').val();
139
	// champs spécifques aux messicoles
139
	// champs spécifques aux messicoles
140
	var abondance = $('#abondance-liste').val(),
140
	var abondance = $('#abondance-liste').val(),
141
		certitude = $('#identification-liste').val();
141
		certitude = $('#identification-liste').val();
142
		
142
		
143
	
143
	
144
	$('#liste-obs').data('obsId'+this.obsNbre, {
144
	$('#liste-obs').data('obsId'+this.obsNbre, {
145
		'date': $('#date').val(),
145
		'date': $('#date').val(),
146
		'notes': notes,
146
		'notes': notes,
147
 
147
 
148
		'latitude': $('#latitude').val(),
148
		'latitude': $('#latitude').val(),
149
		'longitude': $('#longitude').val(),
149
		'longitude': $('#longitude').val(),
150
		'commune_nom': $('#commune-nom').text(),
150
		'commune_nom': $('#commune-nom').text(),
151
		'commune_code_insee': $('#commune-code-insee').text(),
151
		'commune_code_insee': $('#commune-code-insee').text(),
152
		'lieudit' : $("#lieudit").val(),
152
		'lieudit' : $("#lieudit").val(),
153
		'station' : $("#station").val(),
153
		'station' : $("#station").val(),
154
		'milieu' : $("#milieu").val(),
154
		'milieu' : $("#milieu").val(),
155
 
155
 
156
		'nom_sel': nomSel,
156
		'nom_sel': nomSel,
157
		'num_nom_sel': numNomSel,
157
		'num_nom_sel': numNomSel,
158
		'nom_ret': nomRet,
158
		'nom_ret': nomRet,
159
		'num_nom_ret': numNomRet,
159
		'num_nom_ret': numNomRet,
160
		'num_taxon': numTaxon,
160
		'num_taxon': numTaxon,
161
		'famille': famille,
161
		'famille': famille,
162
		'referentiel': referentiel,
162
		'referentiel': referentiel,
163
 
163
 
164
		'certitude': certitude,
164
		'certitude': certitude,
165
		'abondance': abondance,
165
		'abondance': abondance,
166
 
166
 
167
		// Ajout des champs images
167
		// Ajout des champs images
168
		'image_nom' : lthis.getNomsImgsOriginales(),
168
		'image_nom' : lthis.getNomsImgsOriginales(),
169
		'image_b64' : lthis.getB64ImgsOriginales(),
169
		'image_b64' : lthis.getB64ImgsOriginales(),
170
 
170
 
171
		// Ajout des champs étendus de l'obs
171
		// Ajout des champs étendus de l'obs
172
		'obs_etendue': lthis.getObsChpEtendus()
172
		'obs_etendue': lthis.getObsChpEtendus()
173
	});
173
	});
174
	if (this.debug) {
174
	if (this.debug) {
175
		console.log($('#liste-obs').data('obsId'+this.obsNbre));
175
		console.log($('#liste-obs').data('obsId'+this.obsNbre));
176
	}
176
	}
177
};
177
};
178
 
178
 
179
/**
179
/**
180
 * Affiche une observation dans la liste des observations à transmettre
180
 * Affiche une observation dans la liste des observations à transmettre
181
 */
181
 */
182
WidgetSaisieMessicoles.prototype.afficherObs = function() {
182
WidgetSaisieMessicoles.prototype.afficherObs = function() {
183
	console.log(this.taxons);
183
	console.log(this.taxons);
184
	var nomHorsListe = $('#taxon-liste').val() == '?' ? true : false,
184
	var nomHorsListe = $('#taxon-liste').val() == '?' ? true : false,
185
		numNomSel = nomHorsListe ? $('#taxon').data('numNomSel') : $('#taxon-liste').val();
185
		numNomSel = nomHorsListe ? $('#taxon').data('numNomSel') : $('#taxon-liste').val();
186
	var nomSel = nomHorsListe ? $('#taxon').val() : $('#taxon-liste option:selected').data('nom-a-sauver'),
186
	var nomSel = nomHorsListe ? $('#taxon').val() : $('#taxon-liste option:selected').data('nom-a-sauver'),
187
		//famille = nomHorsListe ? $('#taxon').data('famille') : this.taxons[numNomSel]['famille'],
187
		//famille = nomHorsListe ? $('#taxon').data('famille') : this.taxons[numNomSel]['famille'],
188
		referentiel = (numNomSel == undefined) ? '' : this.nomSciReferentiel;
188
		referentiel = (numNomSel == undefined) ? '' : this.nomSciReferentiel;
189
 
189
 
190
	var commune = $("#commune-nom").text();
190
	var commune = $("#commune-nom").text();
191
	commune = commune.trim() != "" ? commune : $("#carte-recherche").val();
191
	commune = commune.trim() != "" ? commune : $("#carte-recherche").val();
192
	var code_insee = $('#commune-code-insee').text();
192
	var code_insee = $('#commune-code-insee').text();
193
	code_insee = code_insee.trim() != "" ? "("+code_insee+")" : "";
193
	code_insee = code_insee.trim() != "" ? "("+code_insee+")" : "";
194
	var latitude = $("#latitude").val();
194
	var latitude = $("#latitude").val();
195
	var longitude = $("#longitude").val();
195
	var longitude = $("#longitude").val();
196
	var lieudit = ($('#lieudit').val() != "" ? $('#lieudit').val() : "aucun lieu-dit saisi");
196
	var lieudit = ($('#lieudit').val() != "" ? $('#lieudit').val() : "aucun lieu-dit saisi");
197
	var station = ($('#station').val() != "" ? $('#station').val() : "aucune station saisie");
197
	var station = ($('#station').val() != "" ? $('#station').val() : "aucune station saisie");
198
	var milieu = ($('#milieu').val() != "" ? $('#milieu').val() : "aucun milieu saisi");
198
	var milieu = ($('#milieu').val() != "" ? $('#milieu').val() : "aucun milieu saisi");
199
	var notes = ($('#notes').val() != "" ? $('#notes').val() : "<b>aucunes notes saisies</b>");
199
	var notes = ($('#notes').val() != "" ? $('#notes').val() : "<b>aucunes notes saisies</b>");
200
	var date = $("#date").val();
200
	var date = $("#date").val();
201
	// champs spécifques aux messicoles
201
	// champs spécifques aux messicoles
202
	
202
	
203
 
203
 
204
	var culture = ($('input[name=type-culture]').is(':checked') ? $('input[name=type-culture]:checked').data('titre') : "?");
204
	var culture = ($('input[name=type-culture]').is(':checked') ? $('input[name=type-culture]:checked').data('titre') : "?");
205
	var cultureDetails = ($('input[name=type-culture]').is(':checked') ? $('input[name=type-culture]:checked').parent().find('input[type=text]').val() : '?');
205
	var cultureDetails = ($('input[name=type-culture]').is(':checked') ? $('input[name=type-culture]:checked').parent().find('input[type=text]').val() : '?');
206
	
206
	
207
	
207
	
208
	
208
	
209
	var identification = $('#identification-liste option:selected').data('titre');
209
	var identification = $('#identification-liste option:selected').data('titre');
210
	var abondance = $('#abondance-liste option:selected').data('titre');
210
	var abondance = $('#abondance-liste option:selected').data('titre');
211
	var zoneChamp = [];
211
	var zoneChamp = [];
212
	// récupération des cases à cocher multiples dans un tableau pour l'abondance
212
	// récupération des cases à cocher multiples dans un tableau pour l'abondance
213
	$('input[name="zone-champ[]"]:checked').each(function() {
213
	$('input[name="zone-champ[]"]:checked').each(function() {
214
		zoneChamp.push(' '+$(this).data('titre'));
214
		zoneChamp.push(' '+$(this).data('titre'));
215
	});
215
	});
216
 
216
 
217
	// affichage des données de l'observation à transmettre
217
	// affichage des données de l'observation à transmettre
218
	$("#liste-obs").prepend(
218
	$("#liste-obs").prepend(
219
		'<div id="obs'+this.obsNbre+'" class="row-fluid obs obs'+this.obsNbre+'">'+
219
		'<div id="obs'+this.obsNbre+'" class="row-fluid obs obs'+this.obsNbre+'">'+
220
			'<div class="span12">'+
220
			'<div class="span12">'+
221
				'<div class="well">'+
221
				'<div class="well">'+
222
					'<div class="obs-action pull-right has-tooltip" data-placement="bottom" '+
222
					'<div class="obs-action pull-right has-tooltip" data-placement="bottom" '+
223
						'title="Supprimer cette observation de la liste à transmettre">'+
223
						'title="Supprimer cette observation de la liste à transmettre">'+
224
						'<button class="btn btn-danger supprimer-obs" value="'+this.obsNbre+'" title="'+this.obsNbre+'">'+
224
						'<button class="btn btn-danger supprimer-obs" value="'+this.obsNbre+'" title="'+this.obsNbre+'">'+
225
							'<i class="icon-trash icon-white"></i>'+
225
							'<i class="icon-trash icon-white"></i>'+
226
						'</button>'+
226
						'</button>'+
227
					'</div> '+
227
					'</div> '+
228
					'<div class="row-fluid">'+
228
					'<div class="row-fluid">'+
229
						'<div class="thumbnail span2">'+
229
						'<div class="thumbnail span2">'+
230
						this.ajouterImgMiniatureAuTransfert()+
230
						this.ajouterImgMiniatureAuTransfert()+
231
						'</div>'+
231
						'</div>'+
232
						'<div class="span9">'+
232
						'<div class="span9">'+
233
							'<ul class="unstyled">'+
233
							'<ul class="unstyled">'+
234
								'<li>'+
234
								'<li>'+
235
									'<span class="nom-sci gras">'+nomSel+'</span> '+
235
									'<span class="nom-sci gras">'+nomSel+'</span> '+
236
									this.ajouterNumNomSel(numNomSel, referentiel)+
236
									this.ajouterNumNomSel(numNomSel, referentiel)+
237
									' observé à <span class="gras">'+commune+' '+code_insee+'</span> ['+latitude+' / '+longitude+']'+' le <span class="gras">'+' '+date+'</span>'+
237
									' observé à <span class="gras">'+commune+' '+code_insee+'</span> ['+latitude+' / '+longitude+']'+' le <span class="gras">'+' '+date+'</span>'+
238
								'</li>'+
238
								'</li>'+
239
								'<li>'+
239
								'<li>'+
240
									'<div class="row-fluid">'+
240
									'<div class="row-fluid">'+
241
										'<span class="span4">Lieu-dit : <span class="gras">'+lieudit+'</span></span>'+
241
										'<span class="span4">Lieu-dit : <span class="gras">'+lieudit+'</span></span>'+
242
										'<span class="span4">Station : <span class="gras">'+station+'</span></span>'+
242
										'<span class="span4">Station : <span class="gras">'+station+'</span></span>'+
243
										'<span class="span4">Milieu : <span class="gras">'+milieu+'</span></span>'+
243
										'<span class="span4">Milieu : <span class="gras">'+milieu+'</span></span>'+
244
									'</div>'+
244
									'</div>'+
245
								'</li>'+
245
								'</li>'+
246
								'<li>'+ 
246
								'<li>'+ 
247
									'<div class="row-fluid">'+
247
									'<div class="row-fluid">'+
248
										'<span class="span4">Culture de <span class="gras">'+cultureDetails+'</span> de type <span class="gras">'+culture+'</span></span>'+
248
										'<span class="span4">Culture de <span class="gras">'+cultureDetails+'</span> de type <span class="gras">'+culture+'</span></span>'+
249
										'<span class="span4">Identification <span class="gras">'+identification+'</span></span>'+
249
										'<span class="span4">Identification <span class="gras">'+identification+'</span></span>'+
250
										'<span class="span4">Abondance de <span class="gras">'+abondance+'</span></span>'+
250
										'<span class="span4">Abondance de <span class="gras">'+abondance+'</span></span>'+
251
									'</div>'+
251
									'</div>'+
252
								'</li>'+
252
								'</li>'+
253
								'<li>'+ 
253
								'<li>'+ 
254
									'Espèce située en <span class="gras">'+zoneChamp+'</span> du champ'+
254
									'Espèce située en <span class="gras">'+zoneChamp+'</span> du champ'+
255
								'</li>'+
255
								'</li>'+
256
								'<li>'+
256
								'<li>'+
257
									'Notes : <span class="discretion">'+notes+'</span>'+
257
									'Notes : <span class="discretion">'+notes+'</span>'+
258
								'</li>'+
258
								'</li>'+
259
							'</ul>'+
259
							'</ul>'+
260
						'</div>'+
260
						'</div>'+
261
					'</div>'+
261
					'</div>'+
262
				'</div>'+
262
				'</div>'+
263
			'</div>'+
263
			'</div>'+
264
		'</div>');
264
		'</div>');
265
	$('#zone-liste-obs').removeClass("hidden").show();
265
	$('#zone-liste-obs').removeClass("hidden").show();
266
};
266
};
267
 
267
 
268
WidgetSaisieMessicoles.prototype.surAutocompletionTaxon = function(event, ui) {
268
WidgetSaisieMessicoles.prototype.surAutocompletionTaxon = function(event, ui) {
269
	$("#taxon").data(ui.item);
269
	$("#taxon").data(ui.item);
270
	if (ui.item.retenu == true) {
270
	if (ui.item.retenu == true) {
271
		$("#taxon").addClass('ns-retenu');
271
		$("#taxon").addClass('ns-retenu');
272
	} else {
272
	} else {
273
		$("#taxon").removeClass('ns-retenu');
273
		$("#taxon").removeClass('ns-retenu');
274
	}
274
	}
275
	// détection de si c'est un(e?) messicole ou pas
275
	// détection de si c'est un(e?) messicole ou pas
276
	var panneauAvertissementNonMessicole = $('#avertissement-non-messicole');
276
	var panneauAvertissementNonMessicole = $('#avertissement-non-messicole');
277
	panneauAvertissementNonMessicole.hide();
277
	panneauAvertissementNonMessicole.hide();
278
	if (nnr_messicoles.indexOf(parseInt(ui.item.numNomRet)) == -1) {
278
	if (nnr_messicoles.indexOf(parseInt(ui.item.numNomRet)) == -1) {
279
		panneauAvertissementNonMessicole.show();
279
		panneauAvertissementNonMessicole.show();
280
	}
280
	}
281
};
281
};
282
 
282
 
283
WidgetSaisieMessicoles.prototype.ajouterNumNomSel = function(numNom, referentiel) {
283
WidgetSaisieMessicoles.prototype.ajouterNumNomSel = function(numNom, referentiel) {
284
	var nn = '';
284
	var nn = '';
285
	if (numNom == '' || numNom == undefined) {
285
	if (numNom == '' || numNom == undefined) {
286
		nn = '<span class="alert-error">[non lié au référentiel]</span>';
286
		nn = '<span class="alert-error">[non lié au référentiel]</span>';
287
	} else {
287
	} else {
288
		nn = '<span class="nn">[nn'+numNom+']</span>'
288
		nn = '<span class="nn">[nn'+numNom+']</span>'
289
		+ '<span class="referentiel-obs"> '
289
		+ '<span class="referentiel-obs"> '
290
		+ referentiel+'</span>';
290
		+ referentiel+'</span>';
291
	}
291
	}
292
	return nn;
292
	return nn;
293
};
293
};
294
 
294
 
295
// surcharge, abadon du mécanisme générique et bidouillage en dur (plus facile
295
// surcharge, abadon du mécanisme générique et bidouillage en dur (plus facile
296
// car champs radio / checkboxes)
296
// car champs radio / checkboxes)
297
WidgetSaisieMessicoles.prototype.getObsChpEtendus = function() {
297
WidgetSaisieMessicoles.prototype.getObsChpEtendus = function() {
298
	var champs = [];
298
	var champs = [];
299
 
299
 
300
	var zoneChamp = [];
300
	var zoneChamp = [];
301
	$('input[name="zone-champ[]"]:checked').each(function() {
301
	$('input[name="zone-champ[]"]:checked').each(function() {
302
		zoneChamp.push($(this).val());
302
		zoneChamp.push($(this).val());
303
	});
303
	});
304
	//console.log("zc:", zoneChamp);
304
	//console.log("zc:", zoneChamp);
305
	// obligatoire donc jamais vide (on croise les doigts)
305
	// obligatoire donc jamais vide (on croise les doigts)
306
	champs.push({
306
	champs.push({
307
		cle: "zoneDuChamp",
307
		cle: "zoneDuChamp",
308
		label: "Zone du champ",
308
		label: "Zone du champ",
309
		valeur: zoneChamp.join()
309
		valeur: zoneChamp.join()
310
	});
310
	});
311
	
311
	
312
	var typeCulture = $('input[name=type-culture]:checked').data('titre');
312
	var typeCulture = $('input[name=type-culture]:checked').data('titre');
313
	//console.log("tc:", typeCulture);
313
	//console.log("tc:", typeCulture);
314
	if (typeCulture != '') {
314
	if (typeCulture != '') {
315
		champs.push({
315
		champs.push({
316
			cle: "typeDeCulture",
316
			cle: "typeDeCulture",
317
			label: "Type de culture",
317
			label: "Type de culture",
318
			valeur: (typeCulture == undefined ? "" : typeCulture)
318
			valeur: (typeCulture == undefined ? "" : typeCulture)
319
		});
319
		});
320
	}
320
	}
321
	
321
	
322
	var typeCultureDetails = $('input[name=type-culture]:checked').parent().find('input[type=text]').val();
322
	var typeCultureDetails = $('input[name=type-culture]:checked').parent().find('input[type=text]').val();
323
 
323
 
324
	//console.log("tcd:", typeCultureDetails);
324
	//console.log("tcd:", typeCultureDetails);
325
	if (typeCultureDetails != '') {
325
	if (typeCultureDetails != '') {
326
		champs.push({
326
		champs.push({
327
			cle: "typeDeCultureDetails",
327
			cle: "typeDeCultureDetails",
328
			label: "Details de la culture",
328
			label: "Details de la culture",
329
			valeur: typeCultureDetails
329
			valeur: typeCultureDetails
330
		});
330
		});
331
	}
331
	}
332
 
332
 
333
	return champs;
333
	return champs;
334
}
334
}
335
 
335
 
336
 
336
 
337
 
337
 
338
 
338
 
339
/* jQuery en vrac */
339
/* jQuery en vrac */
340
$(document).ready(function() {
340
$(document).ready(function() {
341
	
341
	
342
	// super popover qui va chercher son contenu dans un div à côté (pour les
342
	// super popover qui va chercher son contenu dans un div à côté (pour les
343
	// boutons d'aide des types de champs, etc.)
343
	// boutons d'aide des types de champs, etc.)
344
	$('[data-toggle="popover"]').popover({
344
	$('[data-toggle="popover"]').popover({
345
        html : true, 
345
        html : true, 
346
        content: function() {
346
        content: function() {
347
			var parentFor = $(this).parent().attr("for");
347
			var parentFor = $(this).parent().attr("for");
348
			var popoverHtmlContentDiv = $('.popover-html-content[data-for="' + parentFor + '"]');
348
			var popoverHtmlContentDiv = $('.popover-html-content[data-for="' + parentFor + '"]');
349
			return popoverHtmlContentDiv.html();
349
			return popoverHtmlContentDiv.html();
350
        }
350
        }
351
    });
351
    });
352
 
352
 
353
    // Activation de la saisie si on clique sur un type de champ
353
    // Activation de la saisie si on clique sur un type de champ
354
    function gererAffichageChampCulture(){    
354
    function gererAffichageChampCulture(){    
355
    	$('.culture input[type=text]').hide();	
355
    	$('.culture input[type=text]').hide();	
356
    	var radio = $('.culture input[type=radio]:checked');
356
    	var radio = $('.culture input[type=radio]:checked');
357
    	var input = radio.parent().find('input[type=text]');
357
    	var input = radio.parent().find('input[type=text]');
358
   		(radio.is(':checked')) ? input.show() && input.focus() : input.hide();
358
   		(radio.is(':checked')) ? input.show() && input.focus() : input.hide();
359
   	}
359
   	}
360
   	$('.culture').change(gererAffichageChampCulture);
360
   	$('.culture').change(gererAffichageChampCulture);
361
   	// ... et aussi au chargement du widget, si la sélection est restée sur un champ
361
   	// ... et aussi au chargement du widget, si la sélection est restée sur un champ
362
	gererAffichageChampCulture();
362
	gererAffichageChampCulture();
363
   		
363
   		
364
   		
364
   		
365
   		
365
   		
366
	
366
	
367
 
367
 
368
    // Affichage de l'espèce liée au référentiel sélectionné lors de la sélection 'Autres' (espèce)
368
    // Affichage de l'espèce liée au référentiel sélectionné lors de la sélection 'Autres' (espèce)
369
	function gererAffichageChampAutreEspece() {
369
	function gererAffichageChampAutreEspece() {
370
    	var option = $('#taxon-liste').val();
370
    	var option = $('#taxon-liste').val();
371
    	var taxonCompletion = $('#taxon-input-groupe');
371
    	var taxonCompletion = $('#taxon-input-groupe');
372
    	if (option == '?') {
372
    	if (option == '?') {
373
    		taxonCompletion.show();
373
    		taxonCompletion.show();
374
    		$('#taxon').focus();
374
    		$('#taxon').focus();
375
    	}
375
    	}
376
    	else {
376
    	else {
377
    		taxonCompletion.hide();
377
    		taxonCompletion.hide();
378
    	}
378
    	}
379
    }
379
    }
380
    $('#taxon-liste').change(gererAffichageChampAutreEspece);
380
    $('#taxon-liste').change(gererAffichageChampAutreEspece);
381
	// ... et aussi au chargement du widget, si la sélection est restée sur "Autre espèce"
381
	// ... et aussi au chargement du widget, si la sélection est restée sur "Autre espèce"
382
	gererAffichageChampAutreEspece();
382
	gererAffichageChampAutreEspece();
383
 
383
 
384
    // On masque l'option par défaut pour l'abondance puisque le choix est obligatoire
384
    // On masque l'option par défaut pour l'abondance puisque le choix est obligatoire
385
    $('#abondance-liste').click(masquerTitreListe('abondance'));
385
    $('#abondance-liste').click(masquerTitreListe('abondance'));
386
    function masquerTitreListe(element) {
386
    function masquerTitreListe(element) {
387
		$('#' + element + '-liste .a-masquer').hide();
387
		$('#' + element + '-liste .a-masquer').hide();
388
	}
388
	}
389
});
389
});