Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 2049 Rev 2117
Line 1049... Line 1049...
1049
}
1049
}
Line 1050... Line 1050...
1050
 
1050
 
1051
function supprimerObs() {
1051
function supprimerObs() {
1052
	var obsId = $(this).val();
1052
	var obsId = $(this).val();
1053
	// Problème avec IE 6 et 7
1053
	// Problème avec IE 6 et 7
1054
	if (obsId == 'Supprimer') {
1054
	if (obsId == "Supprimer") {
1055
		obsId = $(this).attr('title');
1055
		obsId = $(this).attr("title");
-
 
1056
	}
-
 
1057
	supprimerObsParId(obsId);
-
 
1058
}
-
 
1059
 
1056
	}
1060
function supprimerObsParId(obsId) {
1057
	obsNbre = obsNbre - 1;
1061
	obsNbre = obsNbre - 1;
1058
	$('.obs-nbre').text(obsNbre);
1062
	$(".obs-nbre").text(obsNbre);
1059
	$('.obs-nbre').triggerHandler('changement');
-
 
1060
	
1063
	$(".obs-nbre").triggerHandler('changement');
1061
	$('.obs'+obsId).remove();
1064
	$('.obs'+obsId).remove();
-
 
1065
	$("#liste-obs").removeData('obsId'+obsId);
-
 
1066
}
-
 
1067
 
-
 
1068
function initialiserBarreProgression() {
-
 
1069
	$('#barre-progression-upload').attr('aria-valuenow', 0);
-
 
1070
	$('#barre-progression-upload').attr('style', "width: 0%");
-
 
1071
	$('#barre-progression-upload .sr-only').text("0/0 observations transmises");
-
 
1072
	$('.progress').addClass('active');
1062
	$('#liste-obs').removeData('obsId' + obsId);
1073
	$('.progress').addClass('progress-striped');
Line 1063... Line 1074...
1063
}
1074
}
1064
 
1075
 
-
 
1076
function initialiserObs() {
-
 
1077
	obsNbre = 0;
-
 
1078
	nbObsTransmises = 0;
-
 
1079
	nbObsEnCours = 0;
1065
function initialiserObs() {
1080
	totalObsATransmettre = 0;
1066
	obsNbre = 0;
1081
	initialiserBarreProgression();
1067
	$('.obs-nbre').text(obsNbre);
1082
	$(".obs-nbre").text(obsNbre);
1068
	$('.obs-nbre').triggerHandler('changement');
1083
	$(".obs-nbre").triggerHandler('changement');
1069
	$('#liste-obs').removeData();
1084
	$("#liste-obs").removeData();
1070
	$('.obs').remove();
1085
	$('.obs').remove();
Line 1071... Line 1086...
1071
	$('#dialogue-bloquer-creer-obs').hide();
1086
	$("#dialogue-bloquer-creer-obs").hide();
1072
}
1087
}
1073
 
1088
 
Line 1149... Line 1164...
1149
	return champs;
1164
	return champs;
1150
}
1165
}
Line 1151... Line 1166...
1151
 
1166
 
1152
//+----------------------------------------------------------------------------------------------------------+
1167
//+----------------------------------------------------------------------------------------------------------+
1153
//TRANSFERER OBS : envoie des obs au CEL => OK
-
 
-
 
1168
//TRANSFERER OBS : envoie des obs au CEL => OK
-
 
1169
var nbObsEnCours = 1;
1154
 
