Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 320 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 320 Rev 324
Line 61... Line 61...
61
 
61
 
62
$('.contenu_onglet').ready(function() {
62
$('.contenu_onglet').ready(function() {
63
	initialiserOnglets();
63
	initialiserOnglets();
Line 64... Line 64...
64
});
64
});
Line 65... Line 65...
65
 
65
 
Line 66... Line 66...
66
function agrandirZoneCLicBoutonsRadios() {
66
function agrandirZoneClicBoutonsRadios() {
67
 
67
 
Line 79... Line 79...
79
		$('#form_saisie_espece').submit();
79
		$('#form_saisie_espece').submit();
80
	});
80
	});
81
}
81
}
Line 82... Line 82...
82
 
82
 
83
$('#form_saisie_espece').ready(function() {
83
$('#form_saisie_espece').ready(function() {
84
	agrandirZoneCLicBoutonsRadios();
84
	agrandirZoneClicBoutonsRadios();
Line 95... Line 95...
95
 
95
 
96
	************************************************************************************************
96
	************************************************************************************************
97
	************************************************************************************************
97
	************************************************************************************************
Line 98... Line -...
98
**/
-
 
99
 
-
 
100
htmlEnCours = '';
-
 
101
elementEnCours = null;
-
 
102
ancienneValeurEnCours = null;
-
 
103
id_formulaire = null;
98
**/
Line 104... Line 99...
104
 
99
 
Line 105... Line 100...
105
function initialiserLignesCliquables() {
100
function initialiserLignesCliquables() {
106
 
101
 
Line -... Line 102...
-
 
102
	$('.conteneur_element_modifier').hide();
107
	$('.conteneur_element_modifier').hide();
103
 
-
 
104
	$(".date_observation_individu").live("click", function(e) {
-
 
105
		e.preventDefault();
108
 
106
 
109
	$(".date_observation_individu").live("click", function(e) {
107
		var est_absence_observation = $(e.target).parents('[data-absence-observation="1"]').length > 0;
Line 110... Line 108...
110
		e.preventDefault();
108
		if($(e.target).hasClass('conteneur_supprimer_observation') ||
111
 
109
				$(e.target).hasClass('supprimer_observation') ||
Line 124... Line 122...
124
		}
122
		}
125
	});
123
	});
Line 126... Line 124...
126
 
124
 
127
	$(".date_observation_individu .conteneur_supprimer_observation").live("click", function(e) {
125
	$(".date_observation_individu .conteneur_supprimer_observation").live("click", function(e) {
128
		e.preventDefault();
126
		e.preventDefault();
129
		if(window.confirm('Êtes-vous sûr de vouloir supprimer cette observation ?')) {
127
		if(window.confirm('Êtes-vous sûr.e de vouloir supprimer cette observation ?')) {
130
			// les obs ne sont jamais vraiment supprimées
128
			// les obs ne sont jamais vraiment supprimées
131
			// mais seulement remplacées par des dates au format 00/00/yyyy
129
			// mais seulement remplacées par des dates au format 00/00/yyyy
132
			envoyerRequeteAjaxSaisieObservation('', $(this).parent('.date_observation_individu'));
130
			envoyerRequeteAjaxSaisieObservation('', $(this).parent('.date_observation_individu'));
-
 
131
		}
-
 
132
 
-
 
133
		return false;
-
 
134
	});
-
 
135
 
-
 
136
	$(".date_observation_individu .absence_observation").live("click", function(e) {
-
 
137
		e.preventDefault();
-
 
138
		var avertissement_absence_evenement = 'Attention ! Vous êtes sur le point de signaler que ce stade n\'a pas eu lieu dans l\'année. '+"\n"+
-
 
139
																					'C\'est-à-dire que vous êtes certain.e de ne pas l\'avoir raté. '+"\n"+
-
 
140
																					'Êtes-vous sûr.e ?';
-
 
141
		if(window.confirm(avertissement_absence_evenement)) {
-
 
142
			$(this).parent('.date_observation_individu').data('absence-observation', '1');
-
 
143
			var date_absence_evenement = '';
-
 
144
			var dateEnCours = new Date();
-
 
145
			if(getAnneeEnCoursDeConsultation() == dateEnCours.getFullYear()) {
-
 
146
				date_absence_evenement = dateEnCours.getDate()+'/'+dateEnCours.getMonth()+'/'+dateEnCours.getFullYear();
-
 
147
			} else {
-
 
148
				date_absence_evenement = '01/01/'+dateEnCours.getFullYear();
-
 
149
			}
-
 
150
			envoyerRequeteAjaxSaisieObservation(date_absence_evenement, $(this).parent('.date_observation_individu'));
-
 
151
		}
-
 
152
 
133
		}
153
		return false;
Line 134... Line 154...
134
	});
154
	});
135
 
155
 
136
	// pour fermer le datepicker sur esc
156
	// pour fermer le datepicker sur esc
Line 203... Line 223...
203
		"id_evenement": $obs.data('id-stade-observation'),
223
		"id_evenement": $obs.data('id-stade-observation'),
204
		"date_evenement": dateStr,
224
		"date_evenement": dateStr,
205
		"annee_en_cours": anneeEnCours
225
		"annee_en_cours": anneeEnCours
206
	};
226
	};
Line -... Line 227...
-
 
227
 
-
 
228
	if(!!$obs.data('absence-observation')) {
-
 
229
		donnees_obs.absence_observation = $obs.data('absence-observation');
-
 
230
	}
207
 
231
 
208
	if(!!$obs.data('id-observation')) {
232
	if(!!$obs.data('id-observation')) {
209
		donnees_obs.id_observation = $obs.data('id-observation');
233
		donnees_obs.id_observation = $obs.data('id-observation');
Line 210... Line 234...
210
	}
234
	}
Line 228... Line 252...
228
	if(!est_obs_existante) {
252
	if(!est_obs_existante) {
229
		var id_conteneur_ajout = 'ajouter_observation_individu_'+donnees_obs['id_individu']+'_evenement_'+donnees_obs['id_evenement'];
253
		var id_conteneur_ajout = 'ajouter_observation_individu_'+donnees_obs['id_individu']+'_evenement_'+donnees_obs['id_evenement'];
230
		var $conteneurAjout = $('#'+id_conteneur_ajout).clone();
254
		var $conteneurAjout = $('#'+id_conteneur_ajout).clone();
231
	}
255
	}
Line -... Line 256...
-
 
256
 
-
 
257
	if(absenceStadePourIndividuEtAnneeEstSignalee($obs.data('id-individu'), $obs.data('id-stade'))) {
-
 
258
		$obs.find('.date-observation').text('Absent');
-
 
259
		return;
-
 
260
	}
232
 
261
 
-
 
262
	var donnees_obs = formaterDonneesObservationPourEnvoi(dateStr, $obs);
233
	var donnees_obs = formaterDonneesObservationPourEnvoi(dateStr, $obs);
263
	donnees_obs['id_participant'] = 3;
Line 234... Line 264...
234
	$.post(url_ajax, donnees_obs, function(obj_retour) {
264
	$.post(url_ajax, donnees_obs, function(obj_retour) {
235
 
265
 
236
		if(obj_retour.data.erreurs) {
266
		if(!!obj_retour.data.erreurs) {
237
			var message = 'Une ou plusieurs erreurs se sont produites : '+"\n";
267
			var message = 'Une ou plusieurs erreurs se sont produites : '+"\n";
238
			for (var key in obj_retour.data.erreurs) {
268
			for (var key in obj_retour.data.erreurs) {
239
  		if (obj_retour.data.erreurs.hasOwnProperty(key))
269
  		if (obj_retour.data.erreurs.hasOwnProperty(key))
Line 246... Line 276...
246
		if(obj_retour.reponse === 'OK') {
276
		if(obj_retour.reponse === 'OK') {
Line 247... Line 277...
247
 
277
 
248
			// les obs ne sont jamais vraiment supprimées
278
			// les obs ne sont jamais vraiment supprimées
249
			// mais seulement remplacées par des dates au format 00/00/yyyy
279
			// mais seulement remplacées par des dates au format 00/00/yyyy
-
 
280
			if(estUneDateSuppressionObs(dateStr)) {
-
 
281
				// si l'on a supprimé le signalement de l'absence d'un stade, alors on peut de nouveau saisir des
-
 
282
				// observations pour ce stade (le signalement de l'absence d'un stade pour une année est une observation)
-
 
283
				if(estUneAbsenceObservation($obs)) {
-
 
284
					afficherOuCacherConteneurAjout($obs.data('id-individu'), $obs.data('id-stade-observation'), true);
-
 
285
					afficherOuCacherBoutonSignalerAbsenceObservation($obs.data('id-individu'), $obs.data('id-stade-observation'), true);
-
 
286
				}
250
			if(estUneDateSuppressionObs(dateStr)) {
287
 
251
				$obs.remove();
288
				$obs.remove();
252
				delete $obs;
-
 
253
				return;
-
 
Line -... Line 289...
-
 
289
				delete $obs;
254
			}
290
 
255
 
291
				// s'il l'on vient de supprimer la dernière obs d'une évènement pour un individu on peut également à nouveau
-
 
292
				// saisir des observations pour celui-ci
-
 
293
				if(getDatesSaisiesPourStadeEtIndividu($obs.data('id-individu'), $obs.data('id-stade-observation')).length == 0) {
Line 256... Line 294...
256
			$obs.find('.date_observation').text(dateStr);
294
					afficherOuCacherBoutonSignalerAbsenceObservation($obs.data('id-individu'), $obs.data('id-stade-observation'), true);
257
			$obs.data('date-observation', dateStr);
295
				}
258
 
-
 
259
			if(!est_obs_existante) {
-
 
Line 260... Line 296...
260
				$obs.removeClass('ajouter_observation');
296
 
261
				$obs.attr('title', 'Cliquez pour modifier la date de cette observation')
297
				return;
-
 
298
			}
Line -... Line 299...
-
 
299
 
262
				$obs.data('id-observation', obj_retour.data.id_observation);
300
			if(!!obj_retour.data.id_observation) {
-
 
301
				donnees_obs['id_observation'] = obj_retour.data.id_observation;
-
 
302
			}
-
 
303
 
-
 
304
			// sl'on vient de signaler que la stade n'a pas du tout eu lieu dans l'année
-
 
305
			if(estUneAbsenceObservation($obs)) {
-
 
306
				// alors on affiche une observation spéciale qui indique que le stade est absent
-
 
307
				// et qui bloque la saisie d'autres observations de ce stade pour cet individu et cette année
-
 
308
				afficherAbsenceObservationPourIndividuEtAnnee($obs, $conteneurAjout, donnees_obs);
263
 
309
			} else {
Line 264... Line 310...
264
				var id_conteneur_observation = 'individu_'+donnees_obs['id_individu']+'_evenement_'+donnees_obs['id_evenement']+'_observation_'+obj_retour.data.id_observation;
310
				afficherObservation(dateStr, $obs, $conteneurAjout, donnees_obs, est_obs_existante);
265
				$obs.attr('id', id_conteneur_observation);
311
				// à partir du moment où l'on a au moins une observation pour un stade et un individu donné
266
 
312
				// on ne peut plus signaler que l'évènement n'a pas eu lieu cette année
267
				$obs.after($conteneurAjout);
313
				afficherOuCacherBoutonSignalerAbsenceObservation($obs.data('id-individu'), $obs.data('id-stade-observation'), false);
268
			}
314
			}
Line -... Line 315...
-
 
315
 
-
 
316
			$('.element_clique').removeClass('element_clique');
-
 
317
			fermerDatePicker();
-
 
318
		}
-
 
319
	});
-
 
320
}
-
 
321
 
-
 
322
function afficherObservation(dateStr, $obs, $conteneurAjout, donnees_obs, est_obs_existante) {
-
 
323
	$obs.find('.date_observation').text(dateStr);
-
 
324
	$obs.data('date-observation', dateStr);
-
 
325
 
-
 
326
	if(!est_obs_existante) {
-
 
327
		$obs.removeClass('ajouter_observation');
-
 
328
		$obs.attr('title', 'Cliquez pour modifier la date de cette observation')
-
 
329
		$obs.data('id-observation', donnees_obs['id_observation']);
-
 
330
 
-
 
331
		var id_conteneur_observation = 'individu_'+donnees_obs['id_individu']+'_evenement_'+donnees_obs['id_evenement']+'_observation_'+donnees_obs['id_observation'];
-
 
332
		$obs.attr('id', id_conteneur_observation);
-
 
333
 
-
 
334
		$obs.after($conteneurAjout);
-
 
335
	}
-
 
336
}
-
 
337
 
-
 
338
function afficherAbsenceObservationPourIndividuEtAnnee($obs, $conteneurAjout, donnees_obs) {
-
 
339
	afficherObservation('Absent', $obs, $conteneurAjout, donnees_obs, false);
-
 
340
	$obs.attr('title', 'Vous avez indiqué que ce stade n\'a pas été observé pour cette année');
-
 
341
	$obs.data('absence-observation', '1');
-
 
342
	$obs.attr('data-absence-observation', '1');
-
 
343
	// on cache le conteneur d'ajout car une fois l'absence d'un stade signalée pour une année
-
 
344
	// et un individu, il est illogique de vouloir signaler des observations de ce stade
-
 
345
	afficherOuCacherConteneurAjout(donnees_obs['id_individu'], donnees_obs['id_evenement'], false);
-
 
346
}
-
 
347
 
-
 
348
function afficherOuCacherConteneurAjout(id_individu, id_evenement, afficher) {
-
 
349
	var $conteneurAjout = $('#ajouter_observation_individu_'+id_individu+'_evenement_'+id_evenement);
-
 
350
	$conteneurAjout.toggleClass('hide', !afficher);
-
 
351
}
-
 
352
 
-
 
353
function afficherOuCacherBoutonSignalerAbsenceObservation(id_individu, id_evenement, afficher) {
-
 
354
	var $conteneurSignalementAbsenceObs = $('#ajouter_observation_individu_'+id_individu+'_evenement_'+id_evenement+' .absence_observation');
-
 
355
	console.log($conteneurSignalementAbsenceObs);
269
 
356
	$conteneurSignalementAbsenceObs.toggleClass('hide', !afficher);
270
			$('.element_clique').removeClass('element_clique');
357
}
271
			fermerDatePicker();
358
 
272
		}
359
function estUneAbsenceObservation($obs) {
Line 299... Line 386...
299
  var bits = s.split('/');
386
  var bits = s.split('/');
300
  var d = new Date(bits[2], bits[1] - 1, bits[0]);
387
  var d = new Date(bits[2], bits[1] - 1, bits[0]);
301
  return d && (d.getMonth() + 1) == bits[1];
388
  return d && (d.getMonth() + 1) == bits[1];
302
}
389
}
Line -... Line 390...
-
 
390
 
-
 
391
function absenceStadePourIndividuEtAnneeEstSignalee(id_individu, id_stade) {
-
 
392
	var selecteur_data = '[data-id-individu="'+id_individu+'"]'+
-
 
393
												'[data-id-stade-observation="'+id_stade+'"]'+
-
 
394
												'[data-absence-observation="1"]';
-
 
395
 
-
 
396
	return $('.date_observation_individu'+selecteur_data).length >= 1;
-
 
397
}
303
 
398
 
304
function getDatesSaisiesPourStadeEtIndividu(id_individu, id_stade) {
399
function getDatesSaisiesPourStadeEtIndividu(id_individu, id_stade) {
305
	var selecteur_data = '[data-id-individu="'+id_individu+'"]'+
400
	var selecteur_data = '[data-id-individu="'+id_individu+'"]'+
Line 306... Line 401...
306
												'[data-id-stade-observation="'+id_stade+'"]';
401
												'[data-id-stade-observation="'+id_stade+'"]';
Line 676... Line 771...
676
	});
771
	});
677
}
772
}
Line 678... Line 773...
678
 
773
 
679
function initialiserLiensSuppression() {
774
function initialiserLiensSuppression() {
680
	$('.lien_suppression').click(function() {
775
	$('.lien_suppression').click(function() {
681
		return window.confirm('Êtes vous sur de vouloir supprimer ?');
776
		return window.confirm('Êtes vous sûr.e de vouloir supprimer ?');
682
	});
777
	});
Line 683... Line 778...
683
}
778
}
684
 
779