Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 2856 Rev 2857
Line 1... Line 1...
1
/* Héritage */
1
/* Héritage */
2
function WidgetSaisieMessicoles()
2
function WidgetSaisieMessicoles()
3
{
3
{
4
	this.lieuReleve = null;
-
 
5
	this.identification = null;
-
 
6
	this.abondance = null;
4
	this.taxons = {};
7
	this.zoneChamps = null;
-
 
8
	
-
 
9
}
5
}
-
 
6
 
-
 
7
 
10
WidgetSaisieMessicoles.prototype = new WidgetSaisie();
8
WidgetSaisieMessicoles.prototype = new WidgetSaisie();
Line 11... Line 9...
11
 
9
 
Line -... Line 10...
-
 
10
/* Surcharge des fonctions */
12
/* Surcharge des fonctions */
11
 
13
 
12
// Surcharge ajouterObs
14
WidgetSaisie.prototype.ajouterObs = function() {
13
WidgetSaisieMessicoles.prototype.ajouterObs = function() {
15
	// Fermeture automatique des dialogue de transmission de données
14
	// Fermeture automatique des dialogue de transmission de données
16
	// @WARNING TEST
15
	// @WARNING TEST
-
 
16
	$('#dialogue-obs-transaction-ko').hide();
-
 
17
	$('#dialogue-obs-transaction-ok').hide();
-
 
18
	
-
 
19
	
Line 17... Line 20...
17
	$('#dialogue-obs-transaction-ko').hide();
20
 
18
	$('#dialogue-obs-transaction-ok').hide();
21
	
19
 
22
 
20
	// vérification : si la détermination est incertaine, obligation
23
	// vérification : si la détermination est incertaine, obligation
21
	// de fournir au moins une image
24
	// de fournir au moins une image
22
	var certitude = $('#identification').val(),
25
	var certitude = $('#identification-liste').val(),
23
		nbImages = $("#miniatures img").length,
26
		nbImages = $('#miniatures img').length,
24
		imagesOK = true;
27
		imagesOK = true;
25
	if (certitude != "certaine" && nbImages == 0) {
28
	if (certitude != "certaine" && nbImages == 0) {
26
		imagesOK = false;
29
		imagesOK = false;
27
		$("#image-obligatoire").show();
30
		$('#image-obligatoire').show();
Line 28... Line 31...
28
	} else {
31
	} else {
29
		$("#image-obligatoire").hide();
32
		$('#image-obligatoire').hide();
30
	}
33
	}
31
 
34
 
32
	if ((this.validerFormulaire() == true) && imagesOK) {
35
	if ((this.validerFormulaire() == true) && imagesOK) {
33
		this.masquerPanneau('#dialogue-form-invalide');
36
		this.masquerPanneau('#dialogue-form-invalide');
34
		return false;
37
		//return false;
35
		// suite des opérations
38
		// suite des opérations
Line 48... Line 51...
48
	} else {
51
	} else {
49
		this.afficherPanneau('#dialogue-form-invalide');
52
		this.afficherPanneau('#dialogue-form-invalide');
50
	}
53
	}
51
};
54
};
Line -... Line 55...
-
 
55
 
-
 
56
// surcharge fonction definirReglesFormValidator()
-
 
57
WidgetSaisieMessicoles.prototype.definirReglesFormValidator = function() {
-
 
58
	// WidgetSaisie.definirReglesFormValidator();
-
 
59
	$("#form-observateur").validate({
-
 
60
		rules: {
-
 
61
			courriel : {
-
 
62
				required : true,
-
 
63
				email : true},
-
 
64
			courriel_confirmation : {
-
 
65
				required : true,
-
 
66
				equalTo: "#courriel"}
-
 
67
		}
-
 
68
	});
-
 
69
	$("#form-station").validate({
-
 
70
		rules: {
-
 
71
			latitude : {
-
 
72
				range: [-90, 90]},
-
 
73
			longitude : {
-
 
74
				range: [-180, 180]}
-
 
75
		}
-
 
76
	});
-
 
77
	$("#form-obs").validate({
-
 
78
		rules: {
-
 
79
			"taxon-liste" : "required",
-
 
80
			taxon : "required",
-
 
81
			"abondance-liste" : "required",
-
 
82
			"zone-champ[]" : {
-
 
83
            	required : true,
-
 
84
            	minlength : 1
-
 
85
            }		
-
 
86
		}
-
 
87
	});
-
 
88
	$("#form-date").validate({
-
 
89
		rules: {
-
 
90
			date : {
-
 
91
				required : true,
-
 
92
				date : date
-
 
93
			}
-
 
94
		}
-
 
95
	});
-
 
96
};
-
 
