summaryrefslogtreecommitdiff
path: root/static/outilspage.js
blob: dac70bff4ec7867ceb2f2f83fceb57f3ac652863 (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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
// fonctions générales pour la page

var taillemaxdate = 10;
var placeholder_date = "aaaa-mm-jj" ;


function ajoutelignes()
{
	// va ajouter 3 lignes au tableau de données
	var table = document.getElementById("donneespoids")
	var nbligne = table.children[0].childElementCount ;
	// les données étant numérotées à partir de 0 on pourra commencer à partir de nbligne -1
	// car il faut éliminer la ligne de header.
	
	// voir dans quel mode on est : date ou texte
	var deuxiemeligne = table.children[0].children[1] ;
	var celldate = deuxiemeligne.children[1] ;
	var mode = celldate.firstChild.type ;
		
	var nbajout = 3 ;
	for(var i=nbligne-1; i<nbligne+nbajout-1; i++)
	{
		var ligne = table.insertRow(i+1);
		var cellage = ligne.insertCell(0);
		var celldate = ligne.insertCell(1);
		var cellpoids = ligne.insertCell(2);
		var celltaille = ligne.insertCell(3);
		
		cellage.innerHTML = '<input type="text" class="data" name="age_'+i+'">' ;
		celldate.innerHTML = '<input name="date_'+i+'">' ;
		celldate.firstChild.type = mode ;
		if(mode == "text") // si on a déjà affiché les cases en mode texte, on continue en mode texte
		{
			celldate.firstChild.size = taillemaxdate ;
			celldate.firstChild.maxlength = taillemaxdate ;
			celldate.firstChild.placeholder = placeholder_date ;
		}
		cellpoids.innerHTML = '<input type="text" class="data" name="poids_'+i+'">' ;	
		celltaille.innerHTML = '<input type="text" class="data" name="taille_'+i+'">' ;
		celltaille.classList.add("donneesplus") ;
		if(deuxiemeligne.children[3].style.display == "block")
			celltaille.style.display = "block" ;
	}
	
}

// Affichage de la section "export"
function affiche_export()
{
	document.getElementById("export").style.display = "block" ;
}
// Copier vers le presse-papiers
function copietexte()
{
  var elt = document.getElementById("export_texte");

  /* Select the text field */
  elt.select();
  elt.setSelectionRange(0, 99999); /* For mobile devices */

  /* Copy the text inside the text field */
  document.execCommand("copy");

}

function affiche_cache(id,elemcourant)
{
	// affiche et/ou cache l'élément id, tout en changeant le this
	// en afficher/masquer
	elem = document.getElementById(id)
	if(elem.style.display == "block")
	{
		elem.style.display = "none";
		elemcourant.innerHTML = "Afficher" ;
	}
	else
	{
		elem.style.display = "block" ;
		elemcourant.innerHTML = "Masquer" ;
		
	}
	
}

function affiche_cache_classe(classe)
{
	// affiche et/ou cache tous les éléments de la classe classe (et change le texte du this)
	var listelem = document.getElementsByClassName(classe) ;
	var attributaff ;
	if(listelem[0].style.display != "block") // c'est caché, donc on veut afficher
	{
		document.getElementById("bouton_afficher_donneesplus").innerHTML = "Masquer" ;
		attributaff = "block" ;
	}
	else
	{
		document.getElementById("bouton_afficher_donneesplus").innerHTML = "Afficher" ;
		attributaff = "none" ;
	}
	
	for(var i=0;i<listelem.length; i++)
	{
		listelem[i].style.display = attributaff ;
	}
}

function affiche_donneesplus_sibesoin()
{
	// fonction à appeler au chargement de la page
	// On parcourt le tableau des tailles (ou autres) et on voit si y'a
	// des choses dans les champs
	var trouve = false ;
	var liste_cases = document.getElementsByTagName("td") ;
	//alert(liste_cases[3].children[0].value+liste_cases[3].classList) ;
	for(i=0; i<liste_cases.length && !(trouve); i++)
	{
		// Si une des cases "données plus" contient un truc non vide
		if(liste_cases[i].classList == "donneesplus" && liste_cases[i].children[0].value != "")
		{
			trouve = true ;
		}
	}
	if(trouve)
		affiche_cache_classe("donneesplus")
}

function change_mode_dates(mode)
{
	// passe de l'affichage en mode "date" à l'affichage en mode "texte" pour les navigateurs
	// qui gèrent mal le mode date
	var listeinput = document.getElementsByTagName("input") ;
	for(i=0;i<listeinput.length;i++)
	{
		var nombalise = listeinput[i].name ;
		if(nombalise == "naissance" || nombalise.slice(0,5) == "date_")
		{
			if(mode == "date") {
				listeinput[i].maxlength = taillemaxdate ;
				listeinput[i].value = listeinput[i].value.replace(/\//g, "-") ; // remplacer les / par des -
			}

			listeinput[i].type = mode ;
			listeinput[i].size = taillemaxdate ;
			listeinput[i].placeholder = placeholder_date ;
		}
	}
	
	// changer le texte et le bouton.
	var elem = document.getElementById("changemode") ;
	if(mode =="text") 
	{
		elem.innerHTML = "Saisie des dates au format aaaa-mm-jj. <span onclick=\"change_mode_dates('date')\" class=\"bouton\">Cliquez ici</span> pour revenir à une saisie de dates «&nbsp;confortable&nbsp;» avec le calendrier."
	}
	else
	{
		elem.innerHTML = "<span onclick=\"change_mode_dates('text')\" class=\"bouton\">Cliquez ici</span> pour saisir les dates comme du texte."
	}
}

function ajoute_enfants()
{
	var eltul = document.getElementById("liste_enfants_add") ;
	var nblignes = eltul.childElementCount ;
	var elt1 = eltul.children[0] ;
	//alert(elt1.innerHTML) ;
	var texte = elt1.innerHTML ; 
	// Il faut remplacer les nblignes 2 par des nblignes +2
	texte = texte.replace("fichier_donnees_"+(2), "fichier_donnees_"+(nblignes +2)) ;
	texte = texte.replace("fichier_donnees_"+(2), "fichier_donnees_"+(nblignes +2)) ;
	texte = texte.replace("fichier_donnees_"+(2), "fichier_donnees_"+(nblignes +2)) ;
	texte = texte.replace("symbole_donnees_"+(2), "symbole_donnees_"+(nblignes +2)) ;
	texte = texte.replace("couleur_donnees_"+(2), "couleur_donnees_"+(nblignes +2)) ;

	// Enlever le "selected"
	texte = texte.replace("selected", "") ;

	var elt2 = document.createElement("li") ;
	elt2.innerHTML = texte ;

	// remettre le "selected" au bon endroit
	var options = elt2.getElementsByTagName("option") ;
	// Trouver le nblignes-ième élément
	var numero = (nblignes +1) % options.length ;
	//Sélectionner l'élément en question
	var monoption = options[numero] ;
	monoption.setAttribute("selected", true) ;

	eltul.appendChild(elt2) ;

}

function vide_champ(nom) 
{
	// vide le champ d'id proposé
	var elt = document.getElementById(nom) ;
	elt.value = "" ;
}

function ajoute_reperes()
{ // ajoute des repères
	var eltul = document.getElementById("ajoutereperecourbe") ;
	var nblignes = eltul.childElementCount ;
//	alert(nblignes) ;
	var nb_additionnel = 2;
	for(var i=nblignes; i<nblignes+nb_additionnel ; i++) 
	{
		var elt = document.createElement("li") ;
		elt.innerHTML = 'Âge&nbsp;: <input class="data" type="text" name="repere_age_'+i+'" value=""> Texte associé&nbsp;: <input class="texte" type="text" name="repere_texte_'+i+'" value=""> Tracer&nbsp;: <input type="checkbox" name="repere_trace_'+i+'">' ;
		eltul.appendChild(elt) ;
	}
	
}