Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 2005 Rev 2118
Line 1039... Line 1039...
1039
 
1039
 
1040
//+----------------------------------------------------------------------------------------------------------+
1040
//+----------------------------------------------------------------------------------------------------------+
Line 1041... Line 1041...
1041
// CRÉER OBS : Gestion des obs
1041
// CRÉER OBS : Gestion des obs
1042
 
-
 
1043
var obsNbre = 0;
1042
 
1044
 
1043
var obsNbre = 0;
1045
function ajouterObs() {
1044
function ajouterObs() {
1046
	if (validerFormulaire() == true) {
1045
	if (validerFormulaire() == true) {
1047
		obsNbre = obsNbre + 1;
1046
		obsNbre = obsNbre + 1;
Line 1240... Line 1239...
1240
}
1239
}
Line 1241... Line 1240...
1241
 
1240
 
1242
function supprimerObs() {
1241
function supprimerObs() {
1243
	var obsId = $(this).val();
1242
	var obsId = $(this).val();
1244
	// Problème avec IE 6 et 7
1243
	// Problème avec IE 6 et 7
1245
	if (obsId == 'Supprimer') {
1244
	if (obsId == "Supprimer") {
1246
		obsId = $(this).attr('title');
1245
		obsId = $(this).attr("title");
-
 
1246
	}
-
 
1247
	supprimerObsParId(obsId);
-
 
1248
}
-
 
1249
 
1247
	}
1250
function supprimerObsParId(obsId) {
1248
	obsNbre = obsNbre - 1;
1251
	obsNbre = obsNbre - 1;
1249
	$('.obs-nbre').text(obsNbre);
1252
	$(".obs-nbre").text(obsNbre);
1250
	$('.obs-nbre').triggerHandler('changement');
-
 
1251
	
1253
	$(".obs-nbre").triggerHandler('changement');
1252
	$('.obs'+obsId).remove();
1254
	$('.obs'+obsId).remove();
-
 
1255
	$("#liste-obs").removeData('obsId'+obsId);
-
 
1256
}
-
 
1257
 
-
 
1258
function initialiserBarreProgression() {
-
 
1259
	$('#barre-progression-upload').attr('aria-valuenow', 0);
-
 
1260
	$('#barre-progression-upload').attr('style', "width: 0%");
-
 
1261
	$('#barre-progression-upload .sr-only').text("0/0 observations transmises");
-
 
1262
	$('.progress').addClass('active');
1253
	$('#liste-obs').removeData('obsId' + obsId);
1263
	$('.progress').addClass('progress-striped');
Line 1254... Line 1264...
1254
}
1264
}
1255
 
1265
 
-
 
1266
function initialiserObs() {
-
 
1267
	obsNbre = 0;
-
 
1268
	nbObsTransmises = 0;
-
 
1269
	nbObsEnCours = 0;
1256
function initialiserObs() {
1270
	totalObsATransmettre = 0;
1257
	obsNbre = 0;
1271
	initialiserBarreProgression();
1258
	$('.obs-nbre').text(obsNbre);
1272
	$(".obs-nbre").text(obsNbre);
1259
	$('.obs-nbre').triggerHandler('changement');
1273
	$(".obs-nbre").triggerHandler('changement');
1260
	$('#liste-obs').removeData();
1274
	$("#liste-obs").removeData();
1261
	$('.obs').remove();
1275
	$('.obs').remove();
Line 1262... Line 1276...
1262
	$('#dialogue-bloquer-creer-obs').hide();
1276
	$("#dialogue-bloquer-creer-obs").hide();
1263
}
1277
}
1264
 
1278
 
Line 1355... Line 1369...
1355
	return perceptionTechnicien;
1369
	return perceptionTechnicien;
1356
}
1370
}
Line 1357... Line 1371...
1357
 
1371
 
1358
//+----------------------------------------------------------------------------------------------------------+
1372
//+----------------------------------------------------------------------------------------------------------+
1359
// TRANSFERER OBS : envoie des obs au CEL
-
 
-
 
1373
// TRANSFERER OBS : envoie des obs au CEL
-
 
1374
var nbObsEnCours = 1;
1360
 
