Widget Reveil vide

pas bien mieux, meme pire , j’ai plus le dimanche :
image

Tu a agrandi le widget?
Voici une petite mise a jours de style

<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=72;
		$.ajax({
			type: "POST", 
			url: "plugins/reveil/core/ajax/reveil.ajax.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({
				type: "POST", 
				url: "plugins/reveil/core/ajax/reveil.ajax.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) {
					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 style="width: 50%;">')
					.append($('<div class="col-sm-2">')
						.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 style="width: 50%;">')
						.append(Heure)
						.append(Minute));
			_el.append(tr);
			_el.find('tr:last').setValues(_programation, '.expressionAttr');
			_el.find('.expressionAttr[data-l1key=Heure]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			_el.find('.expressionAttr[data-l1key=Minute]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			_el.find('.expressionAttr[data-l1key=1]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			_el.find('.expressionAttr[data-l1key=2]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			_el.find('.expressionAttr[data-l1key=3]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			_el.find('.expressionAttr[data-l1key=4]').off().on('change', function () {
				sendProgramation($(this));
			});
			_el.find('.expressionAttr[data-l1key=5]').off().on('change', function () {	
				sendProgramation($(this));
			});
			_el.find('.expressionAttr[data-l1key=6]').off().on('change', function () {	
				sendProgramation($(this));
			});
			_el.find('.expressionAttr[data-l1key=0]').off().on('change', function () {	
				sendProgramation($(this));
			});
		}
	</script>
</div>

Ah, c’est mieux.
Pour le mercredi, l’affichage fonctionne (si mercredi programmé, le mercredi est coché et inversement)
Par contre, si je coche ou décoche mercredi depuis le widget du dashboard, la programmation ne fonctionne pas.
Merci encore

OK je regarderai ce problème

Effectivement un petit faute de frappe

<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=72;
		$.ajax({
			type: "POST", 
			url: "plugins/reveil/core/ajax/reveil.ajax.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+'3';
				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({
				type: "POST", 
				url: "plugins/reveil/core/ajax/reveil.ajax.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) {
					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 style="width: 50%;">')
					.append($('<div class="col-sm-2">')
						.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 style="width: 50%;">')
						.append(Heure)
						.append(Minute));
			_el.append(tr);
			_el.find('tr:last').setValues(_programation, '.expressionAttr');
			_el.find('.expressionAttr[data-l1key=Heure]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			_el.find('.expressionAttr[data-l1key=Minute]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			_el.find('.expressionAttr[data-l1key=1]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			_el.find('.expressionAttr[data-l1key=2]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			_el.find('.expressionAttr[data-l1key=3]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			_el.find('.expressionAttr[data-l1key=4]').off().on('change', function () {
				sendProgramation($(this));
			});
			_el.find('.expressionAttr[data-l1key=5]').off().on('change', function () {	
				sendProgramation($(this));
			});
			_el.find('.expressionAttr[data-l1key=6]').off().on('change', function () {	
				sendProgramation($(this));
			});
			_el.find('.expressionAttr[data-l1key=0]').off().on('change', function () {	
				sendProgramation($(this));
			});
		}
	</script>
</div>

Super ca marche :star_struck:
Merci pour le support :wink:

Bonjour,

Un petit bonus que j’ai préparer hier soir
image
image

<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[2]em;#hideEqLogicName#"><a href="#eqLink#">#name_display# <span class="object_name">#object_name#</span></a></span>
	</center>
    <a class="btn btn-success pull-right" id="bt_addProgramation" style="margin-top: 5px;"><i class="fa fa-plus-circle"></i> Ajouter Programation</a><br/><br/>
    <div id="reveilProgramation"></div>
	<script type="text/javascript">
      	var reveilId=72;
		$('#bt_addProgramation').off().on('click',function(){
     		addProgramation({}, $('.eqLogic[ data-eqLogic_id=#id#] #reveilProgramation'));
      	});
		$.ajax({
			type: "POST", 
			url: "plugins/reveil/core/ajax/reveil.ajax.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#] #reveilProgramation'));
				}
			}
		});
		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+'3';
				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({
				type: "POST", 
				url: "plugins/reveil/core/ajax/reveil.ajax.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) {
					if (data.state != 'ok') {
						$('#div_alert').showAlert({message: data.result, level: 'danger'});
						return;
					}
				}
			});
		}
      function titleProgramation(_programation){
        var title =_programation.Heure+':'+_programation.Minute;
        if(_programation[1] == "1" && _programation[2] == "1" && _programation[3] == "1" && _programation[4] && _programation[5] == "1" && _programation[6] == "1" && _programation[0] == "1")
          	title += ' Tous les jours';
        else if(_programation[1] == "1" && _programation[2] == "1" && _programation[3] == "1" && _programation[4] == "1" && _programation[5] == "1" && _programation[6] == "0" && _programation[0] == "0")
          	title += ' Tous les jours ouvrée';
        else if(_programation[1] == "0" && _programation[2] == "0" && _programation[3] == "0" && _programation[4] == "0" && _programation[5] == "0" && _programation[6] == "1" && _programation[0] == "1")
          	title += ' Tous les weekend';
        else{
          if(_programation[1] == "1")
              title += ' Lundi';
          if(_programation[2] == "1")
              title += ' Mardi';
          if(_programation[3] == "1")
              title += ' Mercredi';
          if(_programation[4] == "1")
              title += ' Jeudi';
          if(_programation[5] == "1")
              title += ' Vendredi';
          if(_programation[6] == "1")
              title += ' Samedi';
          if(_programation[0] == "1")
              title += ' Dimanche';
        }
        return title;
      }
		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++;
			}
	
			_el.find('.expressionAttr[data-l1key=Heure]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			_el.find('.expressionAttr[data-l1key=Minute]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			_el.find('.expressionAttr[data-l1key=1]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			_el.find('.expressionAttr[data-l1key=2]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			_el.find('.expressionAttr[data-l1key=3]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			_el.find('.expressionAttr[data-l1key=4]').off().on('change', function () {
				sendProgramation($(this));
			});
			_el.find('.expressionAttr[data-l1key=5]').off().on('change', function () {	
				sendProgramation($(this));
			});
			_el.find('.expressionAttr[data-l1key=6]').off().on('change', function () {	
				sendProgramation($(this));
			});
			_el.find('.expressionAttr[data-l1key=0]').off().on('change', function () {	
				sendProgramation($(this));
			});
	var random = Math.floor((Math.random() * 1000000) + 1);
	var div = $('<div class="programation panel panel-default">')
		.append($('<div class="panel-heading">')
			.append($('<h4 class="panel-title">')
				.append($('<a data-toggle="collapse" data-parent="#reveilProgramation" href="#collapse' + random + '">')
					.append($('<span class="name">')
                            .append(titleProgramation(_programation))))))
		.append($('<div id="collapse' + random + '" class="panel-collapse collapse in">')
			.append($('<div class="panel-body">')
				.append($('<div class="well">')
					.append($('<form class="form-horizontal" role="form">')
						.append($('<div class="form-group">')
                            .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($('<div class="form-group">')
                                .append(Heure)
                                .append(Minute))))));
	_el.append(div);
	_el.find('.programation:last').setValues(_programation, '.expressionAttr');
	$('.collapse').collapse();
}

	</script>
</div>

Bonjour,
J’ai créé un nouveau Widget HTML (en laissant l’ancien) pour tester.
Un bien le nouveau Widget modifie l’affichage de mon ancien.
C’est normal?
image

J’ai une vague idée et ça peut-être chiant à corriger
L’id n’est peut-être pas remplacé

pas la peine, j’en n’ai pas besoin.

par contre, il manque la commande pour desactiver le reveil

Je comprend pas
Sur le widget de base y a 2 commande arrêt et snooze
Tu n’a pas ca

oui mais pas sur le Display HTML

le code que j’ai donné precedement n’est que pour la partie programmation

oui mais il aurait été bien d’avoir aussi l’activation/desactivation sur le meme visuel.

Bonjour, aussi, le widget ne marche pas en transparent sur le design. C’est pas la fin du monde , mais bon…
image

Bonjour, je viens de constater un probleme avec le display HTML.
J’ai rajouté 2 reveils pour gérer l’eclairage de mon aquarium, un reveil ON et un reveil OFF.
Si je mets 2 display HTML sur la meme page, l’un des display configure l’autre reveil.
Je suis obligé de séparer les displays aussi bien sur le dashboard que sur les designs.

Petit déterrage

Merci pour le plugin il est top top @mika-nt28 ! Je suis ravi de mon achat.

Pour la parti widget html deux petites questions :

  • Comment on le resize pour afficher tous les jours ? (désolé pas trouvé dans la doc). → j’ai changé comme un cochon dans le code mais doit y avoir mieux :slight_smile:
  • Quand je l’ajoute à un désign il apparait bien mais dès que je refresh pouf disparu. → Trouvé c’est seulement quand il y a le widget 'activation sur la page aussi.
  • Comment valide t’on un changement de programmation avec le widget html ?

Merci

J’aime bien ton petit widget @Maxmont peut tu partager le code?

voila , il faut juste modifier reveilId par l’id de ton equipement

<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=103;
		$.ajax({
			type: "POST", 
			url: "plugins/reveil/core/ajax/reveil.ajax.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+'3';
				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({
				type: "POST", 
				url: "plugins/reveil/core/ajax/reveil.ajax.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) {
					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 style="width: 50%;">')
					.append($('<div class="col-sm-2">')
						.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 style="width: 50%;">')
						.append(Heure)
						.append(Minute));
			_el.append(tr);
			_el.find('tr:last').setValues(_programation, '.expressionAttr');
			_el.find('.expressionAttr[data-l1key=Heure]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			_el.find('.expressionAttr[data-l1key=Minute]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			_el.find('.expressionAttr[data-l1key=1]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			_el.find('.expressionAttr[data-l1key=2]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			_el.find('.expressionAttr[data-l1key=3]').off().on('change', function () {	
				sendProgramation($(this));
			});	
			_el.find('.expressionAttr[data-l1key=4]').off().on('change', function () {
				sendProgramation($(this));
			});
			_el.find('.expressionAttr[data-l1key=5]').off().on('change', function () {	
				sendProgramation($(this));
			});
			_el.find('.expressionAttr[data-l1key=6]').off().on('change', function () {	
				sendProgramation($(this));
			});
			_el.find('.expressionAttr[data-l1key=0]').off().on('change', function () {	
				sendProgramation($(this));
			});
		}
	</script>
</div>