1170
var totalObsATransmettre = 0;
1155
function transmettreObs() {
1171
function transmettreObs() {
1156
	var observations = $('#liste-obs').data();
-
 
1157
	
1172
	var observations = $("#liste-obs").data();
1158
	if (observations == undefined || jQuery.isEmptyObject(observations)) {
1173
	if (observations == undefined || jQuery.isEmptyObject(observations)) {
1159
		afficherPanneau('#dialogue-zero-obs');
1174
		afficherPanneau("#dialogue-zero-obs");
-
 
1175
	} else {
-
 
1176
		nbObsEnCours = 1;
-
 
1177
		nbObsTransmises = 0;
-
 
1178
		totalObsATransmettre = $.map(observations, function(n, i) { return i; }).length;
-
 
1179
		depilerObsPourEnvoi();
-
 
1180
	}
-
 
1181
	return false;
-
 
1182
}
-
 
1183
 
-
 
1184
function depilerObsPourEnvoi() {
-
 
1185
	var observations = $("#liste-obs").data();
-
 
1186
	// la boucle est factice car on utilise un tableau
-
 
1187
	// dont on a besoin de n'extraire que le premier élément
-
 
1188
	// or javascript n'a pas de méthode cross browsers pour extraire les clés
-
 
1189
	// TODO: utiliser var.keys quand ça sera plus répandu
-
 
1190
	// ou bien utiliser un vrai tableau et pas un objet
-
 
1191
	for (var obsNum in observations) {	
-
 
1192
		obsATransmettre = new Object();	
1160
	} else {
1193
	    
1161
		observations['projet'] = TAG_PROJET;
1194
	    obsATransmettre['projet'] = TAG_PROJET;
1162
		observations['tag-obs'] = TAG_OBS;
1195
	    obsATransmettre['tag-obs'] = TAG_OBS;
Line 1163... Line 1196...
1163
		observations['tag-img'] = TAG_IMG;
1196
	    obsATransmettre['tag-img'] = TAG_IMG;
1164
		
1197
		
1165
		var utilisateur = new Object();
1198
		var utilisateur = new Object();
1166
		utilisateur.id_utilisateur = $('#id_utilisateur').val();
1199
		utilisateur.id_utilisateur = $("#id_utilisateur").val();
1167
		utilisateur.prenom = $('#prenom').val();
1200
		utilisateur.prenom = $("#prenom").val();
1168
		utilisateur.nom = $('#nom').val();
1201
		utilisateur.nom = $("#nom").val();
1169
		utilisateur.courriel = $('#courriel').val();
-
 
-
 
1202
		utilisateur.courriel = $("#courriel").val();
-
 
1203
		obsATransmettre['utilisateur'] = utilisateur;
1170
		observations['utilisateur'] = utilisateur;
1204
		obsATransmettre[obsNum] = observations[obsNum];
1171
		
1205
		var idObsNumerique = obsNum.replace('obsId', '');
1172
		if (DEBUG) {
1206
		if(idObsNumerique != "") {
-
 
1207
			envoyerObsAuCel(idObsNumerique, obsATransmettre);
-
 
1208
		}
-
 
1209
		
-
 
1210
		break;
-
 
1211
	}
-
 
1212
}
-
 
1213
 
-
 
1214
var nbObsTransmises = 0;
-
 
1215
function mettreAJourProgression() {
-
 
1216
	nbObsTransmises++;
-
 
1217
	var pct = (nbObsTransmises/totalObsATransmettre)*100;
-
 
1218
	$('#barre-progression-upload').attr('aria-valuenow', nbObsTransmises);
-
 
1219
	$('#barre-progression-upload').attr('style', "width: "+pct+"%");
-
 
1220
	$('#barre-progression-upload .sr-only').text(nbObsTransmises+"/"+totalObsATransmettre+" observations transmises");
1173
			console.log(observations);
1221
 
-
 
1222
	if(obsNbre == 0) {
1174
		}
1223
		$('.progress').removeClass('active');
1175
		envoyerObsAuCel(observations);
-
 
1176
	}
1224
		$('.progress').removeClass('progress-striped');
Line 1177... Line 1225...
1177
	return false;
1225
	}
1178
}
1226
}
1179
 
1227
 
