Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 2005 Rev 2110
Line 622... Line 622...
622
		supprimerMiniatures();
622
		supprimerMiniatures();
623
		if(!ESPECE_IMPOSEE) {
623
		if(!ESPECE_IMPOSEE) {
624
			$("#taxon").val("");
624
			$("#taxon").val("");
625
			$("#taxon").data("numNomSel",undefined);
625
			$("#taxon").data("numNomSel",undefined);
626
		}
626
		}
-
 
627
		$('#barre-progression-upload').attr('aria-valuemax', obsNbre);
-
 
628
		$('#barre-progression-upload .sr-only').text('0/'+obsNbre+" observations transmises");
627
	} else {
629
	} else {
628
		afficherPanneau('#dialogue-form-invalide');
630
		afficherPanneau('#dialogue-form-invalide');
629
	}
631
	}
630
}
632
}
Line 716... Line 718...
716
		$("#ajouter-obs").attr('disabled', 'disabled');
718
		$("#ajouter-obs").attr('disabled', 'disabled');
717
		afficherPanneau("#dialogue-bloquer-creer-obs");
719
		afficherPanneau("#dialogue-bloquer-creer-obs");
718
	}
720
	}
719
}
721
}
Line -... Line 722...
-
 
722
 
-
 
723
var nbObsEnCours = 1;
720
 
724
var totalObsATransmettre = 0;
721
function transmettreObs() {
725
function transmettreObs() {
722
	var observations = $("#liste-obs").data();
-
 
723
	//console.log(observations);
-
 
724
	
726
	var observations = $("#liste-obs").data();
725
	if (observations == undefined || jQuery.isEmptyObject(observations)) {
727
	if (observations == undefined || jQuery.isEmptyObject(observations)) {
726
		afficherPanneau("#dialogue-zero-obs");
728
		afficherPanneau("#dialogue-zero-obs");
-
 
729
	} else {
-
 
730
		nbObsEnCours = 1;
-
 
731
		nbObsTransmises = 0;
-
 
732
		totalObsATransmettre = $.map(observations, function(n, i) { return i; }).length;
-
 
733
		depilerObsPourEnvoi();
-
 
734
	}
-
 
735
	return false;
-
 
736
}
-
 
737
 
-
 
738
function depilerObsPourEnvoi() {
-
 
739
	var observations = $("#liste-obs").data();
-
 
740
	// la boucle est factice car on utilise un tableau
-
 
741
	// dont on a besoin de n'extraire que le premier élément
-
 
742
	// or javascript n'a pas de méthode cross browsers pour extraire les clés
-
 
743
	// TODO: utiliser var.keys quand ça sera plus répandu
-
 
744
	// ou bien utiliser un vrai tableau et pas un objet
-
 
745
	for (var obsNum in observations) {	
-
 
746
		obsATransmettre = new Object();	
727
	} else {
747
	    
728
		observations['projet'] = TAG_PROJET;
748
	    obsATransmettre['projet'] = TAG_PROJET;
729
		observations['tag-obs'] = TAG_OBS;
749
	    obsATransmettre['tag-obs'] = TAG_OBS;
Line 730... Line 750...
730
		observations['tag-img'] = TAG_IMG;
750
	    obsATransmettre['tag-img'] = TAG_IMG;
731
		
751
		
732
		var utilisateur = new Object();
752
		var utilisateur = new Object();
733
		utilisateur.id_utilisateur = $("#id_utilisateur").val();
753
		utilisateur.id_utilisateur = $("#id_utilisateur").val();
734
		utilisateur.prenom = $("#prenom").val();
754
		utilisateur.prenom = $("#prenom").val();
735
		utilisateur.nom = $("#nom").val();
755
		utilisateur.nom = $("#nom").val();
-
 
756
		utilisateur.courriel = $("#courriel").val();
-
 
757
		obsATransmettre['utilisateur'] = utilisateur;
-
 
758
		obsATransmettre[obsNum] = observations[obsNum];
736
		utilisateur.courriel = $("#courriel").val();
759
		var idObsNumerique = obsNum.replace('obsId', '');
-
 
760
		if(idObsNumerique != "") {
-
 
761
			envoyerObsAuCel(idObsNumerique, obsATransmettre);
-
 
762
		}
737
		observations['utilisateur'] = utilisateur;
763
		
738
		envoyerObsAuCel(observations);
-
 
739
	}
764
		break;
Line -... Line 765...
-
 
765
	}
-
 
766
}
-
 
767
 
-
 
768
var nbObsTransmises = 0;
-
 
769
function mettreAJourProgression() {
-
 
770
	nbObsTransmises++;
-
 
771
	var pct = (nbObsTransmises/totalObsATransmettre)*100;
-
 
772
	$('#barre-progression-upload').attr('aria-valuenow', nbObsTransmises);
-
 
773
	$('#barre-progression-upload').attr('style', "width: "+pct+"%");
-
 
774
	$('#barre-progression-upload .sr-only').text(nbObsTransmises+"/"+totalObsATransmettre+" observations transmises");
-
 
775
 
-
 
776
	if(obsNbre == 0) {
-
 
777
		$('.progress').removeClass('active');
-
 
778
		$('.progress').removeClass('progress-striped');
740
	return false;
779
	}
741
}
780
}
742
 
