Widget Reveil vide

Mika,

j’avais posté dans l’anciens forum, mais peut-etre que tu ne regardes plus.

Depuis quelques temps les widgets de mes reveils sont vides !

Je ne peux plus les configurer en-dehors du plug-in lui-même, ce n’est pas pratique du tout :slight_smile:

Problème sur Jeedom V3 et V4, avec plugin stable ou beta.

Est-ce que tu as une idée de quoi ça pourrait venir ?

Merci

Oui je ne vais plus sur l’ancien forum.
Il ne sont pas vide tu as toujours la date du prochain réveil son armement et ses commandes.
Pour la reprogrammation depuis le widget je l’ai enlevé car posais des problèmes et a mon sens pas très utile.
Par la suite j’ajouterai un bouton pour afficher une popup

ah… zut… justement je trouvais ça bien utile de pouvoir changer la programmation depuis le widget.
Quand il s’agit de programmer un réveil exceptionnel, s’il faut aller dans la gestion du plugin c’est pas pratique (et inaccessible depuis un design par ex…)

Oui je comprend, on peux toujours programmer par les api (de le meme maniere que le faisait le widget)
Dans ton design il est donc possible de le recree

J’ai vue qu’un plugin pour l’ajout de code html etait sortie
Voici un code qui devrait faire le job

