Bonjour à tous
Bon du coup, je me suis pas mal document et j’ai fait un « widget » qui convient pratiquement à ce que je voulais.
Je l’ai mis sur mon design via le plugin html display. Bon je vais le faire évoluer un peu car j’aimerais que les heures changes due couleur lorsque l’on approche de l’échéance.
Par contre pour le moment, il ne se met pas à jour automatiquement. Je sais qu’avec les widgets, il faut utiliser la commande javascript :
jeedom.cmd.update['#id#']
Mais je ne sais pas quel id mettre. Sur d’autre widget, pas de souci, il suffit de mettre le numéro de la commande info. J’ai tenté de mettre laid de l’équipement mais cela ne fonctionne pas.
Comment rafraîchir l’équipement html toutes les minutes?
Voici le code :
<div id="calendrier">
</div>
<script>
//Paramètres passé au widget
var nbreJours = ('#nbreJours#' != '#' + 'nbreJours#') ? "#nbreJours#" : 7;
var events = null;
//Fonction Ajax permettant de récupérer les données du calendrier
function RecupererEvents () {
$.ajax({// fonction permettant de faire de l'ajax
type: "POST", // methode de transmission des données au fichier php
url: "plugins/ics/core/ajax/ics.ajax.php", // url du fichier php
global:false,
data: {
action: "getEvents",
eqLogic_id: 292,
type:"local",
eqFile: true
},
error: function() {
console.log("Alert");
},
success: function(events) {
calendarCreate (events);
}
});
}
function calendarCreate(events){
var tab_jour=new Array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi");
var date = new Date();
var dayName = null;
var eventsFilter = null;
for (let day = 0; day < 7; day++) {
switch (day){
case 0 :
dayName = "Aujourd'hui";
break;
case 1 :
dayName = "Demain";
break;
default :
dayName = tab_jour[date.getDay()];
}
eventsFilter = events.filter(event => event.start.substring(0,10) === date.toISOString().substring(0,10));
eventsFilter.length == 0 ? null : createCardBlock(dayName, eventsFilter) ;
date.setDate(date.getDate()+1);
}
}
function createCardBlock(dayName, events){
let cardBlock = $('<div>').addClass("card").appendTo(calendrier);
$('<div>').addClass("dayBlock").text(dayName).appendTo(cardBlock);
let eventBlock = $('<div>').addClass("eventBlock").appendTo(cardBlock);
events.forEach(function(eventDetail){
let event = $('<div>').addClass("event").text(eventDetail.title).appendTo(eventBlock);
$('<div>').addClass("eventHour").text(eventDetail.start.substring(11,16)).appendTo(event);
});
}
jeedom.cmd.update['#id#'] = function(_options){
var calendrier = document.getElementById("calendrier");
RecupererEvents();
}
//setInterval(RecupererEvents(), 30000);
jeedom.cmd.update['#id#']({display_value:'#state#',valueDate:'#valueDate#',collectDate:'#collectDate#',alertLevel:'#alertLevel#'});
</script>
<style>
div.bandeau {
display: block;
font-size: 12px;
border-width: 1px;
border-style: solid;
border-color: red;
}
.card{
width: 245px;
min-height : 50px;
position: relative;
background-color: rgba(0,0,0,0.45);
border-radius: 10px;
padding: 2px;
background-size: cover;
background-repeat: no-repeat;
display : flex;
margin-bottom : 12px;
}
.dayBlock {
margin-top : 12px;
opacity: 1;
flex-basis : 35%;
color : white;
font-size: 15px;
text-decoration: underline;
text-align: center;
}
.eventBlock{
margin-top : 5px;
margin-bottom : 5px;
flex-basis : 65%;
color : white;
text-align: left;
}
.event{
margin-bottom : 15px;
margin-top : 5px;
padding-top : 2px;
padding-left : 5px;
border-left : solid;
border-color : #9b59b6;
color : white;
text-align: left;
font-size: 12px;
}
.eventHour{
padding-top : 5px;
padding-left : 10px;
font-size: 12px;
}
</style>
Fred