781
 
743
function envoyerObsAuCel(observations) {
782
function envoyerObsAuCel(idObs, observation) {
744
	var erreurMsg = "";
783
	var erreurMsg = "";
745
	$.ajax({
784
	$.ajax({
746
		url : SERVICE_SAISIE_URL,
785
		url : SERVICE_SAISIE_URL,
747
		type : "POST",
786
		type : "POST",
748
		data : observations,
787
		data : observation,
749
		dataType : "json",
788
		dataType : "json",
750
		beforeSend : function() {
789
		beforeSend : function() {
751
			$("#dialogue-obs-transaction-ko").hide();
790
			$("#dialogue-obs-transaction-ko").hide();
752
			$("#dialogue-obs-transaction-ok").hide();
791
			$("#dialogue-obs-transaction-ok").hide();
753
			$(".alert-txt .msg").remove();	
792
			$(".alert-txt .msg").remove();	
754
			$(".alert-txt .msg-erreur").remove();
793
			$(".alert-txt .msg-erreur").remove();
755
			$(".alert-txt .msg-debug").remove();
794
			$(".alert-txt .msg-debug").remove();
756
			$("#chargement").show();
795
			$("#chargement").show();
-
 
796
		},
757
		},
797
		success : function(data, textStatus, jqXHR) {
-
 
798
			// mise à jour du nombre d'obs à transmettre
-
 
799
			// et suppression de l'obs
-
 
800
			supprimerObsParId(idObs);
-
 
801
			nbObsEnCours++;
-
 
802
			// mise à jour du statut
-
 
803
			mettreAJourProgression();
-
 
804
			if(obsNbre > 0) {
758
		success : function(data, textStatus, jqXHR) {
805
				// dépilement de la suivante
759
			$('#dialogue-obs-transaction-ok .alert-txt').append($("#tpl-transmission-ok").clone().html());
806
				depilerObsPourEnvoi();
760
			supprimerMiniatures();
807
			}
761
		},
808
		},
762
		statusCode : {
809
		statusCode : {
Line 776... Line 823...
776
			} catch(e) {
823
			} catch(e) {
777
				erreurMsg += "L'erreur n'était pas en JSON.";
824
				erreurMsg += "L'erreur n'était pas en JSON.";
778
			}
825
			}
779
		},
826
		},
780
		complete : function(jqXHR, textStatus) {
827
		complete : function(jqXHR, textStatus) {
781
			$("#chargement").hide();
-
 
782
			var debugMsg = extraireEnteteDebug(jqXHR);
828
			var debugMsg = extraireEnteteDebug(jqXHR);
Line 783... Line 829...
783
			
829
			
784
			if (erreurMsg != '') {
830
			if (erreurMsg != '') {
785
				if (DEBUG) {
831
				if (DEBUG) {
Line 788... Line 834...
788
				}
834
				}
789
				var hrefCourriel = "mailto:cel_remarques@tela-botanica.org?"+
835
				var hrefCourriel = "mailto:cel_remarques@tela-botanica.org?"+
790
					"subject=Dysfonctionnement du widget de saisie "+TAG_PROJET+
836
					"subject=Dysfonctionnement du widget de saisie "+TAG_PROJET+
791
					"&body="+erreurMsg+"%0D%0ADébogage :%0D%0A"+debugMsg;
837
					"&body="+erreurMsg+"%0D%0ADébogage :%0D%0A"+debugMsg;
Line -... Line 838...
-
 
838
				
-
 
839
				// mise en valeur de l'obs en erreur + scroll vers celle ci en changeant le hash
-
 
840
				$('#obs'+idObs+' div div').addClass('obs-erreur');
-
 
841
				window.location.hash = "obs"+idObs;
792
				
842
				 
793
				$('#dialogue-obs-transaction-ko .alert-txt').append($("#tpl-transmission-ko").clone()
843
				$('#dialogue-obs-transaction-ko .alert-txt').append($("#tpl-transmission-ko").clone()
794
					.find('.courriel-erreur')
844
					.find('.courriel-erreur')
795
					.attr('href', hrefCourriel)
845
					.attr('href', hrefCourriel)
796
					.end()
846
					.end()
797
					.html());
847
					.html());
-
 
848
				$("#dialogue-obs-transaction-ko").show();
-
 
849
				$("#chargement").hide();
798
				$("#dialogue-obs-transaction-ko").show();
850
				initialiserBarreProgression();
799
			} else {
851
			} else {
800
				if (DEBUG) {
852
				if (DEBUG) {
801
					$("#dialogue-obs-transaction-ok .alert-txt").append('<pre class="msg-debug">Débogage : '+debugMsg+'</pre>');
853
					$("#dialogue-obs-transaction-ok .alert-txt").append('<pre class="msg-debug">Débogage : '+debugMsg+'</pre>');
-
 
854
				}
-
 
855
				if(obsNbre == 0) {
-
 
856
					setTimeout(function() {
-
 
857
						$("#chargement").hide();
802
				}
858
						$('#dialogue-obs-transaction-ok .alert-txt').append($('#tpl-transmission-ok').clone().html());
-
 
859
						$("#dialogue-obs-transaction-ok").show();
-
 
860
						initialiserObs();
-
 
861
					}, 1500);
-
 
862
					
803
				$("#dialogue-obs-transaction-ok").show();
863
				}			
804
			}
-
 
805
			initialiserObs();
864
			}
806
		}
865
		}
807
	});
866
	});