<table class="table_programation">
		<thead>
			<tr>
				<th>Jour actif</th>
				<th>Heure</th>
			</tr>
		</thead>
		<tbody></tbody>
	</table>
	<script type="text/javascript">
		$.ajax({// fonction permettant de faire de l'ajax
			type: "POST", // methode de transmission des données au fichier php
			url: "plugins/reveil/core/ajax/reveil.ajax.php", // url du fichier php
			data: {
				action: "getProgramation",
				id: "#id#"
			},
			dataType: 'json',
			global: false,
			error: function(request, status, error) {
				handleAjaxError(request, status, error);
			},
			success: function(data) { // si l'appel a bien fonctionné
				if (data.state != 'ok') {
					$('#div_alert').showAlert({message: data.result, level: 'danger'});
					return;
				}
				for(var index in data.result) {
					if( (typeof data.result[index] === "object") && (data.result[index] !== null) )
						addProgramation(data.result[index],$('.eqLogic[data-eqLogic_id=#id#] .table_programation'));
				}
			}
		});
		function sendProgramation(_el){	
			var prog=_el.closest('.ProgramationGroup').attr('data-id');
				var day='';
				if(_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=1]').is(':checked'))
					day=day+'1';
				if(_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=2]').is(':checked'))
					day=day+'2';
				if(_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=3]').is(':checked'))
					day=day+'.';
				if(_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=4]').is(':checked'))
					day=day+'4';
				if(_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=5]').is(':checked'))
					day=day+'5';
				if(_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=6]').is(':checked'))
					day=day+'6';
				if(_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=0]').is(':checked'))
					day=day+'0';
				var heure=_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=Heure]').val();
				var minute_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=Minute]').val();			
			$.ajax({// fonction permettant de faire de l'ajax
				type: "POST", // methode de transmission des données au fichier php
				url: "plugins/reveil/core/ajax/reveil.ajax.php", // url du fichier php
				data: {
					action: "setProgramation",
					id: "#id#",
					prog: prog,
					day: day,
					heure: heure,
					minute: minute
				},
				dataType: 'json',
				global: false,
				error: function(request, status, error) {
					handleAjaxError(request, status, error);
				},
				success: function(data) { // si l'appel a bien fonctionné
					if (data.state != 'ok') {
						$('#div_alert').showAlert({message: data.result, level: 'danger'});
						return;
					}
				}
			});
		}
		function addProgramation(_programation,  _el) {
			var Heure=$('<select class="expressionAttr form-control" data-l1key="Heure" >');
		    	var Minute=$('<select class="expressionAttr form-control" data-l1key="Minute" >');
			var number = 0;
			while (number < 24) {
				Heure.append($('<option value="'+number+'">')
					.text(number));
				number++;
			}
			number = 0;
			while (number < 60) {
				Minute.append($('<option value="'+number+'">')
					.text(number));
				number++;
			}
			var tr = $('<tr class="ProgramationGroup" data-id="'+_programation.id+'">')
				.append($('<td>')
					.append($('<div class="col-sm-5">')
						.append($('<label class="checkbox-inline">')
							.append($('<input type="checkbox" class="expressionAttr" data-l1key="1">'))
							.append('Lundi'))
						.append($('<label class="checkbox-inline">')
							.append($('<input type="checkbox" class="expressionAttr" data-l1key="2">'))
							.append('Mardi'))
						.append($('<label class="checkbox-inline">')
							.append($('<input type="checkbox" class="expressionAttr" data-l1key="3">'))
							.append('Mercredi'))
						.append($('<label class="checkbox-inline">')
							.append($('<input type="checkbox" class="expressionAttr" data-l1key="4">'))
							.append('Jeudi'))
						.append($('<label class="checkbox-inline">')
							.append($('<input type="checkbox" class="expressionAttr" data-l1key="5">'))
							.append('Vendredi'))
						.append($('<label class="checkbox-inline">')
							.append($('<input type="checkbox" class="expressionAttr" data-l1key="6">'))
							.append('Samedi'))
						.append($('<label class="checkbox-inline">')
							.append($('<input type="checkbox" class="expressionAttr" data-l1key="0" />'))
							.append('Dimanche'))))
				.append($('<td>')
					.append(Heure)
					.append(Minute));
			_el.append(tr);
			_el.find('tr:last').setValues(_programation, '.expressionAttr');
			$('.eqLogic[data-eqLogic_id=#id#] .expressionAttr[data-l1key=Heure]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			$('.eqLogic[data-eqLogic_id=#id#] .expressionAttr[data-l1key=Minute]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			$('.eqLogic[data-eqLogic_id=#id#] .expressionAttr[data-l1key=1]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			$('.eqLogic[data-eqLogic_id=#id#] .expressionAttr[data-l1key=2]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			$('.eqLogic[data-eqLogic_id=#id#] .expressionAttr[data-l1key=3]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			$('.eqLogic[data-eqLogic_id=#id#] .expressionAttr[data-l1key=4]').off().on('change', function () {
				sendProgramation($(this));
			});
			$('.eqLogic[data-eqLogic_id=#id#] .expressionAttr[data-l1key=5]').off().on('change', function () {	
				sendProgramation($(this));
			});
			$('.eqLogic[data-eqLogic_id=#id#] .expressionAttr[data-l1key=6]').off().on('change', function () {	
				sendProgramation($(this));
			});
			$('.eqLogic[data-eqLogic_id=#id#] .expressionAttr[data-l1key=0]').off().on('change', function () {	
				sendProgramation($(this));
			});	
		}
	</script>

ok, je vais regarder ça

Edit: bon forcément un simple copier-coller ça ne suffit pas… ça aurait été trop beau.

Va falloir que j’me plonge dans le code pour comprendre comment utiliser ça :face_with_raised_eyebrow:

Qu’est ce qui ne vas pas?
Normalement c’est un juste a insterer dans le plugin displayHTML

Ben là tel quel il n’y a pas les checkbox et lists pour choisir jours et heure de la programmation.
Bon ça c’est pas bien grave, j’ai rajouté (j’ai un peu du dépoussièrer mes connaissances en HTML :blush:)

Par contre c’est sur l’ID de la programmation que je coince un peu.

Dans ton code il y a un #id# je suppose qu’il faut le remplacer par celui de la programmation qu’on veut modifier. Mais est-ce que je mets l’ID du réveil (par ex dans mon cas 191) ou le numéro de la programmation ( ici 9058)

Sachant que mon URL de reprogrammation donnée dans le plugin est:
http://xxxxxxx/plugins/reveil/core/api/jeeReveil.php?apikey=zzzzzzzz&id=191&prog=9058&day=�Y&heure=%H&minute=%M

EDIT: ah nan en fait y’a pas besoin du numero de prog, il change a chaque repro. Donc l’ID devrait suffire