97
 
-
 
98
// surcharge fonction validerFormulaire()
-
 
99
WidgetSaisieMessicoles.prototype.validerFormulaire = function() {
-
 
100
	observateur = $("#form-observateur").valid();
-
 
101
	station = $("#form-station").valid();
-
 
102
	obs = $("#form-obs").valid();
-
 
103
	date = $("#form-date").valid();
-
 
104
	return (observateur && station && obs && date);
-
 
105
};
-
 
106
 
-
 
107
 
-
 
108
// surcharge fonction stockerObsData()
-
 
109
WidgetSaisieMessicoles.prototype.stockerObsData = function() {
-
 
110
	var lthis = this;
-
 
111
	var nomHorsListe = $('#taxon-liste').val() == '?' ? true : false;
-
 
112
		nomSpecial = $('#taxon-liste option:selected').hasClass('nom-special'),
-
 
113
		numNomSel = nomHorsListe ? $('#taxon').data('numNomSel') : $('#taxon-liste').val();
-
 
114
	var nomSel = nomHorsListe ? $('#taxon').val() : $('#taxon-liste option:selected').data('nom-a-sauver'),
-
 
115
		nomRet = nomHorsListe ? $('#taxon').data('nomRet') : this.taxons[numNomSel]['nom_ret'],
-
 
116
		numNomRet = nomHorsListe ? $('#taxon').data('numNomRet') : this.taxons[numNomSel]['num_nom_ret'],
-
 
117
		numTaxon = nomHorsListe ? $('#taxon').data('nt') : this.taxons[numNomSel]['num_taxon'],
-
 
118
		famille = nomHorsListe ? $('#taxon').data('famille') : this.taxons[numNomSel]['famille'],
-
 
119
		referentiel = (numNomSel == undefined) ? '' : this.nomSciReferentiel,
-
 
120
		notes = (nomSpecial ? this.taxons[numNomSel]['nom_fr'] + '. ' : '') + $('#notes').val(),
-
 
121
		zoneChamp = [],
-
 
122
		abondance = $('#abondance-liste option:selected').val(),
-
 
123
		typeCulture = $('input[name=type-culture]:checked').val(),
-
 
124
		certitude = $('input[name=certitude]:checked').val(),
-
 
125
		certitude = (certitude == undefined) ? '' : certitude;
-
 
126
		
-
 
127
 
-
 
128
	$('#liste-obs').data('obsId'+this.obsNbre, {
-
 
129
		'date': $('#date').val(),
-
 
130
		'notes': notes,
-
 
131
 
-
 
132
		'station': $('#station').val(),
-
 
133
		'latitude': $('#latitude').val(),
-
 
134
		'longitude': $('#longitude').val(),
-
 
135
		'commune_nom': $('#commune-nom').text(),
-
 
136
		'commune_code_insee': $('#commune-code-insee').text(),
-
 
137
 
-
 
138
		'nom_sel': nomSel,
-
 
139
		'num_nom_sel': numNomSel,
-
 
140
		'nom_ret': nomRet,
-
 
141
		'num_nom_ret': numNomRet,
-
 
142
		'num_taxon': numTaxon,
-
 
143
		'famille': famille,
-
 
144
		'referentiel': referentiel,
-
 
145
		'certitude': certitude,
-
 
146
		'milieu': milieu,
-
 
147
		'zone_champ': zoneChamp,
-
 
148
		'abondance': abondance,
-
 
149
		'type_culture': typeCulture,
-
 
150
 
-
 
151
		// Ajout des champs images
-
 
152
		//'image_nom': lthis.getNomsImgsOriginales(),
-
 
153
 
-
 
154
		// Ajout des champs étendus de l'obs
-
 
155
		//'obs_etendue': lthis.getObsChpEtendus()
-
 
156
	});
-
 
157
	if (this.debug) {
-
 
158
		console.log($('#liste-obs').data('obsId'+this.obsNbre));
-
 
159
	}
-
 
160
};
-
 
