]>
Commit | Line | Data |
---|---|---|
1 | // fonctions générales pour la page | |
2 | ||
3 | var taillemaxdate = 10; | |
4 | var placeholder_date = "aaaa-mm-jj" ; | |
5 | ||
6 | ||
7 | function ajoutelignes() | |
8 | { | |
9 | // va ajouter 3 lignes au tableau de données | |
10 | var table = document.getElementById("donneespoids") | |
11 | var nbligne = table.children[0].childElementCount ; | |
12 | // les données étant numérotées à partir de 0 on pourra commencer à partir de nbligne -1 | |
13 | // car il faut éliminer la ligne de header. | |
14 | ||
15 | // voir dans quel mode on est : date ou texte | |
16 | var deuxiemeligne = table.children[0].children[1] ; | |
17 | var celldate = deuxiemeligne.children[1] ; | |
18 | var mode = celldate.firstChild.type ; | |
19 | ||
20 | var nbajout = 3 ; | |
21 | for(var i=nbligne-1; i<nbligne+nbajout-1; i++) | |
22 | { | |
23 | var ligne = table.insertRow(i+1); | |
24 | var cellage = ligne.insertCell(0); | |
25 | var celldate = ligne.insertCell(1); | |
26 | var cellpoids = ligne.insertCell(2); | |
27 | var celltaille = ligne.insertCell(3); | |
28 | ||
29 | cellage.innerHTML = '<input type="text" class="data" name="age_'+i+'">' ; | |
30 | celldate.innerHTML = '<input name="date_'+i+'">' ; | |
31 | celldate.firstChild.type = mode ; | |
32 | if(mode == "text") // si on a déjà affiché les cases en mode texte, on continue en mode texte | |
33 | { | |
34 | celldate.firstChild.size = taillemaxdate ; | |
35 | celldate.firstChild.maxlength = taillemaxdate ; | |
36 | celldate.firstChild.placeholder = placeholder_date ; | |
37 | } | |
38 | cellpoids.innerHTML = '<input type="text" class="data" name="poids_'+i+'">' ; | |
39 | celltaille.innerHTML = '<input type="text" class="data" name="taille_'+i+'">' ; | |
40 | celltaille.classList.add("donneesplus") ; | |
41 | if(deuxiemeligne.children[3].style.display == "block") | |
42 | celltaille.style.display = "block" ; | |
43 | } | |
44 | ||
45 | } | |
46 | ||
47 | // Affichage de la textarea "export" | |
48 | function affiche_export() | |
49 | { | |
50 | document.getElementById("export").style.display = "block" ; | |
51 | ||
52 | } | |
53 | ||
54 | function affiche_cache(id,elemcourant) | |
55 | { | |
56 | // affiche et/ou cache l'élément id, tout en changeant le this | |
57 | // en afficher/masquer | |
58 | elem = document.getElementById(id) | |
59 | if(elem.style.display == "block") | |
60 | { | |
61 | elem.style.display = "none"; | |
62 | elemcourant.innerHTML = "Afficher" ; | |
63 | } | |
64 | else | |
65 | { | |
66 | elem.style.display = "block" ; | |
67 | elemcourant.innerHTML = "Masquer" ; | |
68 | ||
69 | } | |
70 | ||
71 | } | |
72 | ||
73 | function affiche_cache_classe(classe) | |
74 | { | |
75 | // affiche et/ou cache tous les éléments de la classe classe (et change le texte du this) | |
76 | var listelem = document.getElementsByClassName(classe) ; | |
77 | var attributaff ; | |
78 | if(listelem[0].style.display != "block") // c'est caché, donc on veut afficher | |
79 | { | |
80 | document.getElementById("bouton_afficher_donneesplus").innerHTML = "Masquer" ; | |
81 | attributaff = "block" ; | |
82 | } | |
83 | else | |
84 | { | |
85 | document.getElementById("bouton_afficher_donneesplus").innerHTML = "Afficher" ; | |
86 | attributaff = "none" ; | |
87 | } | |
88 | ||
89 | for(var i=0;i<listelem.length; i++) | |
90 | { | |
91 | listelem[i].style.display = attributaff ; | |
92 | } | |
93 | } | |
94 | ||
95 | function affiche_donneesplus_sibesoin() | |
96 | { | |
97 | // fonction à appeler au chargement de la page | |
98 | // On parcourt le tableau des tailles (ou autres) et on voit si y'a | |
99 | // des choses dans les champs | |
100 | var trouve = false ; | |
101 | var liste_cases = document.getElementsByTagName("td") ; | |
102 | //alert(liste_cases[3].children[0].value+liste_cases[3].classList) ; | |
103 | for(i=0; i<liste_cases.length && !(trouve); i++) | |
104 | { | |
105 | // Si une des cases "données plus" contient un truc non vide | |
106 | if(liste_cases[i].classList == "donneesplus" && liste_cases[i].children[0].value != "") | |
107 | { | |
108 | trouve = true ; | |
109 | } | |
110 | } | |
111 | if(trouve) | |
112 | affiche_cache_classe("donneesplus") | |
113 | } | |
114 | ||
115 | function change_mode_dates(mode) | |
116 | { | |
117 | // passe de l'affichage en mode "date" à l'affichage en mode "texte" pour les navigateurs | |
118 | // qui gèrent mal le mode date | |
119 | var listeinput = document.getElementsByTagName("input") ; | |
120 | for(i=0;i<listeinput.length;i++) | |
121 | { | |
122 | var nombalise = listeinput[i].name ; | |
123 | if(nombalise == "naissance" || nombalise.slice(0,5) == "date_") | |
124 | { | |
125 | if(mode == "date") { | |
126 | listeinput[i].maxlength = taillemaxdate ; | |
127 | listeinput[i].value = listeinput[i].value.replace(/\//g, "-") ; // remplacer les / par des - | |
128 | } | |
129 | ||
130 | listeinput[i].type = mode ; | |
131 | listeinput[i].size = taillemaxdate ; | |
132 | listeinput[i].placeholder = placeholder_date ; | |
133 | } | |
134 | } | |
135 | ||
136 | // changer le texte et le bouton. | |
137 | var elem = document.getElementById("changemode") ; | |
138 | if(mode =="text") | |
139 | { | |
140 | 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 « confortable » avec le calendrier." | |
141 | } | |
142 | else | |
143 | { | |
144 | elem.innerHTML = "<span onclick=\"change_mode_dates('text')\" class=\"bouton\">Cliquez ici</span> pour saisir les dates comme du texte." | |
145 | } | |
146 | } | |
147 | ||
148 | function ajoute_enfants() | |
149 | { | |
150 | var eltul = document.getElementById("liste_enfants_add") ; | |
151 | var nblignes = eltul.childElementCount ; | |
152 | var elt1 = eltul.children[0] ; | |
153 | //alert(elt1.innerHTML) ; | |
154 | var texte = elt1.innerHTML ; | |
155 | // Il faut remplacer les nblignes 2 par des nblignes +2 | |
156 | texte = texte.replace("fichier_donnees_"+(2), "fichier_donnees_"+(nblignes +2)) ; | |
157 | texte = texte.replace("fichier_donnees_"+(2), "fichier_donnees_"+(nblignes +2)) ; | |
158 | texte = texte.replace("fichier_donnees_"+(2), "fichier_donnees_"+(nblignes +2)) ; | |
159 | texte = texte.replace("symbole_donnees_"+(2), "symbole_donnees_"+(nblignes +2)) ; | |
160 | texte = texte.replace("couleur_donnees_"+(2), "couleur_donnees_"+(nblignes +2)) ; | |
161 | ||
162 | // Enlever le "selected" | |
163 | texte = texte.replace("selected", "") ; | |
164 | ||
165 | var elt2 = document.createElement("li") ; | |
166 | elt2.innerHTML = texte ; | |
167 | ||
168 | // remettre le "selected" au bon endroit | |
169 | var options = elt2.getElementsByTagName("option") ; | |
170 | // Trouver le nblignes-ième élément | |
171 | var numero = (nblignes +1) % options.length ; | |
172 | //Sélectionner l'élément en question | |
173 | var monoption = options[numero] ; | |
174 | monoption.setAttribute("selected", true) ; | |
175 | ||
176 | eltul.appendChild(elt2) ; | |
177 | ||
178 | } | |
179 | ||
180 | function vide_champ(nom) | |
181 | { | |
182 | // vide le champ d'id proposé | |
183 | var elt = document.getElementById(nom) ; | |
184 | elt.value = "" ; | |
185 | } | |
186 | ||
187 | function ajoute_reperes() | |
188 | { // ajoute des repères | |
189 | var eltul = document.getElementById("ajoutereperecourbe") ; | |
190 | var nblignes = eltul.childElementCount ; | |
191 | // alert(nblignes) ; | |
192 | var nb_additionnel = 2; | |
193 | for(var i=nblignes; i<nblignes+nb_additionnel ; i++) | |
194 | { | |
195 | var elt = document.createElement("li") ; | |
196 | elt.innerHTML = 'Âge : <input class="data" type="text" name="repere_age_'+i+'" value=""> Texte associé : <input class="texte" type="text" name="repere_texte_'+i+'" value=""> Tracer : <input type="checkbox" name="repere_trace_'+i+'">' ; | |
197 | eltul.appendChild(elt) ; | |
198 | } | |
199 | ||
200 | } |