bug corrigé lors de l'ajout de lignes (encore)
[perso/Denise/oms.git] / static / outilspage.js
CommitLineData
5679dfd0
DL
1// fonctions générales pour la page
2
30158504
DL
3var taillemaxdate = 10;
4var placeholder_date = "aaaa-mm-jj" ;
5
6
5679dfd0
DL
7function 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.
30158504
DL
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 ;
5679dfd0
DL
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);
2c023f1a 27 var celltaille = ligne.insertCell(3);
5679dfd0
DL
28
29 cellage.innerHTML = '<input type="text" name="age_'+i+'">' ;
30158504
DL
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" name="poids_'+i+'">' ;
2c023f1a
DL
39 celltaille.innerHTML = '<input type="text" name="taille_'+i+'">' ;
40 celltaille.classList.add("donneesplus") ;
46ec917b
DL
41 if(deuxiemeligne.children[3].style.display == "block")
42 celltaille.style.display = "block" ;
5679dfd0
DL
43 }
44
45}
be2bf515
DL
46
47// Affichage de la textarea "export"
48function affiche_export()
49{
50 document.getElementById("export").style.display = "block" ;
51
52}
53
54function 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}
30158504 72
2c023f1a
DL
73function 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
95function 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
30158504
DL
115function 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 listeinput[i].type = mode ;
126 if(mode == "date")
127 listeinput[i].maxlength = taillemaxdate ;
128 listeinput[i].size = taillemaxdate ;
129 listeinput[i].placeholder = placeholder_date ;
130 }
131 }
132
133 // changer le texte et le bouton.
134 var elem = document.getElementById("changemode") ;
135 if(mode =="text")
136 {
137 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;»."
138 }
139 else
140 {
141 elem.innerHTML = "<span onclick=\"change_mode_dates('text')\" class=\"bouton\">Cliquez ici</span> pour saisir les dates comme du texte."
142 }
30158504 143}