Line 808... Line 867...
808
}
867
}
Line 839... Line 898...
839
	var obsId = $(this).val();
898
	var obsId = $(this).val();
840
	// Problème avec IE 6 et 7
899
	// Problème avec IE 6 et 7
841
	if (obsId == "Supprimer") {
900
	if (obsId == "Supprimer") {
842
		obsId = $(this).attr("title");
901
		obsId = $(this).attr("title");
843
	}
902
	}
-
 
903
	supprimerObsParId(obsId);
-
 
904
}
-
 
905
 
-
 
906
function supprimerObsParId(obsId) {
844
	obsNbre = obsNbre - 1;
907
	obsNbre = obsNbre - 1;
845
	$(".obs-nbre").text(obsNbre);
908
	$(".obs-nbre").text(obsNbre);
846
	$(".obs-nbre").triggerHandler('changement');
909
	$(".obs-nbre").triggerHandler('changement');
847
	
-
 
848
	$('.obs'+obsId).remove();
910
	$('.obs'+obsId).remove();
849
	$("#liste-obs").removeData('obsId'+obsId);
911
	$("#liste-obs").removeData('obsId'+obsId);
850
}
912
}
Line -... Line 913...
-
 
913
 
-
 
914
function initialiserBarreProgression() {
-
 
915
	$('#barre-progression-upload').attr('aria-valuenow', 0);
-
 
916
	$('#barre-progression-upload').attr('style', "width: 0%");
-
 
917
	$('#barre-progression-upload .sr-only').text("0/0 observations transmises");
-
 
918
	$('.progress').addClass('active');
-
 
919
	$('.progress').addClass('progress-striped');
-
 
920
}
851
 
921
 
852
function initialiserObs() {
922
function initialiserObs() {
-
 
923
	obsNbre = 0;
-
 
924
	nbObsTransmises = 0;
-
 
925
	nbObsEnCours = 0;
-
 
926
	totalObsATransmettre = 0;
853
	obsNbre = 0;
927
	initialiserBarreProgression();
854
	$(".obs-nbre").text(obsNbre);
928
	$(".obs-nbre").text(obsNbre);
855
	$(".obs-nbre").triggerHandler('changement');
929
	$(".obs-nbre").triggerHandler('changement');
856
	$("#liste-obs").removeData();
930
	$("#liste-obs").removeData();
857
	$('.obs').remove();
931
	$('.obs').remove();