]>
git.immae.eu Git - perso/Denise/oms.git/blob - outilspage.js
7c995f161101c653aac67e85c15a5578293e9fd4
1 // fonctions générales pour la page
3 var taillemaxdate
= 10 ;
4 var placeholder_date
= "aaaa-mm-jj" ;
7 function ajoutelignes ()
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.
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
;
21 for ( var i
= nbligne
- 1 ; i
< nbligne
+ nbajout
- 1 ; i
++)
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 );
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
34 celldate
. firstChild
. size
= taillemaxdate
;
35 celldate
. firstChild
. maxlength
= taillemaxdate
;
36 celldate
. firstChild
. placeholder
= placeholder_date
;
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" ;
47 // Affichage de la textarea "export"
48 function affiche_export ()
50 document
. getElementById ( "export" ). style
. display
= "block" ;
54 function affiche_cache ( id
, elemcourant
)
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" )
61 elem
. style
. display
= "none" ;
62 elemcourant
. innerHTML
= "Afficher" ;
66 elem
. style
. display
= "block" ;
67 elemcourant
. innerHTML
= "Masquer" ;
73 function affiche_cache_classe ( classe
)
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
) ;
78 if ( listelem
[ 0 ]. style
. display
!= "block" ) // c'est caché, donc on veut afficher
80 document
. getElementById ( "bouton_afficher_donneesplus" ). innerHTML
= "Masquer" ;
81 attributaff
= "block" ;
85 document
. getElementById ( "bouton_afficher_donneesplus" ). innerHTML
= "Afficher" ;
86 attributaff
= "none" ;
89 for ( var i
= 0 ; i
< listelem
. length
; i
++)
91 listelem
[ i
]. style
. display
= attributaff
;
95 function affiche_donneesplus_sibesoin ()
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
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
++)
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
!= "" )
112 affiche_cache_classe ( "donneesplus" )
115 function change_mode_dates ( mode
)
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
++)
122 var nombalise
= listeinput
[ i
]. name
;
123 if ( nombalise
== "naissance" || nombalise
. slice ( 0 , 5 ) == "date_" )
126 listeinput
[ i
]. maxlength
= taillemaxdate
;
127 listeinput
[ i
]. value
= listeinput
[ i
]. value
. replace ( /\//g , "-" ) ; // remplacer les / par des -
130 listeinput
[ i
]. type
= mode
;
131 listeinput
[ i
]. size
= taillemaxdate
;
132 listeinput
[ i
]. placeholder
= placeholder_date
;
136 // changer le texte et le bouton.
137 var elem
= document
. getElementById ( "changemode" ) ;
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."
144 elem
. innerHTML
= "<span onclick= \" change_mode_dates('text') \" class= \" bouton \" >Cliquez ici</span> pour saisir les dates comme du texte."
148 function ajoute_enfants ()
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 )) ;
162 // Enlever le "selected"
163 texte
= texte
. replace ( "selected" , "" ) ;
165 var elt2
= document
. createElement ( "li" ) ;
166 elt2
. innerHTML
= texte
;
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 ) ;
176 eltul
. appendChild ( elt2
) ;
180 function vide_champ ( nom
)
182 // vide le champ d'id proposé
183 var elt
= document
. getElementById ( nom
) ;
187 function ajoute_reperes ()
188 { // ajoute des repères
189 var eltul
= document
. getElementById ( "ajoutereperecourbe" ) ;
190 var nblignes
= eltul
. childElementCount
;
192 var nb_additionnel
= 2 ;
193 for ( var i
= nblignes
; i
< nblignes
+ nb_additionnel
; i
++)
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="">' ;
197 eltul
. appendChild ( elt
) ;