1180
function envoyerObsAuCel(observations) {
1228
function envoyerObsAuCel(idObs, observation) {
1181
	var erreurMsg = '',
1229
	var erreurMsg = '',
1182
		debugNonJson = '';
1230
		debugNonJson = '';
1183
	$.ajax({
1231
	$.ajax({
1184
		url: SERVICE_SAISIE_URL,
1232
		url: SERVICE_SAISIE_URL,
1185
		type: 'POST',
1233
		type: 'POST',
1186
		data: observations,
1234
		data: observation,
1187
		dataType: 'json',
1235
		dataType: 'json',
1188
		beforeSend: function() {
1236
		beforeSend: function() {
1189
			$('#dialogue-obs-transaction-ko').hide();
1237
			$('#dialogue-obs-transaction-ko').hide();
1190
			$('#dialogue-obs-transaction-ok').hide();
1238
			$('#dialogue-obs-transaction-ok').hide();
1191
			$('.alert-txt').empty();
1239
			$('.alert-txt').empty();
1192
			$('#chargement').show();
1240
			$('#chargement').show();
-
 
1241
		},
-
 
1242
		success: function(data, textStatus, jqXHR) {
-
 
1243
			// mise à jour du nombre d'obs à transmettre
-
 
1244
			// et suppression de l'obs
-
 
1245
			supprimerObsParId(idObs);
-
 
1246
			nbObsEnCours++;
-
 
1247
			// mise à jour du statut
-
 
1248
			mettreAJourProgression();
-
 
1249
			if(obsNbre > 0) {
1193
		},
1250
				// dépilement de la suivante
1194
		success: function(data, textStatus, jqXHR) {
1251
				depilerObsPourEnvoi();
1195
			$('#dialogue-obs-transaction-ok .alert-txt').append($('#tpl-transmission-ok').clone().html());
1252
			}
1196
			supprimerMiniatures();
1253
			supprimerMiniatures();
1197
		},
1254
		},
Line 1213... Line 1270...
1213
				erreurMsg += "L'erreur n'est pas en JSON.";
1270
				erreurMsg += "L'erreur n'est pas en JSON.";
1214
				debugNonJson = jqXHR.responseText;
1271
				debugNonJson = jqXHR.responseText;
1215
			}
1272
			}
1216
		},
1273
		},
1217
		complete: function(jqXHR, textStatus) {
1274
		complete: function(jqXHR, textStatus) {
1218
			$('#chargement').hide();
-
 
1219
			var debugMsg = extraireEnteteDebug(jqXHR);
1275
			var debugMsg = extraireEnteteDebug(jqXHR);
Line 1220... Line 1276...
1220
			
1276
			
1221
			if (erreurMsg != '') {
1277
			if (erreurMsg != '') {
1222
				if (DEBUG) {
1278
				if (DEBUG) {
Line 1225... Line 1281...
1225
				}
1281
				}
1226
				var hrefCourriel = 'mailto:cel_remarques@tela-botanica.org?' + 
1282
				var hrefCourriel = 'mailto:cel_remarques@tela-botanica.org?' + 
1227
					'subject=Disfonctionnement du widget de saisie ' + TAG_PROJET + 
1283
					'subject=Disfonctionnement du widget de saisie ' + TAG_PROJET + 
1228
					'&body=' + erreurMsg + "\nDébogage :\n" + debugMsg + debugNonJson;
1284
					'&body=' + erreurMsg + "\nDébogage :\n" + debugMsg + debugNonJson;
Line -... Line 1285...
-
 
1285
				
-
 
1286
				// mise en valeur de l'obs en erreur + scroll vers celle ci en changeant le hash
-
 
1287
				$('#obs'+idObs+' div div').addClass('obs-erreur');
-
 
1288
				window.location.hash = "obs"+idObs;
1229
				
1289
				
1230
				$('#dialogue-obs-transaction-ko .alert-txt').append($('#tpl-transmission-ko').clone()
1290
				$('#dialogue-obs-transaction-ko .alert-txt').append($('#tpl-transmission-ko').clone()
1231
					.find('.courriel-erreur')
1291
					.find('.courriel-erreur')
1232
					.attr('href', hrefCourriel)
1292
					.attr('href', hrefCourriel)
1233
					.end()
1293
					.end()
1234
					.html());
1294
					.html());
-
 
1295
				$('#dialogue-obs-transaction-ko').show();
-
 
1296
				$("#chargement").hide();
1235
				$('#dialogue-obs-transaction-ko').show();
1297
				initialiserBarreProgression();
1236
			} else {
1298
			} else {
1237
				if (DEBUG) {
1299
				if (DEBUG) {
1238
					$('#dialogue-obs-transaction-ok .alert-txt').append('<pre class="msg-debug">Débogage : ' + debugMsg + debugNonJson + '</pre>');
1300
					$('#dialogue-obs-transaction-ok .alert-txt').append('<pre class="msg-debug">Débogage : ' + debugMsg + debugNonJson + '</pre>');
-
 
1301
				}
-
 
1302
				if(obsNbre == 0) {
-
 
1303
					setTimeout(function() {
-
 
1304
						$("#chargement").hide();
1239
				}
1305
						$('#dialogue-obs-transaction-ok .alert-txt').append($('#tpl-transmission-ok').clone().html());
-
 
1306
						$("#dialogue-obs-transaction-ok").show();
-
 
1307
						window.location.hash = "dialogue-obs-transaction-ok";
-
 
1308
						initialiserObs();
-
 
1309
					}, 1500);
-
 
1310
					
1240
				$('#dialogue-obs-transaction-ok').show();
1311
				}
1241
			}
-
 
1242
			initialiserObs();
1312
			}
1243
		}
1313
		}
1244
	});
1314
	});
1245
}
1315
}