1375
var totalObsATransmettre = 0;
1361
function transmettreObs() {
1376
function transmettreObs() {
1362
	var observations = $('#liste-obs').data();
-
 
1363
	
1377
	var observations = $("#liste-obs").data();
1364
	if (observations == undefined || jQuery.isEmptyObject(observations)) {
1378
	if (observations == undefined || jQuery.isEmptyObject(observations)) {
1365
		afficherPanneau('#dialogue-zero-obs');
1379
		afficherPanneau("#dialogue-zero-obs");
-
 
1380
	} else {
-
 
1381
		nbObsEnCours = 1;
-
 
1382
		nbObsTransmises = 0;
-
 
1383
		totalObsATransmettre = $.map(observations, function(n, i) { return i; }).length;
-
 
1384
		depilerObsPourEnvoi();
-
 
1385
	}
-
 
1386
	return false;
-
 
1387
}
-
 
1388
 
-
 
1389
function depilerObsPourEnvoi() {
-
 
1390
	var observations = $("#liste-obs").data();
-
 
1391
	// la boucle est factice car on utilise un tableau
-
 
1392
	// dont on a besoin de n'extraire que le premier élément
-
 
1393
	// or javascript n'a pas de méthode cross browsers pour extraire les clés
-
 
1394
	// TODO: utiliser var.keys quand ça sera plus répandu
-
 
1395
	// ou bien utiliser un vrai tableau et pas un objet
-
 
1396
	for (var obsNum in observations) {	
-
 
1397
		obsATransmettre = new Object();	
1366
	} else {
1398
	    
1367
		observations['projet'] = TAG_PROJET;
1399
	    obsATransmettre['projet'] = TAG_PROJET;
1368
		observations['tag-obs'] = TAG_OBS;
1400
	    obsATransmettre['tag-obs'] = TAG_OBS;
Line 1369... Line 1401...
1369
		observations['tag-img'] = TAG_IMG;
1401
	    obsATransmettre['tag-img'] = TAG_IMG;
1370
		
1402
		
1371
		var utilisateur = new Object();
1403
		var utilisateur = new Object();
1372
		utilisateur.id_utilisateur = $('#id_utilisateur').val();
1404
		utilisateur.id_utilisateur = $("#id_utilisateur").val();
1373
		utilisateur.prenom = $('#prenom').val();
1405
		utilisateur.prenom = $("#prenom").val();
1374
		utilisateur.nom = $('#nom').val();
1406
		utilisateur.nom = $("#nom").val();
-
 
1407
		utilisateur.courriel = $("#courriel").val();
-
 
1408
		obsATransmettre['utilisateur'] = utilisateur;
-
 
1409
		obsATransmettre[obsNum] = observations[obsNum];
1375
		utilisateur.courriel = $('#courriel').val();
1410
		var idObsNumerique = obsNum.replace('obsId', '');
-
 
1411
		if(idObsNumerique != "") {
-
 
1412
			envoyerObsAuCel(idObsNumerique, obsATransmettre);
-
 
1413
		}
1376
		observations['utilisateur'] = utilisateur;
1414
		
1377
		envoyerObsAuCel(observations);
-
 
1378
	}
1415
		break;
Line -... Line 1416...
-
 
1416
	}
-
 
1417
}
-
 
1418
 
-
 
1419
var nbObsTransmises = 0;
-
 
1420
function mettreAJourProgression() {
-
 
1421
	nbObsTransmises++;
-
 
1422
	var pct = (nbObsTransmises/totalObsATransmettre)*100;
-
 
1423
	$('#barre-progression-upload').attr('aria-valuenow', nbObsTransmises);
-
 
1424
	$('#barre-progression-upload').attr('style', "width: "+pct+"%");
-
 
1425
	$('#barre-progression-upload .sr-only').text(nbObsTransmises+"/"+totalObsATransmettre+" observations transmises");
-
 
1426
 
-
 
1427
	if(obsNbre == 0) {
-
 
1428
		$('.progress').removeClass('active');
-
 
1429
		$('.progress').removeClass('progress-striped');
1379
	return false;
1430
	}
1380
}
1431
}
1381
 
1432
 