161
 
-
 
162
 
-
 
163
 
-
 
164
 
-
 
165
/**
-
 
166
 * Affiche une observation dans la liste des observations à transmettre
-
 
167
 */
-
 
168
WidgetSaisieMessicoles.prototype.afficherObs = function() {
-
 
169
	
-
 
170
	var commune = $("#commune-nom").text();
-
 
171
	commune = commune.trim() != "" ? commune : $("#carte-recherche").val();
-
 
172
	
-
 
173
	var code_insee = $('#commune-code-insee').text();
-
 
174
	code_insee = code_insee.trim() != "" ? "("+code_insee+")" : "";
-
 
175
	
-
 
176
	var taxonListe = $("#taxon-liste option:selected").data('nom-a-sauver');
-
 
177
	var taxon = $("#taxon").val();
-
 
178
	var numNomSel = $("#taxon").data("numNomSel");
-
 
179
	var latitude = $("#latitude").val();
-
 
180
	var longitude = $("#longitude").val();
-
 
181
	var date = $("#date").val();
-
 
182
	var lieudit = ($('#lieudit').val() != "" ? $('#lieudit').val() : "pas de lieu-dit saisi");
-
 
183
	var station = ($('#station').val() != "" ? $('#station').val() : "pas de station saisie");
-
 
184
	var milieu = ($('#milieu').val() != "" ? $('#milieu').val() : "pas de milieu saisi");
-
 
185
	var culture = ($('#culture-autres-radio').is(':checked') ? $('#culture-autres-input').val() : $('input[name=type-culture]:checked').data('titre'));
-
 
186
	var identification = $('#identification-liste option:selected').data('titre');
-
 
187
	var abondance = $('#abondance-liste option:selected').data('titre');
-
 
188
	var zoneChamp = [];
-
 
189
	// récupération des cases à cocher multiples dans un tableau pour l'abondance
-
 
190
	$('input[name="zone-champ[]"]:checked').each(function() {
-
 
191
		zoneChamp.push(' '+$(this).data('titre'));
-
 
192
	});
-
 
193
	var notes = $("#notes").val();
-
 
194
	
-
 
195
 
-
 
196
	
-
 
197
 
-
 
198
	if (this.debug) {
-
 
199
		console.log(commune+'  -  '+code_insee);
-
 
200
	}
-
 
201
	
-
 
202
	
-
 
203
	// affichage des données de l'observation à transmettre
-
 
204
	$("#liste-obs").prepend(
-
 
205
		'<div id="obs'+this.obsNbre+'" class="row-fluid obs obs'+this.obsNbre+'">'+
-
 
206
			'<div class="span12">'+
-
 
207
				'<div class="well">'+
-
 
208
					'<div class="obs-action pull-right has-tooltip" data-placement="bottom" '+
-
 
209
						'title="Supprimer cette observation de la liste à transmettre">'+
-
 
210
						'<button class="btn btn-danger supprimer-obs" value="'+this.obsNbre+'" title="'+this.obsNbre+'">'+
-
 
211
							'<i class="icon-trash icon-white"></i>'+
-
 
212
						'</button>'+
-
 
213
					'</div> '+
-
 
214
					'<div class="row-fluid">'+
-
 
215
						'<div class="thumbnail span2">'+
-
 
216
						this.ajouterImgMiniatureAuTransfert()+
-
 
217
						'</div>'+
-
 
218
						'<div class="span9">'+
-
 
219
							'<ul class="unstyled">'+
-
 
220
								'<li>'+
-
 
221
									'<span class="nom-sci">'+taxonListe+taxon+'</span> '+
-
 
222
									this.ajouterNumNomSel()+'<span class="referentiel-obs">'+
-
 
223
									(numNomSel == undefined ? '' : '['+ this.nomSciReferentiel +']')+'</span>'+
-
 
224
									' observé à <span class="gras">'+commune+' '+code_insee+'</span> ['+latitude+' / '+longitude+']'+' le <span class="gras">'+' '+date+'</span>'+
-
 
225
								'</li>'+
-
 
226
								'<li>'+
-
 
227
									'<div class="row-fluid">'+
-
 
228
										'<span class="span4">Lieu-dit : <span class="gras">'+lieudit+'</span></span>'+
-
 
229
										'<span class="span4">Station : <span class="gras">'+station+'</span></span>'+
-
 
230
										'<span class="span4">Milieu : <span class="gras">'+milieu+'</span></span>'+
-
 
231
									'</div>'+
-
 
232
								'</li>'+
-
 
233
								'<li>'+ 
-
 
234
									'<div class="row-fluid">'+
-
 
235
										'<span class="span4">Culture de type <span class="gras">'+culture+'</span></span>'+
-
 
236
										'<span class="span4">Identification <span class="gras">'+identification+'</span></span>'+
-
 
237
										'<span class="span4">Abondance de <span class="gras">'+abondance+'</span></span>'+
-
 
238
									'</div>'+
-
 
239
								'</li>'+
-
 
240
								'<li>'+ 
-
 
241
									'Espèce située en <span class="gras">'+zoneChamp+'</span> du champ'+
-
 
242
								'</li>'+
-
 
243
								'<li>'+
-
 
244
									'Notes : <span class="discretion">'+notes+'</span>'+
-
 
245
								'</li>'+
-
 
246
							'</ul>'+
-
 
247
						'</div>'+
-
 
248
					'</div>'+
-
 
249
				'</div>'+
-
 
250
			'</div>'+
-
 
251
		'</div>');
-
 
252
	$('#zone-liste-obs').removeClass("hidden").show();
-
 
253
};
-
 
