From eab0e8c620f7175f83e7be05a9d52a2a40e50938 Mon Sep 17 00:00:00 2001 From: storm64 Date: Mon, 29 May 2023 23:45:27 +0200 Subject: [PATCH] [sleeplogalarm] Correct hide + replace all `var` --- apps/sleeplogalarm/ChangeLog | 3 ++- apps/sleeplogalarm/README.md | 4 ++-- apps/sleeplogalarm/lib.js | 20 ++++++++++---------- apps/sleeplogalarm/metadata.json | 2 +- apps/sleeplogalarm/settings.js | 20 ++++++++++---------- apps/sleeplogalarm/widget.js | 11 +++++++---- 6 files changed, 32 insertions(+), 28 deletions(-) diff --git a/apps/sleeplogalarm/ChangeLog b/apps/sleeplogalarm/ChangeLog index 80f8bd7e4..e45667697 100644 --- a/apps/sleeplogalarm/ChangeLog +++ b/apps/sleeplogalarm/ChangeLog @@ -1,4 +1,5 @@ 0.01: New App! 0.02: Add "from Consec."-setting 0.03: Correct how to ignore last triggered alarm -0.04: Make "disable alarm" possible on next day; correct alarm filtering; improve settings \ No newline at end of file +0.04: Make "disable alarm" possible on next day; correct alarm filtering; improve settings +0.041: Correct hide function + replace all `var` with `let`. diff --git a/apps/sleeplogalarm/README.md b/apps/sleeplogalarm/README.md index 005377fb1..8da369eb3 100644 --- a/apps/sleeplogalarm/README.md +++ b/apps/sleeplogalarm/README.md @@ -1,6 +1,6 @@ # Sleep Log Alarm -This widget searches for active alarms and raises an own alarm event up to the defined time earlier, if in light sleep or awake phase. Optional the earlier alarm will only be triggered if comming from or in consecutive sleep. The settings of the earlier alarm can be adjusted and it is possible to filter the targeting alarms by time and message. By default the time of the targeting alarm is displayed inside the widget which can be adjusted, too. +This widget searches for active alarms and raises an own alarm event up to the defined time earlier, if in light sleep or awake phase. Optional the earlier alarm will only be triggered if comming from or in consecutive sleep. The settings of the earlier alarm can be adjusted and it is possible to filter the targeting alarms by time and message. The widget is only displayed if an active alarm is detected. The time of the targeting alarm is displayed inside the widget, too. The time or the complete widget can be hidden in the options. _This widget does not detect sleep on its own and can not create alarms. It requires the [sleeplog](/apps/?id=sleeplog) app and any alarm app that uses [sched](/apps/?id=sched) to be installed._ @@ -30,7 +30,7 @@ _This widget does not detect sleep on its own and can not create alarms. It requ - __msg includes__ | include only alarms including this string in msg __""__ / ... - __Widget__ submenu - - __hide__ | completely hide the widget + - __hide always__ | completely hide the widget _on_ / __off__ - __show time__ | show the time of the targeting alarm __on__ / _off_ diff --git a/apps/sleeplogalarm/lib.js b/apps/sleeplogalarm/lib.js index 343e811af..48fecdb5f 100644 --- a/apps/sleeplogalarm/lib.js +++ b/apps/sleeplogalarm/lib.js @@ -1,5 +1,5 @@ // load library -var sched = require("sched"); +let sched = require("sched"); // find next active alarm in range function getNextAlarm(allAlarms, fo, withId) { @@ -10,7 +10,7 @@ function getNextAlarm(allAlarms, fo, withId) { // return next active alarms in range, filter for // active && not timer && not own alarm && // after from && before to && includes msg - var ret = allAlarms.filter( + let ret = allAlarms.filter( a => a.on && !a.timer && a.id !== "sleeplog" && a.t >= fo.from && a.t < fo.to && (!fo.msg || a.msg.includes(fo.msg)) ).map(a => { // add time to alarm @@ -21,7 +21,7 @@ function getNextAlarm(allAlarms, fo, withId) { ).sort((a, b) => a.tTo - b.tTo); // prevent triggering for an already triggered alarm again if available if (fo.lastDate) { - var toLast = fo.lastDate - new Date().valueOf() + 1000; + let toLast = fo.lastDate - new Date().valueOf() + 1000; if (toLast > 0) ret = ret.filter(a => a.tTo > toLast); } // return first entry @@ -59,7 +59,7 @@ exports = { if (typeof (global.sleeplog || {}).trigger !== "object") return; // read settings to calculate alarm range - var settings = exports.getSettings(); + let settings = exports.getSettings(); // set the alarm time this.time = getNextAlarm(sched.getAlarms(), settings.filter).t; @@ -68,7 +68,7 @@ exports = { if (!this.time) return; // set widget width if not hidden - if (!this.hidden) this.width = 8; + if (!settings.hidden) this.width = 8; // insert sleeplogalarm conditions and function sleeplog.trigger.sleeplogalarm = { @@ -87,22 +87,22 @@ exports = { // trigger function trigger: function() { // read settings - var settings = exports.getSettings(); + let settings = exports.getSettings(); // read all alarms - var allAlarms = sched.getAlarms(); + let allAlarms = sched.getAlarms(); // find first active alarm - var alarm = getNextAlarm(sched.getAlarms(), settings.filter, settings.disableOnAlarm); + let alarm = getNextAlarm(sched.getAlarms(), settings.filter, settings.disableOnAlarm); // return if no alarm is found if (!alarm) return; // get now - var now = new Date(); + let now = new Date(); // get date of the alarm - var aDate = new Date(now + alarm.tTo); + let aDate = new Date(now + alarm.tTo); // disable earlier triggered alarm if set if (settings.disableOnAlarm) { diff --git a/apps/sleeplogalarm/metadata.json b/apps/sleeplogalarm/metadata.json index fd85507e6..989579d58 100644 --- a/apps/sleeplogalarm/metadata.json +++ b/apps/sleeplogalarm/metadata.json @@ -2,7 +2,7 @@ "id":"sleeplogalarm", "name":"Sleep Log Alarm", "shortName": "SleepLogAlarm", - "version": "0.04", + "version": "0.041", "description": "Enhance your morning and let your alarms wake you up when you are in light sleep.", "icon": "app.png", "type": "widget", diff --git a/apps/sleeplogalarm/settings.js b/apps/sleeplogalarm/settings.js index 1f3a13272..d797ae6bc 100644 --- a/apps/sleeplogalarm/settings.js +++ b/apps/sleeplogalarm/settings.js @@ -1,6 +1,6 @@ (function(back) { // read settings - var settings = require("sleeplogalarm").getSettings(); + let settings = require("sleeplogalarm").getSettings(); // write change to storage function writeSetting() { @@ -23,7 +23,7 @@ // show widget menu function showFilterMenu() { // set menu - var filterMenu = { + let filterMenu = { "": { title: "Filter Alarm" }, @@ -64,22 +64,22 @@ }) } }; - var menu = E.showMenu(filterMenu); + let menu = E.showMenu(filterMenu); } // show widget menu function showWidMenu() { // define color values and names - var colName = ["red", "yellow", "green", "cyan", "blue", "magenta", "black", "white"]; - var colVal = [63488, 65504, 2016, 2047, 31, 63519, 0, 65535]; + let colName = ["red", "yellow", "green", "cyan", "blue", "magenta", "black", "white"]; + let colVal = [63488, 65504, 2016, 2047, 31, 63519, 0, 65535]; // set menu - var widgetMenu = { + let widgetMenu = { "": { title: "Widget Settings" }, /*LANG*/"< Back": () => showMain(9), - /*LANG*/"hide": { + /*LANG*/"hide always": { value: settings.wid.hide, onchange: v => { settings.wid.hide = v; @@ -105,13 +105,13 @@ } } }; - var menu = E.showMenu(widgetMenu); + let menu = E.showMenu(widgetMenu); } // show main menu function showMain(selected) { // set menu - var mainMenu = { + let mainMenu = { "": { title: "Sleep Log Alarm", selected: selected @@ -184,7 +184,7 @@ } } }; - var menu = E.showMenu(mainMenu); + let menu = E.showMenu(mainMenu); } // draw main menu diff --git a/apps/sleeplogalarm/widget.js b/apps/sleeplogalarm/widget.js index e3171751f..9bed913c1 100644 --- a/apps/sleeplogalarm/widget.js +++ b/apps/sleeplogalarm/widget.js @@ -10,10 +10,13 @@ if ((require("Storage").readJSON("sleeplogalarm.settings.json", true) || {enable time: 0, earlier: settings.earlier, draw: function () { - // draw zzz - g.reset().setColor(settings.wid.color).drawImage(atob("BwoBD8SSSP4EEEDg"), this.x + 1, this.y); - // call function to draw the time of alarm if a alarm is found - if (this.time) this.drawTime(this.time + 1); + // draw if width is set + if (this.width) { + // draw zzz + g.reset().setColor(settings.wid.color).drawImage(atob("BwoBD8SSSP4EEEDg"), this.x + 1, this.y); + // call function to draw the time of alarm if a alarm is found + if (this.time) this.drawTime(this.time + 1); + } }, drawTime: () => {}, reload: require("sleeplogalarm").widReload