Commit 3bb58db7 authored by lucas64500's avatar lucas64500

Notifications

parent 7347fba7
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
<link rel="stylesheet" href="css/chargement-connexion.css" type="text/css" charset="utf-8" /> <link rel="stylesheet" href="css/chargement-connexion.css" type="text/css" charset="utf-8" />
<link rel="stylesheet" href="css/historique.css" type="text/css" charset="utf-8" /> <link rel="stylesheet" href="css/historique.css" type="text/css" charset="utf-8" />
<link rel="stylesheet" href="css/courbes.css" type="text/css" charset="utf-8" /> <link rel="stylesheet" href="css/courbes.css" type="text/css" charset="utf-8" />
<!-- <script type="text/javascript" src="cordova.js"></script> --> <script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/carte.js"></script> <script type="text/javascript" src="js/carte.js"></script>
<script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/mustache.js"></script> <script type="text/javascript" src="js/mustache.js"></script>
...@@ -352,12 +352,9 @@ ...@@ -352,12 +352,9 @@
<div id="bas_triangle"></div> <div id="bas_triangle"></div>
<div class="corps"> <div class="corps">
<div class="sous_titre"> <div class="sous_titre">
<span id="nav_gauche"><</span> <h1></h1>
<span class="nav_droite">></span>
<h1>Seuils</h1>
</div>
<div class="contenu formulaire" id="corps-params-ruche-seuils">
</div> </div>
<div class="contenu formulaire" id="corps-params-ruche-seuils"></div>
</div> </div>
</div> </div>
......
...@@ -57,43 +57,136 @@ function initAccueil(){ ...@@ -57,43 +57,136 @@ function initAccueil(){
} }
} }
var inotif=0; var inotif=0;
var enActualisation=false;
function notif(nom,ruche,idSeuil){
inotif++;
cordova.plugins.notification.local.isPresent((ruche.id_hive*10+idSeuil), function (present) {
alert(present);
if(!present){
cordova.plugins.notification.local.schedule({
id: ruche.id_hive*10+idSeuil,
badge: inotif,
title: "Alerte ("+ruche.name+")",
text: "Seuil "+nom+" dépassé",
at: new Date()
});
cordova.plugins.notification.local.on("click", function (notification) {
inotif=0;
goToListHives(1);
});
}});
}
/*
function notif(nom,nomRuche){
inotif++;
cordova.plugins.notification.local.schedule({
id: inotif,
badge: inotif,
title: "Alerte ("+nomRuche+")",
text: "Seuil "+nom+" dépassé",
at: new Date()
});
cordova.plugins.notification.local.on("click", function (notification) {
inotif=0;
accueil();
});
}*/
function actuNotifs(){ var seuils = [
getListHiveGroups(function() { /*{
console.log("récupération des listes de ruches par rucher"); 'nom': "PARAM.SEUIL_ACC_X_MAX",
getHivesForHiveGroups(-1);//Le -1 pour dire qu'on ne va pas sur la liste des ruches (ça pourrait interferer avec la navigation de l'utilisateur si il est en train d'utiliser l'appli 'description': "Seuil Accéléromètre X maximum pour alerte"
},-1);//Ce -1 pour ne pas afficher le chargement },
//Pour chaque ruche {
for(var r=0;r<donneesRuches.hivegroups.length;r++){ 'nom': "PARAM.SEUIL_ACC_X_MIN",
for(var i=0;i<donneesRuches.hivegroups[r].hives.length;i++){ 'description': "Seuil Accéléromètre X minimum pour alerte"
for(var s in seuils) { },
console.log("Nom seuil : " + seuils[s].nom); {
seuils[s].v = donneesRuches.hivegroups[r].hives[i].data[seuils[s].nom].v; 'nom': "PARAM.SEUIL_ACC_Y_MAX",
if(r==0&&i==0)notif(seuils[s].nom,seuils[s].v); 'description': "Seuil Accéléromètre Y maximum pour alerte"
} },
seuils = { 'seuils': seuils}; {
console.log(seuils); 'nom': "PARAM.SEUIL_ACC_Y_MIN",
}} 'description': "Seuil Accéléromètre Y minimum pour alerte"
// },
function notif(nom,v){ {
inotif++; 'nom': "PARAM.SEUIL_ACC_Z_MAX",
'description': "Seuil Accéléromètre Z maximum pour alerte"
cordova.plugins.notification.local.schedule({ },
id: inotif, {
badge: inotif, 'nom': "PARAM.SEUIL_ACC_Z_MIN",
title: "Alerte", 'description': "Seuil Accéléromètre Z minimum pour alerte"
text: "Seuil "+nom+" dépassé : "+v, },*/
at: new Date(), {
data: { meetingId:"#123FG8" } 'nom': "PARAM.SEUIL_BAISSE_POIDS",
}); 'description': "Baisse de poids maximale",
cordova.plugins.notification.local.on("click", function (notification) { 'type': "max",
inotif=0; 'champ':"PARAM.POIDS_RECOLTE"
accueil(); },
}); /*{
'nom': "PARAM.SEUIL_BAISSE_POIDS_DUREE",
'description': "Nombre d'heure pour constater la baisse de poids"
},*/
{
'nom': "PARAM.SEUIL_HUMIDITE_MAX",
'description': "Humidité maximale",
'type': "max",
'champ':"HUM"
},
{
'nom': "PARAM.SEUIL_HUMIDITE_MIN",
'description': "Humidité minimale",
'type': "min",
'champ':"HUM"
},
{
'nom': "PARAM.SEUIL_TEMP_MAX",
'description': "Température maximale",
'type': "max",
'champ':"TMP"
},
{
'nom': "PARAM.SEUIL_TEMP_MIN",
'description': "Température minimale",
'type': "min",
'champ':"TMP"
}
];
function testSeuil(ruche,s,v){
console.log(v+" / "+ruche.data[s.champ].v);
if(s.type=="max"&&parseFloat(v)<parseFloat(ruche.data[s.champ].v)){
return true;
}
else if(s.type=="min"&&parseFloat(v)>parseFloat(ruche.data[s.champ].v)){
return true;
} }
else return false;
}
function actuNotifs(){if(!enActualisation){
enActualisation=true;
getListHiveGroups(function() {
console.log("Actualisation des seuils");
getHivesForHiveGroups(-1,function(){//Pour chaque ruche
for(var r=0;r<donneesRuches.hivegroups.length;r++){
for(var i=0;i<donneesRuches.hivegroups[r].hives.length;i++){
for(s=0;s<seuils.length;s++) {
if(testSeuil(donneesRuches.hivegroups[r].hives[i],seuils[s],donneesRuches.hivegroups[r].hives[i].data[seuils[s].nom].v))notif(seuils[s].nom,donneesRuches.hivegroups[r].hives[i],s);
}
enActualisation=false;
}}
});//Le -1 pour dire qu'on ne va pas sur la liste des ruches (ça pourrait interferer avec la navigation de l'utilisateur si il est en train d'utiliser l'appli
},false);//Ce -1 pour ne pas afficher le chargement
} }}
var rucher=1; var rucher=1;
var slider_ruchers; var slider_ruchers;
var $window=[]; var $window=[];
...@@ -106,7 +199,7 @@ function accueil(){ ...@@ -106,7 +199,7 @@ function accueil(){
nbRuchers=donneesRuches.hivegroups.length; nbRuchers=donneesRuches.hivegroups.length;
console.log("Nb de ruchers : "+nbRuchers); console.log("Nb de ruchers : "+nbRuchers);
setInterval(function(){actuNotifs();}, 5000); setInterval(function(){actuNotifs();}, 10000);
if(nbRuchers>0){ if(nbRuchers>0){
$("#rucher"+rucher).appendTo("#conteneur-rucher"); $("#rucher"+rucher).appendTo("#conteneur-rucher");
...@@ -318,7 +411,6 @@ function defiler(rucher){ ...@@ -318,7 +411,6 @@ function defiler(rucher){
$("#ruche"+rucher+"_"+rucheSelect[rucher]).children(".ruche_contenu").children(".ruche_grise").css("opacity","1"); $("#ruche"+rucher+"_"+rucheSelect[rucher]).children(".ruche_contenu").children(".ruche_grise").css("opacity","1");
$("#ruche"+rucher+"_"+rucheSelect2[rucher]).children(".ruche_contenu").children(".ruche_grise").css("opacity","0"); $("#ruche"+rucher+"_"+rucheSelect2[rucher]).children(".ruche_contenu").children(".ruche_grise").css("opacity","0");
if(!donneesRuches.hivegroups[rucher-1].hives[rucheSelect2[rucher]-1].data){griser(rucher,rucheSelect2[rucher]);} if(!donneesRuches.hivegroups[rucher-1].hives[rucheSelect2[rucher]-1].data){griser(rucher,rucheSelect2[rucher]);}
$("#ruche"+rucher+"plus").css({"right":((((nbRuches[rucher]+1)%2==0)?0.5*w:0)+decal )+"px"}); $("#ruche"+rucher+"plus").css({"right":((((nbRuches[rucher]+1)%2==0)?0.5*w:0)+decal )+"px"});
......
...@@ -40,6 +40,12 @@ function activerBoutons(){ ...@@ -40,6 +40,12 @@ function activerBoutons(){
$("#ajouter_note_details").click(ajouterNote); $("#ajouter_note_details").click(ajouterNote);
break; break;
case "pparametres-ruche":
$("#form-params-hive").find(".bouton").click(submitParamsHive);
$("#goToSeuils").on("submit",function(e) {
e.preventDefault();goToHiveSeuils();});
break;
default: break; default: break;
} }
......
...@@ -117,26 +117,16 @@ function connexion_success() { ...@@ -117,26 +117,16 @@ function connexion_success() {
}); });
}; };
function aux(retour) { function aux(retour,act) {
idHiveGroupMaj++; idHiveGroupMaj++;
getHivesForHiveGroups(retour); getHivesForHiveGroups(retour,act);
};
function getHivesForHiveGroups(retour) {
if(idHiveGroupMaj >= donneesRuches.hivegroups.length) {
idHiveGroupMaj=0;
if(retour>=0)goToListHives(retour);
}
else {
getListHives(function(a,b) {
getDataForHives(aux,retour);
}, false);
}
}; };
function charge(){ function charge(){
enCharge=true; enCharge=true;
_("ch").style.visibility="visible"; _("ch").style.visibility="visible";
...@@ -157,9 +147,11 @@ function logout() { ...@@ -157,9 +147,11 @@ function logout() {
}, },
success: function(data) { success: function(data) {
//what to do on success //what to do on success
connect();
}, },
error: function (xhr, ajaxOptions, thrownError) { error: function (xhr, ajaxOptions, thrownError) {
//what to do on failure //what to do on failure
afficherBd("Un problème est survenu","OK");
} }
}); });
} }
...@@ -173,10 +165,13 @@ function deleteAccount() { ...@@ -173,10 +165,13 @@ function deleteAccount() {
withCredentials: true withCredentials: true
}, },
success: function(data) { success: function(data) {
connect();
//what to do on success //what to do on success
}, },
error: function (xhr, ajaxOptions, thrownError) { error: function (xhr, ajaxOptions, thrownError) {
//what to do on failure //what to do on failure
afficherBd("Un problème est survenu","OK");
} }
}); });
} }
...@@ -62,7 +62,7 @@ function getCourbes(action,id){ ...@@ -62,7 +62,7 @@ function getCourbes(action,id){
} }
else{//Charger courbe i else{//Charger courbe i
getHistoryHive(id,p[i],debut,fin,function(data){auxC(id,i+1,data);},function(){finCharge();}); getHistoryHive(id,p[i],debut,fin,function(data){auxC(id,i+1,data);});
} }
} }
auxC(id,0,{}); auxC(id,0,{});
...@@ -228,7 +228,7 @@ function allerCourbe(k){ ...@@ -228,7 +228,7 @@ function allerCourbe(k){
* @string fin : datetime in format dd/MM/yyyy%20hh:mm:ss * @string fin : datetime in format dd/MM/yyyy%20hh:mm:ss
*/ */
function getHistoryHive(id,params, debut, fin,action,err) { function getHistoryHive(id,params, debut, fin,action) {
$.ajax({ $.ajax({
type: 'GET', type: 'GET',
url: url+'pshive/' + id + '/log?params=' + params + '&debut=' + debut + '&fin=' + fin, url: url+'pshive/' + id + '/log?params=' + params + '&debut=' + debut + '&fin=' + fin,
...@@ -237,11 +237,13 @@ function getHistoryHive(id,params, debut, fin,action,err) { ...@@ -237,11 +237,13 @@ function getHistoryHive(id,params, debut, fin,action,err) {
withCredentials: true withCredentials: true
}, },
success: function(data) { success: function(data) {
action(data.data[id][params]); if(data.data[id][params]){
action(data.data[id][params]);}
else{finCharge();afficherBd("Aucune donnée pour cette ruche","Fermer");}
}, },
error: function (xhr, ajaxOptions, thrownError) { error: function (xhr, ajaxOptions, thrownError) {
//what to do on error //what to do on error
err(); finCharge();afficherBd("Impossible de charger des données pour cette ruche","Fermer");
} }
}); });
} }
...@@ -38,7 +38,7 @@ function getDataHive(id, id2, name, action) { ...@@ -38,7 +38,7 @@ function getDataHive(id, id2, name, action) {
idHive = id2; idHive = id2;
donneesRuches.hivegroups[idHiveGroupMaj].hives[idHiveMaj].data = data; donneesRuches.hivegroups[idHiveGroupMaj].hives[idHiveMaj].data = data;
console.log(data); console.log(donneesRuches.hivegroups[idHiveGroupMaj].hives[idHiveMaj]);
//console.log(id2); //console.log(id2);
//console.log(JSON.stringify(data)); //console.log(JSON.stringify(data));
...@@ -54,11 +54,11 @@ function getDataHive(id, id2, name, action) { ...@@ -54,11 +54,11 @@ function getDataHive(id, id2, name, action) {
function goToDataHive(r) { function goToDataHive(r) {
var template = $(templates).filter('#tpl-details').html(); var template = $(templates).filter('#tpl-details').html();
console.log("Rucher : " + idHiveGroup); //console.log("Rucher : " + idHiveGroup);
console.log("Ruche : " + idHive); //console.log("Ruche : " + idHive);
console.log(donneesRuches); //console.log(donneesRuches);
dataHive=donneesRuches.hivegroups[idHiveGroup].hives[idHive]; dataHive=donneesRuches.hivegroups[idHiveGroup].hives[idHive];
console.log(dataHive) //console.log(dataHive)
dataHive.name_hive_group=donneesRuches.hivegroups[idHiveGroup].name; dataHive.name_hive_group=donneesRuches.hivegroups[idHiveGroup].name;
dataHive.recolte = dataHive.data["PARAM.POIDS_RECOLTE"]; dataHive.recolte = dataHive.data["PARAM.POIDS_RECOLTE"];
dataHive.miel = dataHive.data["PARAM.PROD_MIEL_RUCHE"]; dataHive.miel = dataHive.data["PARAM.PROD_MIEL_RUCHE"];
......
...@@ -20,7 +20,7 @@ function twoDigits(n) { ...@@ -20,7 +20,7 @@ function twoDigits(n) {
} }
return n; return n;
} }
var nNotes;
function goToHistorique(id){//Si id est passé en argument; on affiche que les notes associée à cette ruche function goToHistorique(id){//Si id est passé en argument; on affiche que les notes associée à cette ruche
id = typeof id !== 'undefined' ? id : -1; id = typeof id !== 'undefined' ? id : -1;
var idx = 0; var idx = 0;
...@@ -47,25 +47,34 @@ function goToHistorique(id){//Si id est passé en argument; on affiche que les n ...@@ -47,25 +47,34 @@ function goToHistorique(id){//Si id est passé en argument; on affiche que les n
} }
var selectHisto=1; var selectHisto=1;
function details_histo(nouveau){ function details_histo(nouveau){
if(nouveau==0){
while($("#details_histo_"+nouveau).length==0)nouveau++;
}
_('details_histo_'+selectHisto).style.display='none'; _('details_histo_'+selectHisto).style.display='none';
$(_('fleche_'+selectHisto)).attr('src','img/histo_fleche_droite.png'); $(_('fleche_'+selectHisto)).attr('src','img/histo_fleche_droite.png');
selectHisto=nouveau; selectHisto=nouveau;
_('details_histo_'+selectHisto).style.display='block'; _('details_histo_'+selectHisto).style.display='block';
$(_('fleche_'+selectHisto)).attr('src','img/histo_fleche_bas.png'); $(_('fleche_'+selectHisto)).attr('src','img/histo_fleche_bas.png');
} }
var notes;
function afficherNotes(data, indexHive){ function afficherNotes(data, indexHive){
finCharge(); finCharge();
nNotes=0;
notes=[];
/* structure of one note : { id: 24, id_custom_note: 2, id_hive: 22, date_add: "07/05/2016 20:26:00" } */ /* structure of one note : { id: 24, id_custom_note: 2, id_hive: 22, date_add: "07/05/2016 20:26:00" } */
var notes = [];
for(var i in data) { for(var i in data) {
console.log(data[i]); console.log(data[i]);
var note = data[i]; var note = data[i];
for(var j in defaultNotes) { for(var j in defaultNotes) {
if(defaultNotes[j].id == note.id_default_note) { if(defaultNotes[j].id == note.id_default_note) {
note.data = defaultNotes[j]; note.data = defaultNotes[j];
} }
} }
notes.push(note); notes.push(note);
}; };
for(var i in customNotesSetByUser) { for(var i in customNotesSetByUser) {
...@@ -76,6 +85,7 @@ function afficherNotes(data, indexHive){ ...@@ -76,6 +85,7 @@ function afficherNotes(data, indexHive){
note.data = customNotesCreatedByUser[j]; note.data = customNotesCreatedByUser[j];
} }
} }
notes.push(note); notes.push(note);
}; };
notes.sort(function(a, b) { notes.sort(function(a, b) {
...@@ -88,6 +98,8 @@ function afficherNotes(data, indexHive){ ...@@ -88,6 +98,8 @@ function afficherNotes(data, indexHive){
for (idx in notes) { for (idx in notes) {
notes[idx] = {'index': (parseInt(idx)+1), 'note': notes[idx]}; notes[idx] = {'index': (parseInt(idx)+1), 'note': notes[idx]};
} }
console.log(notes);
nNotes=notes.length;
historique = { historique = {
"notes" : notes "notes" : notes
}; };
...@@ -159,7 +171,8 @@ function goToAddCustomNote() { ...@@ -159,7 +171,8 @@ function goToAddCustomNote() {
$("#add_new_custom_note").on("click", f); $("#add_new_custom_note").on("click", f);
} }
function supprimerNote(index){ function supprimerNote(index){
if(index==selectHisto){if(index>1){details_histo(index-1);}else{details_histo(index+1);}} nNotes--;
if(index==selectHisto){if(nNotes>0){details_histo(0);}}
$("#details_histo_"+index).remove(); $("#details_histo_"+index).remove();
$("#histo_"+index).remove(); $("#histo_"+index).remove();
} }
......
...@@ -40,60 +40,9 @@ var historique; ...@@ -40,60 +40,9 @@ var historique;
document.addEventListener('deviceready', function () { document.addEventListener('deviceready', function () {
cordova.plugins.backgroundMode.enable(); cordova.plugins.backgroundMode.enable();
}, false); }, false);
var seuils = [
/*{
'nom': "PARAM.SEUIL_ACC_X_MAX",
'description': "Seuil Accéléromètre X maximum pour alerte"
},
{
'nom': "PARAM.SEUIL_ACC_X_MIN",
'description': "Seuil Accéléromètre X minimum pour alerte"
},
{
'nom': "PARAM.SEUIL_ACC_Y_MAX",
'description': "Seuil Accéléromètre Y maximum pour alerte"
},
{
'nom': "PARAM.SEUIL_ACC_Y_MIN",
'description': "Seuil Accéléromètre Y minimum pour alerte"
},
{
'nom': "PARAM.SEUIL_ACC_Z_MAX",
'description': "Seuil Accéléromètre Z maximum pour alerte"
},
{
'nom': "PARAM.SEUIL_ACC_Z_MIN",
'description': "Seuil Accéléromètre Z minimum pour alerte"
},*/
{
'nom': "PARAM.SEUIL_BAISSE_POIDS",
'description': "Baisse de poids maximale avant alerte"
},
/*{
'nom': "PARAM.SEUIL_BAISSE_POIDS_DUREE",
'description': "Nombre d'heure pour constater la baisse de poids"
},*/
{
'nom': "PARAM.SEUIL_HUMIDITE_MAX",
'description': "Humidité maximale avant alerte"
},
{
'nom': "PARAM.SEUIL_HUMIDITE_MIN",
'description': "Humidité minimale avant alerte"
},
{
'nom': "PARAM.SEUIL_TEMP_MAX",
'description': "Température maximale avant alerte"
},
{
'nom': "PARAM.SEUIL_TEMP_MIN",
'description': "Température minimale avant alerte"
}
];
function debut(){ function debut(){
...@@ -168,7 +117,8 @@ function charger(){ ...@@ -168,7 +117,8 @@ function charger(){
if(templateCharge){//if(pcharge==100&&templateCharge){ if(templateCharge){//if(pcharge==100&&templateCharge){
transition(_("pconnexion")); transition(_("pconnexion"));
clearInterval(tcharge); clearInterval(tcharge);
connect(); //connect();
connexion("guillaume.vizier@polytechnique.edu", "labelabeille", connexion_success, connexion_failure);
} }
} }
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* @function action : callback, what to do with the data * @function action : callback, what to do with the data
*/ */
function getListHiveGroups(action,afficheCharge) {