254
 
-
 
255
 
-
 
256
 
-
 
257
 
-
 
258
 
-
 
259
 
-
 
260
	
52
 
261
 
53
/* jQuery en vrac */
262
/* jQuery en vrac */
54
$(document).ready(function() {
263
$(document).ready(function() {
55
	// super popover qui va chercher son contenu dans un div à côté (pour les
264
	// super popover qui va chercher son contenu dans un div à côté (pour les
56
	// boutons d'aide des types de champs, etc.)
265
	// boutons d'aide des types de champs, etc.)
Line 61... Line 270...
61
			var popoverHtmlContentDiv = $('.popover-html-content[data-for="' + parentFor + '"]');
270
			var popoverHtmlContentDiv = $('.popover-html-content[data-for="' + parentFor + '"]');
62
			return popoverHtmlContentDiv.html();
271
			return popoverHtmlContentDiv.html();
63
        }
272
        }
64
    });
273
    });
Line 65... Line 274...
65
    
274
    
66
    // Activation de la saisie si on clique sur Autres
275
    // Activation de la saisie si on clique sur 'Autres' (type de champ)
67
    $('.culture').click(function() {
276
    $('.culture').change(function() {
-
 
277
    	var input = $('#culture-autres-input');
-
 
278
   		var res = (($('#culture-autres-radio').is(':checked')) ? input.show() && input.focus() : input.hide());
-
 
279
    });
-
 
280
    
-
 
281
    // Affichage de l'espèce liée au référenciel sélectionné lors de la sélection 'Autres' (espèce)
-
 
282
    $('#taxon-liste').change(function() {
68
    	var input = $('.culture input');
283
    	var option = $('#taxon-liste').val();
-
 
284
    	var taxonCompletion = $('#taxon-input-groupe');
69
   		if ($(this).attr('for') == 'culture-autres-radio') {
285
    	if (option == '?') {
70
    		input.attr('disabled', false);
286
    		taxonCompletion.show();
71
    		input.focus();
287
    		$('#taxon').focus();
72
    	}
288
    	}
73
    	else {
289
    	else {
74
    		$('#culture-autres-input').attr('disabled', true);
290
    		taxonCompletion.hide();
75
    	}
291
    	}
Line -... Line 292...
-
 
292
    });
-
 
293
    
-
 
294
    // On masque l'option par défaut pour l'abondance puisque le choix est obligatoire
-
 
295
    $('#abondance-liste').click(masquerTitreListe('abondance'));
-
 
296
    function masquerTitreListe(element) {
-
 
297
		$('#' + element + '-liste .a-masquer').hide();
-
 
298
	}
-
 
299
    
76
    });
300
    
-
 
301
    
-
 
302
});
-
 
303
 
-
 
304
 
-
 
305
 
-
 
306