Centrer du texte dans un tableau (colspan?)

@Loic

On a une question sur une fonction de la personnalisation avancée pour permettre de faire du collapse de cellules.

Le problème c’est que ça ne fonctionne que pour certains navigateurs et lors d’un refresh (CTRL F5).

En cliquant sur un bouton d’un design, ça ne fonctionne plus donc on se demandait si les fonctions personnalisées était prise en compte par Jeedom à chaque fois ou pas.

J’ai vraiment pas assez d’information pour te repondre la desolé je comprends meme pas de quoi tu parle…

Oui elles sont prisent à chaque fois. A mon avis tu lance ta fonction js avant que le dom soit comme tu le souhaite …

@Kiboost Il y a une solution pour cela du coup? As-tu lu le post en entier car à chaque refresh cela ne fonctionne plus, et c’est un script qui est dans la personnalisation avancée, Désolé Loic on cherche une solution pour ce script qui soit toujours pris en compte par jeedom et a chaque refresh.

Tu peux te servir des fonctions de bases de jquery pour ca il a tout ce qu’il faut pour ne lancer un bout de code sur sur dom chargé. Par exemple ya bcp d’autres manière propre au js

Alors la, je peux pas cela je connais rien du tous en JavaScript, rajouter du code où comment à quel endroit?

Merci pour vos réponses

c’est pas dans $(document).ready(function()) qu’il faut appeler la fonction?

après ça modifie le dom ( fusion des cellules). y a pas une histoire de cache ou je ne sais quoi ?

y’a pas d’histoire de cache, le core balance les elements dans le dom et tu agit dessus en js.

$(function() {
    setTimeout(function(){
        /* CODE */
    }, 500)
}

A mon avis ton js s’execute avant la fin des appels ajax.
Après non, je n’ai pas tout lu.

1 « J'aime »

ah oui … les éléments n’auraient pas le temps d’être chargés .
comme c’est fait de façon asynchrone, la page est ready alors que les appels ajax sont potentiellement toujours en cours.

si j’ai bien compris.

A super une solution, on va arriver chouette. Je pense aussi au temps de latence du site quand on le rafraîchit. Pas de cache, car les caches sont la quand le navigateur est ouvert.
Quelque chose comme cela, j avais vue cette fonction peu être mieux ranger.

$(function() { 
setTimeout(function(){
$(document).ready(function() {
   //alert('avant fonction');
   var test = addColspan($("TD"));
   //alert('apres fonction');
 });

 function addColspan(Tabobjets) {
   		//alert('dans fonction');
		Tabobjets.each(function(objet) {
		if ($(this).css("column-span") != undefined)
		{
//alert('if 1');
			if ($(this).css("column-span") === 'all')
			{
 //alert('if 2');
				//console.log('test');
				var nbtd = $(this).siblings().length + 1;
				$($(this).siblings()).remove();
				$(this).attr('colspan',nbtd);        
			}               
		}
	});
};

}, 500) 
}

Une horreur ton code, tu melange tout

vite fait sans vérifier

function addColspan(_tabObjects) {
	if (!_tabObjects) return
	//alert('dans fonction')
	var nbtd
	_tabObjects.each(function() {
		if ($(this).css("column-span") != undefined)
		{
			//alert('if 1')
			if ($(this).css("column-span") === 'all')
			{
				//alert('if 2');
				//console.log('test');
				nbtd = $(this).siblings().length + 1
				$($(this).siblings()).remove()
				$(this).attr('colspan', nbtd)
			}
		}
	})
}

$(function() {
	setTimeout(function() {
		addColspan($("TD"))
	}, 1000)
})
1 « J'aime »

Désolé, j connais pas du tous Java et comme en faire, je début vraiment dans cette programmation suis plus pvp ou html. :grin: Merci beaucoup de ton aide.

Et… Ça marche avec ce nouveau code ?

Surtout que ce n’est pas du tout du Java :rofl:

Pas tester, suis pas chez moi je pense.

J ai oublier script a la fin de java :yum:

je pense que ça devrait fonctionner.

il a ajouté une tempo de 1000ms ( 1 seconde avant de lancer la fonction). si je ne dis pas de bêtises ^^

après, si ça fonctionne pas. tu peux tester avec 2000 ( mais 1000, c’est déjà pas mal).

je tourne sur un nuc (pc) avec d’autres choses dedans ( serveur plex … ).
Sans doute que le chargement est plus rapide. ce qui explique que ça fonctionne mieux chez moi.

Bon chez moi c’est toujours pas bon mais ça progresse car ça a amélioré le comportement dans Firefox.
Avant ça ne fonctionnait jamais, maintenant ça fonctionne lors d’un F5 pour refresh la page
En changeant d’endroit et en revenant dessus, que l’on soit sur le dashboard ou un design : ça ne fonctionne plus

Il y a bel et bien une histoire de cache, je me demande pourquoi ça fonctionne chez oliv :slight_smile:

note : j’ai mis le timeout à 5000 pour biiiiien laisser le temps de charger la page !

J’ai mis le code, cela fonctionne mais comme dit Bison, j’ai mis 2000ms soit de 2s cela fonctionne mais une fois sur deux cela devrait fonctionner tous le temps normalement, en changement d’onglet vues design dashboard, et c’est beaucoup mieux mais encore ça a voir dans le temps et navigateur Mozilla et Edge moi préfère mozilla, je teste toute la journée on vas voir.
Les paramètres avancée ne dois pas etre pris en compte et répercuter sur le reste, à l’instant T.
Je redit cela, ci bon. Merci à vous.

Hello
Si c’est OK, pourras tu mettre la solution totale dans un dernier post. J’attends cette possibilité depuis un moment.
merci