]>
git.immae.eu Git - perso/Denise/oms.git/blob - static/outilspage.js
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 section "export"
48 function affiche_export ()
50 document
. getElementById ( "export" ). style
. display
= "block" ;
52 // Copier vers le presse-papiers
55 var elt
= document
. getElementById ( "export_texte" );
57 /* Select the text field */
59 elt
. setSelectionRange ( 0 , 99999 ); /* For mobile devices */
61 /* Copy the text inside the text field */
62 document
. execCommand ( "copy" );
66 function affiche_cache ( id
, elemcourant
)
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" )
73 elem
. style
. display
= "none" ;
74 elemcourant
. innerHTML
= "Afficher" ;
78 elem
. style
. display
= "block" ;
79 elemcourant
. innerHTML
= "Masquer" ;
85 function affiche_cache_classe ( classe
)
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
) ;
90 if ( listelem
[ 0 ]. style
. display
!= "block" ) // c'est caché, donc on veut afficher
92 document
. getElementById ( "bouton_afficher_donneesplus" ). innerHTML
= "Masquer" ;
93 attributaff
= "block" ;
97 document
. getElementById ( "bouton_afficher_donneesplus" ). innerHTML
= "Afficher" ;
98 attributaff
= "none" ;
101 for ( var i
= 0 ; i
< listelem
. length
; i
++)
103 listelem
[ i
]. style
. display
= attributaff
;
107 function affiche_donneesplus_sibesoin ()
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
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
++)
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
!= "" )
124 affiche_cache_classe ( "donneesplus" )
127 function change_mode_dates ( mode
)
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
++)
134 var nombalise
= listeinput
[ i
]. name
;
135 if ( nombalise
== "naissance" || nombalise
. slice ( 0 , 5 ) == "date_" )
138 listeinput
[ i
]. maxlength
= taillemaxdate
;
139 listeinput
[ i
]. value
= listeinput
[ i
]. value
. replace ( /\//g , "-" ) ; // remplacer les / par des -
142 listeinput
[ i
]. type
= mode
;
143 listeinput
[ i
]. size
= taillemaxdate
;
144 listeinput
[ i
]. placeholder
= placeholder_date
;
148 // changer le texte et le bouton.
149 var elem
= document
. getElementById ( "changemode" ) ;
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."
156 elem
. innerHTML
= "<span onclick= \" change_mode_dates('text') \" class= \" bouton \" >Cliquez ici</span> pour saisir les dates comme du texte."
160 function ajoute_enfants ()
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 )) ;
174 // Enlever le "selected"
175 texte
= texte
. replace ( "selected" , "" ) ;
177 var elt2
= document
. createElement ( "li" ) ;
178 elt2
. innerHTML
= texte
;
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 ) ;
188 eltul
. appendChild ( elt2
) ;
192 function vide_champ ( nom
)
194 // vide le champ d'id proposé
195 var elt
= document
. getElementById ( nom
) ;
199 function ajoute_reperes ()
200 { // ajoute des repères
201 var eltul
= document
. getElementById ( "ajoutereperecourbe" ) ;
202 var nblignes
= eltul
. childElementCount
;
204 var nb_additionnel
= 2 ;
205 for ( var i
= nblignes
; i
< nblignes
+ nb_additionnel
; i
++)
207 var elt
= document
. createElement ( "li" ) ;
208 elt
. innerHTML
= 'Âge : <input class="data" type="text" name="repere_age_' + i
+ '" value=""> \
209 ou date : <input type="date" name="repere_date_{{ i }}" value=""> \
210 Texte associé : <input class="texte" type="text" name="repere_texte_' + i
+ '" value=""> \
211 Tracer : <input type="checkbox" name="repere_trace_' + i
+ '">\
212 Afficher la date : <input type="checkbox" name="repere_affichedate_{{ i }}">' ;
213 eltul
. appendChild ( elt
) ;