summaryrefslogblamecommitdiff
path: root/static/outilspage.js
blob: e3502744f6fea2ea07990d6ad02ec757c36a3246 (plain) (tree)
1
2
3
4
5
6

                                     



                                     






                                                                                                      




                                                           







                                                      
                                                     

                                                                            








                                                                                                                

                                                                                  

                                                                      


         

























                                                                        
 









































                                                                                                       









                                                                                                  
                                            
                                                                         





                                                                                                                            






                                                          
                                                                                                                                                                                                                                             




                                                                                                                                                        
 


















                                                                            
// 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
	var table = document.getElementById("donneespoids")
	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++)
	{
		var ligne = table.insertRow(i+1);
		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 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" ;
	}
	
}

// Affichage de la textarea "export"
function affiche_export()
{
	document.getElementById("export").style.display = "block" ;
	
}

function affiche_cache(id,elemcourant)
{
	// affiche et/ou cache l'élément id, tout en changeant le this
	// en afficher/masquer
	elem = document.getElementById(id)
	if(elem.style.display == "block")
	{
		elem.style.display = "none";
		elemcourant.innerHTML = "Afficher" ;
	}
	else
	{
		elem.style.display = "block" ;
		elemcourant.innerHTML = "Masquer" ;
		
	}
	
}

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_")
		{
			if(mode == "date") {
				listeinput[i].maxlength = taillemaxdate ;
				listeinput[i].value = listeinput[i].value.replace(/\//g, "-") ; // remplacer les / par des -
			}

			listeinput[i].type = mode ;
			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;» avec le calendrier."
	}
	else
	{
		elem.innerHTML = "<span onclick=\"change_mode_dates('text')\" class=\"bouton\">Cliquez ici</span> pour saisir les dates comme du texte."
	}
}

function revele_enfants()
{
	// révèle tous les champs pour enfants additionnels
	var listelt = document.getElementsByClassName("enfants_cache_def") ;
	for(i=0; i<listelt.length; i++) {
		listelt[i].style.display = "block" ;
	}
	// Enlève le bouton pour les afficher
	var bouton = document.getElementById("reveleenfants") ;
	bouton.style.display = "none" ;
}

function vide_champ(nom) 
{
	// vide le champ d'id proposé
	var elt = document.getElementById(nom) ;
	elt.value = "" ;
}