From b8beec2275da2c3b1df1c61abd5ab10aadc8d40d Mon Sep 17 00:00:00 2001 From: GermanBluefox Date: Tue, 19 May 2020 11:01:23 +0200 Subject: [PATCH] ### 4.6.12 (2020-05-19) * (bluefox) Fixed blockly blocks because of deprecated functions * (bluefox) Corrected schedule wizard --- README.md | 4 ++- admin/google-blockly/own/blocks_timeout.js | 4 +-- admin/google-blockly/own/blocks_trigger.js | 14 ++++++++-- io-package.json | 27 ++----------------- lib/sandbox.js | 16 ++++++----- package-lock.json | 8 +++--- package.json | 2 +- .../google-blockly/own/blocks_timeout.js | 4 +-- .../google-blockly/own/blocks_trigger.js | 14 ++++++++-- 9 files changed, 47 insertions(+), 46 deletions(-) diff --git a/README.md b/README.md index c7d39b550..97cc723ae 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,8 @@ Executes Javascript, Typescript and Coffescript Scripts. +**Coffescript is deprecated** + [Function documentation](docs/en/javascript.md) [Benutzung](docs/de/usage.md) @@ -33,7 +35,7 @@ And then call "npm run build". - ... ## Changelog -### 4.6.11 (2020-05-16) +### 4.6.12 (2020-05-19) * (bluefox) Fixed blockly blocks because of deprecated functions * (bluefox) Corrected schedule wizard diff --git a/admin/google-blockly/own/blocks_timeout.js b/admin/google-blockly/own/blocks_timeout.js index eeef6b915..9dac70196 100644 --- a/admin/google-blockly/own/blocks_timeout.js +++ b/admin/google-blockly/own/blocks_timeout.js @@ -131,7 +131,7 @@ Blockly.Blocks['timeouts_settimeout'] = { }, getVarModels: function () { var name = this.getFieldValue('NAME'); - return [{getId: function () {return name;}, type: 'timeout', name: name}]; + return [{getId: function () {return name;}, name: name, type: 'timeout'}]; } }; @@ -251,7 +251,7 @@ Blockly.Blocks['timeouts_setinterval'] = { }, getVarModels: function () { var name = this.getFieldValue('NAME'); - return [{getId: function () {return name;}, type: 'interval', name: name}]; + return [{getId: function () {return name;}, name: name, type: 'interval'}]; } }; diff --git a/admin/google-blockly/own/blocks_trigger.js b/admin/google-blockly/own/blocks_trigger.js index 0f2eae4df..77f7eb5b9 100644 --- a/admin/google-blockly/own/blocks_trigger.js +++ b/admin/google-blockly/own/blocks_trigger.js @@ -649,7 +649,7 @@ Blockly.Blocks['schedule_create'] = { }, getVarModels: function () { var name = this.getFieldValue('NAME'); - return [{getId: function () {return name}, name: name}]; + return [{getId: function () {return name;}, name: name, type: 'cron'}]; } }; @@ -672,7 +672,17 @@ Blockly.Trigger.getAllSchedules = function (workspace) { result.push([blocks[i].getFieldValue('NAME'), blocks[i].getFieldValue('NAME')]); } } - if (!result.length) result.push(['', '']); + + // BF(2020.05.16) : for back compatibility. Remove it after 5 years + if (window.scripts.loading) { + var variables = workspace.getVariablesOfType(''); + variables.forEach(v => !result.find(it => it[0] === v.name) && result.push([v.name, v.name])); + } + + var variables1 = workspace.getVariablesOfType('cron'); + variables1.forEach(v => !result.find(it => it[0] === v.name) && result.push([v.name, v.name])); + + !result.length && result.push(['', '']); return result; }; diff --git a/io-package.json b/io-package.json index 31f3e2081..c6d34cc11 100644 --- a/io-package.json +++ b/io-package.json @@ -1,7 +1,7 @@ { "common": { "name": "javascript", - "version": "4.6.11", + "version": "4.6.12", "title": "Script Engine", "titleLang": { "en": "Script Engine", @@ -22,7 +22,7 @@ "AlCalzone" ], "news": { - "4.6.11": { + "4.6.12": { "en": "Fixed blockly blocks because of deprecated functions", "de": "Blockierte Blöcke wegen veralteter Funktionen behoben", "ru": "Исправлены блочные блоки из-за устаревших функций", @@ -130,29 +130,6 @@ "pl": "Dostosowano adapter do kontrolera js> = 2.2.x", "zh-cn": "使适配器与js-controller> = 2.2.x兼容" }, - "4.3.5": { - "en": "fixed the load of zip files if more than one host", - "de": "Das Laden von ZIP-Dateien wurde behoben, wenn mehr als ein Host vorhanden war", - "ru": "исправлена загрузка zip-файлов, если несколько хостов", - "pt": "Corrigido o carregamento de arquivos zip se mais de um host", - "nl": "de belasting van zip-bestanden gerepareerd als meer dan één host", - "fr": "correction de la charge des fichiers zip si plusieurs hôtes", - "it": "corretto il caricamento dei file zip se più di un host", - "es": "reparó la carga de archivos zip si hay más de un host", - "pl": "naprawiono ładowanie plików zip, jeśli więcej niż jeden host", - "zh-cn": "如果一台以上的主机修复了zip文件的加载" - }, - "3.7.0": { - "en": "Used VM2 as sandbox. The script errors will be caught.\nrefactoring: split into many modules", - "de": "Verwendete VM2 als Sandbox. Die Skriptfehler werden abgefangen.\nRefactoring: Aufteilung in viele Module", - "ru": "Используется VM2 как песочница. Ошибки скрипта будут обнаружены.\nрефакторинг: разделение на многие модули", - "pt": "Usado VM2 como sandbox. Os erros de script serão capturados.\nrefatoração: dividida em vários módulos", - "nl": "Gebruikte VM2 als sandbox. De scriptfouten worden gepakt.\nrefactoring: opgesplitst in vele modules", - "fr": "VM2 utilisé comme bac à sable. Les erreurs de script seront interceptées.\nrefactoring: divisé en plusieurs modules", - "it": "Usato VM2 come sandbox. Gli errori di script verranno catturati.\nrefactoring: suddiviso in molti moduli", - "es": "Usó VM2 como sandbox. Los errores de script serán capturados.\nrefactorización: dividida en muchos módulos", - "pl": "Używany VM2 jako sandbox. Błędy skryptu zostaną przechwycone.\nrefaktoryzacja: podzielona na wiele modułów" - } }, "desc": { "en": "Javascript/Blockly Script Engine for ioBroker", diff --git a/lib/sandbox.js b/lib/sandbox.js index e3f98fb2e..fabe7aa7f 100644 --- a/lib/sandbox.js +++ b/lib/sandbox.js @@ -2308,7 +2308,12 @@ function sandBox(script, name, verbose, debug, context) { language = 'de'; } } - if(typeof date == 'number') date = new Date(date); + if (typeof date == 'number') { + date = new Date(date); + } else if (!(date instanceof Date)) { + sandbox.log('Invalid date object provided: ' + JSON.stringify(date), 'error'); + return 'Invalid date'; + } const d = date.getDay(); text = text.replace('НН', consts.dayOfWeeksFull[language][d]); let initialText = text; @@ -2419,16 +2424,13 @@ function sandBox(script, name, verbose, debug, context) { } if (typeof callback !== 'function') { - adapter.log.error('No callback found!'); - return; + return adapter.log.error('No callback found!'); } if (!isObject(options)) { - adapter.log.error('No options found!'); - return; + return adapter.log.error('No options found!'); } if (!options.id) { - adapter.log.error('No ID found!'); - return; + return adapter.log.error('No ID found!'); } const timeoutMs = parseInt(options.timeout, 10) || 20000; diff --git a/package-lock.json b/package-lock.json index 5209322cf..f8b9f845f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "iobroker.javascript", - "version": "4.6.10", + "version": "4.6.12", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -107,9 +107,9 @@ "dev": true }, "@types/node": { - "version": "12.12.39", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.39.tgz", - "integrity": "sha512-pADGfwnDkr6zagDwEiCVE4yQrv7XDkoeVa4OfA9Ju/zRTk6YNDLGtQbkdL4/56mCQQCs4AhNrBIag6jrp7ZuOg==" + "version": "10.17.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.21.tgz", + "integrity": "sha512-PQKsydPxYxF1DsAFWmunaxd3sOi3iMt6Zmx/tgaagHYmwJ/9cRH91hQkeJZaUGWbvn0K5HlSVEXkn5U/llWPpQ==" }, "@types/request": { "version": "2.48.4", diff --git a/package.json b/package.json index 8e1bd5e71..f181f49bf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iobroker.javascript", - "version": "4.6.11", + "version": "4.6.12", "description": "Javascript/Coffescript Script Engine for ioBroker", "author": "bluefox ", "contributors": [ diff --git a/src/public/google-blockly/own/blocks_timeout.js b/src/public/google-blockly/own/blocks_timeout.js index eeef6b915..9dac70196 100644 --- a/src/public/google-blockly/own/blocks_timeout.js +++ b/src/public/google-blockly/own/blocks_timeout.js @@ -131,7 +131,7 @@ Blockly.Blocks['timeouts_settimeout'] = { }, getVarModels: function () { var name = this.getFieldValue('NAME'); - return [{getId: function () {return name;}, type: 'timeout', name: name}]; + return [{getId: function () {return name;}, name: name, type: 'timeout'}]; } }; @@ -251,7 +251,7 @@ Blockly.Blocks['timeouts_setinterval'] = { }, getVarModels: function () { var name = this.getFieldValue('NAME'); - return [{getId: function () {return name;}, type: 'interval', name: name}]; + return [{getId: function () {return name;}, name: name, type: 'interval'}]; } }; diff --git a/src/public/google-blockly/own/blocks_trigger.js b/src/public/google-blockly/own/blocks_trigger.js index 0f2eae4df..2263b9e50 100644 --- a/src/public/google-blockly/own/blocks_trigger.js +++ b/src/public/google-blockly/own/blocks_trigger.js @@ -649,7 +649,7 @@ Blockly.Blocks['schedule_create'] = { }, getVarModels: function () { var name = this.getFieldValue('NAME'); - return [{getId: function () {return name}, name: name}]; + return [{getId: function () {return name;}, name: name, type: 'cron'}]; } }; @@ -672,7 +672,17 @@ Blockly.Trigger.getAllSchedules = function (workspace) { result.push([blocks[i].getFieldValue('NAME'), blocks[i].getFieldValue('NAME')]); } } - if (!result.length) result.push(['', '']); + + // BF(2020.05.16): for back compatibility. Remove it after 5 years + if (window.scripts.loading) { + var variables = workspace.getVariablesOfType(''); + variables.forEach(v => !result.find(it => it[0] === v.name) && result.push([v.name, v.name])); + } + + var variables1 = workspace.getVariablesOfType('cron'); + variables1.forEach(v => !result.find(it => it[0] === v.name) && result.push([v.name, v.name])); + + !result.length && result.push(['', '']); return result; };