summaryrefslogtreecommitdiff
path: root/static/requetes.js
blob: 465366c5dd1e4f0a3556e3098fbd9b0ac301ed1d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
function appelle_image()
{
	affiche_statut("Calcul en cours...") ;
	
	var formData = new FormData( document.getElementById("donnees_enfant") );
	
	var requete = new XMLHttpRequest(); 
	requete.responseType = "json";
	requete.onreadystatechange = function()
	{
		if (this.readyState == 4 && this.status == 200) {
			// On nettoie
			nettoie_erreurs() ;
			nettoie_calculs() ;
						
			// on récupère les différents champs de la réponse
			var result = this.response.result ;
			var image_poids = this.response.image_poids ;
			var image_taille = this.response.image_taille ;
			var liste_warnings = this.response.messages
			var texte = this.response.export_txt;
			var nomenfant = this.response.nomenfant ;
			var calculextra = this.response.calculextra ;

			// on affiche l'export des données
			document.getElementById('export_texte').innerHTML = texte;
			document.getElementById('sectionexport').style.display = "block";
		
			
			var boutondl = document.getElementById("export_dl") ;
			boutondl.setAttribute('onclick',"download_file('donnees_"+nomenfant+".txt', 'application/json;charset=utf-8','"+encodeURIComponent(texte) +"')")
		

			if(result == "success")
			{	
				// On affiche l'image, si elle est là
				if (image_poids != "") {
					document.getElementById('sectioncourbe').style.display = "block";
					document.getElementById('section_courbe_poids').style.display = "block" ;
					document.getElementById('courbe_poids').src = 'data:image/png;base64,'+(image_poids);
					boutondl = document.getElementById("courbe_dl_poids") ;
					boutondl.setAttribute('onclick',"download_file('courbe_poids_"+nomenfant+".png', 'image/png;base64','"+image_poids +"')")
				}
				else {
					document.getElementById('section_courbe_poids').style.display = "none" ;
				}
				
				if (image_taille != "") {
					document.getElementById('sectioncourbe').style.display = "block";
					document.getElementById('section_courbe_taille').style.display = "block" ;
					document.getElementById('courbe_taille').src = 'data:image/png;base64,'+(image_taille);
					boutondl = document.getElementById("courbe_dl_taille") ;
					boutondl.setAttribute('onclick',"download_file('courbe_taille_"+nomenfant+".png', 'image/png;base64','"+image_taille +"')")
			    }
			    else {
					document.getElementById('section_courbe_taille').style.display = "none" ;						
				}


				// Si y'a eu des warnings, faut les afficher
				if(liste_warnings.length != 0)
				{
					// afficher la liste des warnings
					var elem_div = document.getElementById('courbe_warnings') ;
					elem_div.style.display = "block" ;
					var ul = elem_div.children[1] ;
					for(i=0; i<liste_warnings.length; i++) {
						var li = document.createElement("li");
						li.appendChild(document.createTextNode(liste_warnings[i]));
						ul.appendChild(li);
					}
				}
				// S'il y a des calculs faits, à afficher !
				if(calculextra.length != 0)
				{
					var elem_extr = document.getElementById("section_extradonnees")
					elem_extr.style.display = "block" ;
					var ul2=elem_extr.children[1] ;
					for(i=0; i<calculextra.length; i++) {
						var li = document.createElement("li");
						li.appendChild(document.createTextNode(calculextra[i]));
						ul2.appendChild(li);
					}
				}
				affiche_statut("Courbes générées, scroller vers le bas pour les voir.") ;
			}
			else{ // si la génération de l'image a merdé
				
				// afficher la liste des erreurs
				var elem_div = document.getElementById('courbe_erreurs') ;
				elem_div.style.display = "block" ;
				var ul = elem_div.children[1] ;
				for(i=0; i<liste_warnings.length; i++) {
					var li = document.createElement("li");
					li.appendChild(document.createTextNode(liste_warnings[i]));
					ul.appendChild(li);
				}
				affiche_statut("Il y a eu une erreur à la génération des courbes, voir plus bas.") ;
				
			}
		}
	}
	requete.open("POST","courbe/b64",true)
	requete.send(formData)

}

function nettoie_erreurs()
{
	// fonction qui nettoie les erreurs affichées sur la page
	// vider les warnings
	var elem_div = document.getElementById('courbe_warnings') ;
	elem_div.style.display = "none" ;
	var ul = elem_div.children[1] ;
	ul.innerHTML = "";
	
	// vider les erreurs
	elem_div = document.getElementById('courbe_erreurs') ;
	elem_div.style.display = "none" ;
	ul = elem_div.children[1] ;
	ul.innerHTML = "" ;
	
}

function nettoie_calculs()
{
	// Vider les calculs éventuels
	var elem_extr = document.getElementById("section_extradonnees")
	elem_extr.style.display = "none" ;
	var ul = document.getElementById("extradata") ;
	ul.innerHTML = "" ;	
}


function download_file(filename,mimetype,data) {
  var element = document.createElement('a');
  element.setAttribute('href', 'data:'+mimetype+',' + data);
  element.setAttribute('download', filename);

  element.style.display = 'none';
  document.body.appendChild(element);

  element.click();

  document.body.removeChild(element);	
	
}

function upload_file(nomformulaire) {
	document.getElementById(nomformulaire).submit();
}

// Fonction pour afficher le statut des courbes
function affiche_statut(message) {
	document.getElementById("statut_courbes").innerHTML = message ;
}