Ha oui effectivement il faut configurer l’id de ton equipement
il est dipsonible dans la configuration avancé

Han… j’avais pas vu/compris que ton code intègre la création des checkbox et list via le script JS

En fait j’ai l’impression que le code JS n’est pas exécuté que ce soit via le plugin widget HTML ou en faisant une Zone texte/HTML dans un design… :thinking:

Si en fait, on ne peux pas crée en dure le formulaire car tu peux avoir plusieurs programmation

Je n’aurai pas compris le plugin HTML Display (htmldisplay)

Je vais essayé chez moi
Je te tien au courant

En fait j’ai un message d’erreur assez couillon mais j’arrive vraiment pas à trouver ce qui le gène !

43	Uncaught SyntaxError: Unexpected token '.'

Sauf que ligne 43 c’est ça :

if(_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=4]').is(':checked'))
					day=day+'4';

Elle est identique aux autres. Si je la supprime l’erreur est pour la ligne 41 :expressionless:

J’ai mis a jours le code

<div class="eqLogic eqLogic-widget allowResize" data-eqType="#eqType#" data-translate-category="#translate_category#" data-category="#category#" data-tags="#tags#" data-eqLogic_id="#id#" data-eqLogic_uid="#uid#" data-version="#version#" style="min-width : 50px;min-height : 80px ;border:#border#;border-radius:#border-radius#;background-color: #background-color#;color: #color#;width: #width#;height: #height#;#style#" >
	<center class="widget-name">
		<span style="font-size: 1.2em;#hideEqLogicName#"><a href="#eqLink#">#name_display# <span class="object_name">#object_name#</span></a></span>
	</center>
  <table class="table_programation">
		<thead>
			<tr>
				<th>Jour actif</th>
				<th>Heure</th>
			</tr>
		</thead>
		<tbody></tbody>
	</table>
	<script type="text/javascript">
      	var reveilId=30;
		$.ajax({// fonction permettant de faire de l'ajax
			type: "POST", // methode de transmission des données au fichier php
			url: "plugins/reveil/core/ajax/reveil.ajax.php", // url du fichier php
			data: {
				action: "getProgramation",
				id: reveilId
			},
			dataType: 'json',
			global: false,
			error: function(request, status, error) {
				handleAjaxError(request, status, error);
			},
			success: function(data) { // si l'appel a bien fonctionné
				if (data.state != 'ok') {
					$('#div_alert').showAlert({message: data.result, level: 'danger'});
					return;
				}
				for(var index in data.result) {
					if( (typeof data.result[index] === "object") && (data.result[index] !== null) )
						addProgramation(data.result[index],$('.eqLogic[data-eqLogic_id=#id#] .table_programation'));
				}
			}
		});
		function sendProgramation(_el){	
			var prog=_el.closest('.ProgramationGroup').attr('data-id');
				var day='';
				if(_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=1]').is(':checked'))
					day=day+'1';
				if(_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=2]').is(':checked'))
					day=day+'2';
				if(_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=3]').is(':checked'))
					day=day+'.';
				if(_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=4]').is(':checked'))
					day=day+'4';
				if(_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=5]').is(':checked'))
					day=day+'5';
				if(_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=6]').is(':checked'))
					day=day+'6';
				if(_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=0]').is(':checked'))
					day=day+'0';
				var heure=_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=Heure]').val();
				var minute=_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=Minute]').val();			
			$.ajax({// fonction permettant de faire de l'ajax
				type: "POST", // methode de transmission des données au fichier php
				url: "plugins/reveil/core/ajax/reveil.ajax.php", // url du fichier php
				data: {
					action: "setProgramation",
					id: reveilId,
					prog: prog,
					day: day,
					heure: heure,
					minute: minute
				},
				dataType: 'json',
				global: false,
				error: function(request, status, error) {
					handleAjaxError(request, status, error);
				},
				success: function(data) { // si l'appel a bien fonctionné
					if (data.state != 'ok') {
						$('#div_alert').showAlert({message: data.result, level: 'danger'});
						return;
					}
				}
			});
		}
		function addProgramation(_programation,  _el) {
			var Heure=$('<select class="expressionAttr form-control" data-l1key="Heure" >');
		    	var Minute=$('<select class="expressionAttr form-control" data-l1key="Minute" >');
			var number = 0;
			while (number < 24) {
				Heure.append($('<option value="'+number+'">')
					.text(number));
				number++;
			}
			number = 0;
			while (number < 60) {
				Minute.append($('<option value="'+number+'">')
					.text(number));
				number++;
			}
			var tr = $('<tr class="ProgramationGroup" data-id="'+_programation.id+'">')
				.append($('<td>')
					.append($('<div class="col-sm-5">')
						.append($('<label class="checkbox-inline">')
							.append($('<input type="checkbox" class="expressionAttr" data-l1key="1">'))
							.append('Lundi'))
						.append($('<label class="checkbox-inline">')
							.append($('<input type="checkbox" class="expressionAttr" data-l1key="2">'))
							.append('Mardi'))
						.append($('<label class="checkbox-inline">')
							.append($('<input type="checkbox" class="expressionAttr" data-l1key="3">'))
							.append('Mercredi'))
						.append($('<label class="checkbox-inline">')
							.append($('<input type="checkbox" class="expressionAttr" data-l1key="4">'))
							.append('Jeudi'))
						.append($('<label class="checkbox-inline">')
							.append($('<input type="checkbox" class="expressionAttr" data-l1key="5">'))
							.append('Vendredi'))
						.append($('<label class="checkbox-inline">')
							.append($('<input type="checkbox" class="expressionAttr" data-l1key="6">'))
							.append('Samedi'))
						.append($('<label class="checkbox-inline">')
							.append($('<input type="checkbox" class="expressionAttr" data-l1key="0" />'))
							.append('Dimanche'))))
				.append($('<td>')
					.append(Heure)
					.append(Minute));
			_el.append(tr);
			_el.find('tr:last').setValues(_programation, '.expressionAttr');
			$('.eqLogic[data-eqLogic_id=#id#] .expressionAttr[data-l1key=Heure]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			$('.eqLogic[data-eqLogic_id=#id#] .expressionAttr[data-l1key=Minute]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			$('.eqLogic[data-eqLogic_id=#id#] .expressionAttr[data-l1key=1]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			$('.eqLogic[data-eqLogic_id=#id#] .expressionAttr[data-l1key=2]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			$('.eqLogic[data-eqLogic_id=#id#] .expressionAttr[data-l1key=3]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			$('.eqLogic[data-eqLogic_id=#id#] .expressionAttr[data-l1key=4]').off().on('change', function () {
				sendProgramation($(this));
			});
			$('.eqLogic[data-eqLogic_id=#id#] .expressionAttr[data-l1key=5]').off().on('change', function () {	
				sendProgramation($(this));
			});
			$('.eqLogic[data-eqLogic_id=#id#] .expressionAttr[data-l1key=6]').off().on('change', function () {	
				sendProgramation($(this));
			});
			$('.eqLogic[data-eqLogic_id=#id#] .expressionAttr[data-l1key=0]').off().on('change', function () {	
				sendProgramation($(this));
			});	
		}
	</script>
