]> git.immae.eu Git - perso/Denise/oms.git/blobdiff - static/outilspage.js
bug corrigé lors de l'ajout de lignes (encore)
[perso/Denise/oms.git] / static / outilspage.js
index 8da9e88a05ce7f68ae3c0920ea02bc8ffab7033c..9491495df8710b3dcd55f3fe2aab39ed51e2b4c3 100644 (file)
@@ -1,5 +1,9 @@
 // fonctions générales pour la page
 
+var taillemaxdate = 10;
+var placeholder_date = "aaaa-mm-jj" ;
+
+
 function ajoutelignes()
 {
        // va ajouter 3 lignes au tableau de données
@@ -7,6 +11,11 @@ function ajoutelignes()
        var nbligne = table.children[0].childElementCount ;
        // les données étant numérotées à partir de 0 on pourra commencer à partir de nbligne -1
        // car il faut éliminer la ligne de header.
+       
+       // voir dans quel mode on est : date ou texte
+       var deuxiemeligne = table.children[0].children[1] ;
+       var celldate = deuxiemeligne.children[1] ;
+       var mode = celldate.firstChild.type ;
                
        var nbajout = 3 ;
        for(var i=nbligne-1; i<nbligne+nbajout-1; i++)
@@ -15,11 +24,22 @@ function ajoutelignes()
                var cellage = ligne.insertCell(0);
                var celldate = ligne.insertCell(1);
                var cellpoids = ligne.insertCell(2);
+               var celltaille = ligne.insertCell(3);
                
                cellage.innerHTML = '<input type="text" name="age_'+i+'">' ;
-               celldate.innerHTML = '<input type="date" name="date_'+i+'">' ;
-               cellpoids.innerHTML = '<input type="text" name="poids_'+i+'">' ;
-               
+               celldate.innerHTML = '<input name="date_'+i+'">' ;
+               celldate.firstChild.type = mode ;
+               if(mode == "text") // si on a déjà affiché les cases en mode texte, on continue en mode texte
+               {
+                       celldate.firstChild.size = taillemaxdate ;
+                       celldate.firstChild.maxlength = taillemaxdate ;
+                       celldate.firstChild.placeholder = placeholder_date ;
+               }
+               cellpoids.innerHTML = '<input type="text" name="poids_'+i+'">' ;        
+               celltaille.innerHTML = '<input type="text" name="taille_'+i+'">' ;
+               celltaille.classList.add("donneesplus") ;
+               if(deuxiemeligne.children[3].style.display == "block")
+                       celltaille.style.display = "block" ;
        }
        
 }
@@ -49,3 +69,75 @@ function affiche_cache(id,elemcourant)
        }
        
 }
+
+function affiche_cache_classe(classe)
+{
+       // affiche et/ou cache tous les éléments de la classe classe (et change le texte du this)
+       var listelem = document.getElementsByClassName(classe) ;
+       var attributaff ;
+       if(listelem[0].style.display != "block") // c'est caché, donc on veut afficher
+       {
+               document.getElementById("bouton_afficher_donneesplus").innerHTML = "Masquer" ;
+               attributaff = "block" ;
+       }
+       else
+       {
+               document.getElementById("bouton_afficher_donneesplus").innerHTML = "Afficher" ;
+               attributaff = "none" ;
+       }
+       
+       for(var i=0;i<listelem.length; i++)
+       {
+               listelem[i].style.display = attributaff ;
+       }
+}
+
+function affiche_donneesplus_sibesoin()
+{
+       // fonction à appeler au chargement de la page
+       // On parcourt le tableau des tailles (ou autres) et on voit si y'a
+       // des choses dans les champs
+       var trouve = false ;
+       var liste_cases = document.getElementsByTagName("td") ;
+       //alert(liste_cases[3].children[0].value+liste_cases[3].classList) ;
+       for(i=0; i<liste_cases.length && !(trouve); i++)
+       {
+               // Si une des cases "données plus" contient un truc non vide
+               if(liste_cases[i].classList == "donneesplus" && liste_cases[i].children[0].value != "")
+               {
+                       trouve = true ;
+               }
+       }
+       if(trouve)
+               affiche_cache_classe("donneesplus")
+}
+
+function change_mode_dates(mode)
+{
+       // passe de l'affichage en mode "date" à l'affichage en mode "texte" pour les navigateurs
+       // qui gèrent mal le mode date
+       var listeinput = document.getElementsByTagName("input") ;
+       for(i=0;i<listeinput.length;i++)
+       {
+               var nombalise = listeinput[i].name ;
+               if(nombalise == "naissance" || nombalise.slice(0,5) == "date_")
+               {
+                       listeinput[i].type = mode ;
+                       if(mode == "date")
+                               listeinput[i].maxlength = taillemaxdate ;
+                               listeinput[i].size = taillemaxdate ;
+                               listeinput[i].placeholder = placeholder_date ;
+               }
+       }
+       
+       // changer le texte et le bouton.
+       var elem = document.getElementById("changemode") ;
+       if(mode =="text") 
+       {
+               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;»."
+       }
+       else
+       {
+               elem.innerHTML = "<span onclick=\"change_mode_dates('text')\" class=\"bouton\">Cliquez ici</span> pour saisir les dates comme du texte."
+       }
+}