1382
function envoyerObsAuCel(observations) {
1433
function envoyerObsAuCel(idObs, observation) {
1383
	var erreurMsg = '',
1434
	var erreurMsg = '',
1384
		debugNonJson = '';
1435
		debugNonJson = '';
1385
	$.ajax({
1436
	$.ajax({
1386
		url: SERVICE_SAISIE_URL,
1437
		url: SERVICE_SAISIE_URL,
1387
		type: 'POST',
1438
		type: 'POST',
1388
		data: observations,
1439
		data: observation,
1389
		dataType: 'json',
1440
		dataType: 'json',
1390
		beforeSend: function() {
1441
		beforeSend: function() {
1391
			$('#dialogue-obs-transaction-ko').hide();
1442
			$('#dialogue-obs-transaction-ko').hide();
1392
			$('#dialogue-obs-transaction-ok').hide();
1443
			$('#dialogue-obs-transaction-ok').hide();
1393
			$('.alert-txt').empty();	
1444
			$('.alert-txt').empty();	
1394
			$('#chargement').show();
1445
			$('#chargement').show();
-
 
1446
		},
-
 
1447
		success: function(data, textStatus, jqXHR) {
-
 
1448
			// mise à jour du nombre d'obs à transmettre
-
 
1449
			// et suppression de l'obs
-
 
1450
			supprimerObsParId(idObs);
-
 
1451
			nbObsEnCours++;
-
 
1452
			// mise à jour du statut
-
 
1453
			mettreAJourProgression();
-
 
1454
			if(obsNbre > 0) {
1395
		},
1455
				// dépilement de la suivante
1396
		success: function(data, textStatus, jqXHR) {
1456
				depilerObsPourEnvoi();
1397
			$('#dialogue-obs-transaction-ok .alert-txt').append($('#tpl-transmission-ok').clone().html());
1457
			}
1398
			supprimerMiniatures();
1458
			supprimerMiniatures();
1399
		},
1459
		},
Line 1415... Line 1475...
1415
				erreurMsg += "L'erreur n'est pas en JSON.";
1475
				erreurMsg += "L'erreur n'est pas en JSON.";
1416
				debugNonJson = jqXHR.responseText;
1476
				debugNonJson = jqXHR.responseText;
1417
			}
1477
			}
1418
		},
1478
		},
1419
		complete: function(jqXHR, textStatus) {
1479
		complete: function(jqXHR, textStatus) {
1420
			$('#chargement').hide();
-
 
1421
			var debugMsg = extraireEnteteDebug(jqXHR);
1480
			var debugMsg = extraireEnteteDebug(jqXHR);
Line 1422... Line 1481...
1422
			
1481
			
1423
			if (erreurMsg != '') {
1482
			if (erreurMsg != '') {
1424
				if (DEBUG) {
1483
				if (DEBUG) {
Line 1427... Line 1486...
1427
				}
1486
				}
1428
				var hrefCourriel = 'mailto:cel_remarques@tela-botanica.org?' + 
1487
				var hrefCourriel = 'mailto:cel_remarques@tela-botanica.org?' + 
1429
					'subject=Disfonctionnement du widget de saisie ' + TAG_PROJET + 
1488
					'subject=Disfonctionnement du widget de saisie ' + TAG_PROJET + 
1430
					'&body=' + erreurMsg + "\nDébogage :\n" + debugMsg + debugNonJson;
1489
					'&body=' + erreurMsg + "\nDébogage :\n" + debugMsg + debugNonJson;
Line -... Line 1490...
-
 
1490
				
-
 
1491
				// mise en valeur de l'obs en erreur + scroll vers celle ci en changeant le hash
-
 
1492
				$('#obs'+idObs+' div div').addClass('obs-erreur');
-
 
1493
				window.location.hash = "obs"+idObs;
1431
				
1494
				
1432
				$('#dialogue-obs-transaction-ko .alert-txt').append($('#tpl-transmission-ko').clone()
1495
				$('#dialogue-obs-transaction-ko .alert-txt').append($('#tpl-transmission-ko').clone()
1433
					.find('.courriel-erreur')
1496
					.find('.courriel-erreur')
1434
					.attr('href', hrefCourriel)
1497
					.attr('href', hrefCourriel)
1435
					.end()
1498
					.end()
1436
					.html());
1499
					.html());
-
 
1500
				$('#dialogue-obs-transaction-ko').show();
-
 
1501
				$("#chargement").hide();
1437
				$('#dialogue-obs-transaction-ko').show();
1502
				initialiserBarreProgression();
1438
			} else {
1503
			} else {
1439
				if (DEBUG) {
1504
				if (DEBUG) {
1440
					$('#dialogue-obs-transaction-ok .alert-txt').append('<pre class="msg-debug">Débogage : ' + debugMsg + debugNonJson + '</pre>');
1505
					$('#dialogue-obs-transaction-ok .alert-txt').append('<pre class="msg-debug">Débogage : ' + debugMsg + debugNonJson + '</pre>');
-
 
1506
				}
-
 
1507
				if(obsNbre == 0) {
-
 
1508
					setTimeout(function() {
-
 
1509
						$("#chargement").hide();
1441
				}
1510
						$('#dialogue-obs-transaction-ok .alert-txt').append($('#tpl-transmission-ok').clone().html());
-
 
1511
						$("#dialogue-obs-transaction-ok").show();
-
 
1512
						window.location.hash = "dialogue-obs-transaction-ok";
-
 
1513
						initialiserObs();
-
 
1514
					}, 1500);
-
 
1515
					
1442
				$('#dialogue-obs-transaction-ok').show();
1516
				}
1443
			}
-
 
1444
			initialiserObs();
1517
			}
1445
		}
1518
		}
1446
	});
1519
	});
1447
}
1520
}