</div>
1 « J'aime »

J’ai pas tout compris ce que tu as changé mais tel quel il me fait maintenant ce message d’erreur

2	Uncaught Error: Syntax error, unrecognized expression: .eqLogic[data-eqLogic_id=#id#] .table_programation

Ha mince j’ai oublier de remplacé tous le #id# par reveilId;
il faut aussi que tu personnalise l’id var reveilId=30;

Voici la correction

<div class="eqLogic eqLogic-widget allowResize" data-eqType="#eqType#" data-translate-category="#translate_category#" data-category="#category#" data-tags="#tags#" data-eqLogic_id="reveilId" data-eqLogic_uid="#uid#" data-version="#version#" style="min-width : 50px;min-height : 80px ;border:#border#;border-radius:#border-radius#;background-color: #background-color#;color: #color#;width: #width#;height: #height#;#style#" >
	<center class="widget-name">
		<span style="font-size: 1.2em;#hideEqLogicName#"><a href="#eqLink#">#name_display# <span class="object_name">#object_name#</span></a></span>
	</center>
  <table class="table_programation">
		<thead>
			<tr>
				<th>Jour actif</th>
				<th>Heure</th>
			</tr>
		</thead>
		<tbody></tbody>
	</table>
	<script type="text/javascript">
      	var reveilId=30;
		$.ajax({// fonction permettant de faire de l'ajax
			type: "POST", // methode de transmission des données au fichier php
			url: "plugins/reveil/core/ajax/reveil.ajax.php", // url du fichier php
			data: {
				action: "getProgramation",
				id: reveilId
			},
			dataType: 'json',
			global: false,
			error: function(request, status, error) {
				handleAjaxError(request, status, error);
			},
			success: function(data) { // si l'appel a bien fonctionné
				if (data.state != 'ok') {
					$('#div_alert').showAlert({message: data.result, level: 'danger'});
					return;
				}
				for(var index in data.result) {
					if( (typeof data.result[index] === "object") && (data.result[index] !== null) )
						addProgramation(data.result[index],$('.eqLogic[data-eqLogic_id'+reveilId+' .table_programation'));
				}
			}
		});
		function sendProgramation(_el){	
			var prog=_el.closest('.ProgramationGroup').attr('data-id');
				var day='';
				if(_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=1]').is(':checked'))
					day=day+'1';
				if(_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=2]').is(':checked'))
					day=day+'2';
				if(_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=3]').is(':checked'))
					day=day+'.';
				if(_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=4]').is(':checked'))
					day=day+'4';
				if(_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=5]').is(':checked'))
					day=day+'5';
				if(_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=6]').is(':checked'))
					day=day+'6';
				if(_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=0]').is(':checked'))
					day=day+'0';
				var heure=_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=Heure]').val();
				var minute=_el.closest('.ProgramationGroup').find('.expressionAttr[data-l1key=Minute]').val();			
			$.ajax({// fonction permettant de faire de l'ajax
				type: "POST", // methode de transmission des données au fichier php
				url: "plugins/reveil/core/ajax/reveil.ajax.php", // url du fichier php
				data: {
					action: "setProgramation",
					id: reveilId,
					prog: prog,
					day: day,
					heure: heure,
					minute: minute
				},
				dataType: 'json',
				global: false,
				error: function(request, status, error) {
					handleAjaxError(request, status, error);
				},
				success: function(data) { // si l'appel a bien fonctionné
					if (data.state != 'ok') {
						$('#div_alert').showAlert({message: data.result, level: 'danger'});
						return;
					}
				}
			});
		}
		function addProgramation(_programation,  _el) {
			var Heure=$('<select class="expressionAttr form-control" data-l1key="Heure" >');
		    	var Minute=$('<select class="expressionAttr form-control" data-l1key="Minute" >');
			var number = 0;
			while (number < 24) {
				Heure.append($('<option value="'+number+'">')
					.text(number));
				number++;
			}
			number = 0;
			while (number < 60) {
				Minute.append($('<option value="'+number+'">')
					.text(number));
				number++;
			}
			var tr = $('<tr class="ProgramationGroup" data-id="'+_programation.id+'">')
				.append($('<td>')
					.append($('<div class="col-sm-5">')
						.append($('<label class="checkbox-inline">')
							.append($('<input type="checkbox" class="expressionAttr" data-l1key="1">'))
							.append('Lundi'))
						.append($('<label class="checkbox-inline">')
							.append($('<input type="checkbox" class="expressionAttr" data-l1key="2">'))
							.append('Mardi'))
						.append($('<label class="checkbox-inline">')
							.append($('<input type="checkbox" class="expressionAttr" data-l1key="3">'))
							.append('Mercredi'))
						.append($('<label class="checkbox-inline">')
							.append($('<input type="checkbox" class="expressionAttr" data-l1key="4">'))
							.append('Jeudi'))
						.append($('<label class="checkbox-inline">')
							.append($('<input type="checkbox" class="expressionAttr" data-l1key="5">'))
							.append('Vendredi'))
						.append($('<label class="checkbox-inline">')
							.append($('<input type="checkbox" class="expressionAttr" data-l1key="6">'))
							.append('Samedi'))
						.append($('<label class="checkbox-inline">')
							.append($('<input type="checkbox" class="expressionAttr" data-l1key="0" />'))
							.append('Dimanche'))))
				.append($('<td>')
					.append(Heure)
					.append(Minute));
			_el.append(tr);
			_el.find('tr:last').setValues(_programation, '.expressionAttr');
			$('.eqLogic[data-eqLogic_id='+reveilId+'] .expressionAttr[data-l1key=Heure]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			$('.eqLogic[data-eqLogic_id'+reveilId+' .expressionAttr[data-l1key=Minute]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			$('.eqLogic[data-eqLogic_id'+reveilId+' .expressionAttr[data-l1key=1]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			$('.eqLogic[data-eqLogic_id'+reveilId+' .expressionAttr[data-l1key=2]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			$('.eqLogic[data-eqLogic_id'+reveilId+' .expressionAttr[data-l1key=3]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			$('.eqLogic[data-eqLogic_id'+reveilId+' .expressionAttr[data-l1key=4]').off().on('change', function () {
				sendProgramation($(this));
			});
			$('.eqLogic[data-eqLogic_id'+reveilId+' .expressionAttr[data-l1key=5]').off().on('change', function () {	
				sendProgramation($(this));
			});
			$('.eqLogic[data-eqLogic_id'+reveilId+' .expressionAttr[data-l1key=6]').off().on('change', function () {	
				sendProgramation($(this));
			});
			$('.eqLogic[data-eqLogic_id'+reveilId+' .expressionAttr[data-l1key=0]').off().on('change', function () {	
				sendProgramation($(this));
			});	
		}
	</script>
</div>

Cool ça fonctionne :slight_smile:

MERCI !!!

:+1::+1:

Super,

Je l’ai ajouté a un modal du plugin
Par la suite il sera plus simple a utilisé

Par contre Jeedom et les design même en V4 on a des trucs pas cohérents … :unamused:

Ton code marche super sur le plugin Widget en vue dashboard, je le mets dans une zone avec « widget au survol » sur mon design… ça marche bien au début et tout d’un coup il ne veut plus m’afficher la colonne pour le choix de l’heure .
Si je fais une zone text/html dans mon design : aucun soucis

Rhaaaaaa !!

harf

Est ce que tu peux me décrire comment tu a configurer la zone que j’essaye de reproduire

Désolé d’avoir tardé à répondre… pas eut le temps de regarder ça ce Week-end :slight_smile:

A vrai dire je n’ai pas de configuration particulière dans mon design pour ça:

Ca c’est la zone avec widget qui s’ouvre quand on clic dessus:

et ça la zone Texte/HTML :

La zone texte/HTML fonctionne très bien. La zone avec widget au clic par contre ne veut plus m’afficher la selection des heures, c’est trop bizarre.
Je pense que ça doit aussi pas mal venir de la façon dont jeedom génère les design, parce que quand j’ouvre le widget en cliquand sur la zone, la zone texte/HTML se retrouve en double, puis triple, puis quadruple tant que je ne rafraichi pas la page.

Donc mon Design ressemble à ça:

Salut …

Je galère un peu à avoir quelque chose de correct. La façon dont jeedom gère l’affichage des codes HTML rend le truc un peu pénible !
Si je mets 2 zones HTML dans un design, ou si je fais 2 widgets HTML display avec chacun un ReveilID différent il mélange les 2.
Dès que je crée le second Widget ou zone HTML au refresh suivant je me retrouve avec les 2 zone/widget qui affiche la programmation des 2 réveils

ça donne ça sur le dashboard:

Là je contourne le problème en changeant simplement le nom de la variable ReveilId pour que ce ne soit pas le même dans les codes respectifs (ReveilId01, ReveilId02, etc …)
Je ne sais pas s’il y a moyen d’avoir un « code universel » où il suffirait de changer la valeur de ReveilId qui fonctionnerai.