]>
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 section "export" | |
48 | function affiche_export() | |
49 | { | |
50 | document.getElementById("export").style.display = "block" ; | |
51 | } | |
52 | // Copier vers le presse-papiers | |
53 | function copietexte() | |
54 | { | |
55 | var elt = document.getElementById("export_texte"); | |
56 | ||
57 | /* Select the text field */ | |
58 | elt.select(); | |
59 | elt.setSelectionRange(0, 99999); /* For mobile devices */ | |
60 | ||
61 | /* Copy the text inside the text field */ | |
62 | document.execCommand("copy"); | |
63 | ||
64 | } | |
65 | ||
66 | function affiche_cache(id,elemcourant) | |
67 | { | |
68 | // affiche et/ou cache l'élément id, tout en changeant le this | |
69 | // en afficher/masquer | |
70 | elem = document.getElementById(id) | |
71 | if(elem.style.display == "block") | |
72 | { | |
73 | elem.style.display = "none"; | |
74 | elemcourant.innerHTML = "Afficher" ; | |
75 | } | |
76 | else | |
77 | { | |
78 | elem.style.display = "block" ; | |
79 | elemcourant.innerHTML = "Masquer" ; | |
80 | ||
81 | } | |
82 | ||
83 | } | |
84 | ||
85 | function affiche_cache_classe(classe) | |
86 | { | |
87 | // affiche et/ou cache tous les éléments de la classe classe (et change le texte du this) | |
88 | var listelem = document.getElementsByClassName(classe) ; | |
89 | var attributaff ; | |
90 | if(listelem[0].style.display != "block") // c'est caché, donc on veut afficher | |
91 | { | |
92 | document.getElementById("bouton_afficher_donneesplus").innerHTML = "Masquer" ; | |
93 | attributaff = "block" ; | |
94 | } | |
95 | else | |
96 | { | |
97 | document.getElementById("bouton_afficher_donneesplus").innerHTML = "Afficher" ; | |
98 | attributaff = "none" ; | |
99 | } | |
100 | ||
101 | for(var i=0;i<listelem.length; i++) | |
102 | { | |
103 | listelem[i].style.display = attributaff ; | |
104 | } | |
105 | } | |
106 | ||
107 | function affiche_donneesplus_sibesoin() | |
108 | { | |
109 | // fonction à appeler au chargement de la page | |
110 | // On parcourt le tableau des tailles (ou autres) et on voit si y'a | |
111 | // des choses dans les champs | |
112 | var trouve = false ; | |
113 | var liste_cases = document.getElementsByTagName("td") ; | |
114 | //alert(liste_cases[3].children[0].value+liste_cases[3].classList) ; | |
115 | for(i=0; i<liste_cases.length && !(trouve); i++) | |
116 | { | |
117 | // Si une des cases "données plus" contient un truc non vide | |
118 | if(liste_cases[i].classList == "donneesplus" && liste_cases[i].children[0].value != "") | |
119 | { | |
120 | trouve = true ; | |
121 | } | |
122 | } | |
123 | if(trouve) | |
124 | affiche_cache_classe("donneesplus") | |
125 | } | |
126 | ||
127 | function change_mode_dates(mode) | |
128 | { | |
129 | // passe de l'affichage en mode "date" à l'affichage en mode "texte" pour les navigateurs | |
130 | // qui gèrent mal le mode date | |
131 | var listeinput = document.getElementsByTagName("input") ; | |
132 | for(i=0;i<listeinput.length;i++) | |
133 | { | |
134 | var nombalise = listeinput[i].name ; | |
135 | if(nombalise == "naissance" || nombalise.slice(0,5) == "date_") | |
136 | { | |
137 | if(mode == "date") { | |
138 | listeinput[i].maxlength = taillemaxdate ; | |
139 | listeinput[i].value = listeinput[i].value.replace(/\//g, "-") ; // remplacer les / par des - | |
140 | } | |
141 | ||
142 | listeinput[i].type = mode ; | |
143 | listeinput[i].size = taillemaxdate ; | |
144 | listeinput[i].placeholder = placeholder_date ; | |
145 | } | |
146 | } | |
147 | ||
148 | // changer le texte et le bouton. | |
149 | var elem = document.getElementById("changemode") ; | |
150 | if(mode =="text") | |
151 | { | |
152 | 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." | |
153 | } | |
154 | else | |
155 | { | |
156 | elem.innerHTML = "<span onclick=\"change_mode_dates('text')\" class=\"bouton\">Cliquez ici</span> pour saisir les dates comme du texte." | |
157 | } | |
158 | } | |
159 | ||
160 | function ajoute_enfants() | |
161 | { | |
162 | var eltul = document.getElementById("liste_enfants_add") ; | |
163 | var nblignes = eltul.childElementCount ; | |
164 | var elt1 = eltul.children[0] ; | |
165 | //alert(elt1.innerHTML) ; | |
166 | var texte = elt1.innerHTML ; | |
167 | // Il faut remplacer les nblignes 2 par des nblignes +2 | |
168 | texte = texte.replace("fichier_donnees_"+(2), "fichier_donnees_"+(nblignes +2)) ; | |
169 | texte = texte.replace("fichier_donnees_"+(2), "fichier_donnees_"+(nblignes +2)) ; | |
170 | texte = texte.replace("fichier_donnees_"+(2), "fichier_donnees_"+(nblignes +2)) ; | |
171 | texte = texte.replace("symbole_donnees_"+(2), "symbole_donnees_"+(nblignes +2)) ; | |
172 | texte = texte.replace("couleur_donnees_"+(2), "couleur_donnees_"+(nblignes +2)) ; | |
173 | ||
174 | // Enlever le "selected" | |
175 | texte = texte.replace("selected", "") ; | |
176 | ||
177 | var elt2 = document.createElement("li") ; | |
178 | elt2.innerHTML = texte ; | |
179 | ||
180 | // remettre le "selected" au bon endroit | |
181 | var options = elt2.getElementsByTagName("option") ; | |
182 | // Trouver le nblignes-ième élément | |
183 | var numero = (nblignes +1) % options.length ; | |
184 | //Sélectionner l'élément en question | |
185 | var monoption = options[numero] ; | |
186 | monoption.setAttribute("selected", true) ; | |
187 | ||
188 | eltul.appendChild(elt2) ; | |
189 | ||
190 | } | |
191 | ||
192 | function vide_champ(nom) | |
193 | { | |
194 | // vide le champ d'id proposé | |
195 | var elt = document.getElementById(nom) ; | |
196 | elt.value = "" ; | |
197 | } | |
198 | ||
199 | function ajoute_reperes() | |
200 | { // ajoute des repères | |
201 | var eltul = document.getElementById("ajoutereperecourbe") ; | |
202 | var nblignes = eltul.childElementCount ; | |
203 | // alert(nblignes) ; | |
204 | var nb_additionnel = 2; | |
205 | for(var i=nblignes; i<nblignes+nb_additionnel ; i++) | |
206 | { | |
207 | var elt = document.createElement("li") ; | |
208 | 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+'">' ; | |
209 | eltul.appendChild(elt) ; | |
210 | } | |
211 | ||
212 | } |