From 9f006fdff308610379d2982d5a7584c60eb51230 Mon Sep 17 00:00:00 2001 From: stefan-hoehn Date: Fri, 8 Mar 2024 18:55:24 +0100 Subject: [PATCH] [blockly] Add undefined block (#2465) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds the undefined block as discussed at https://community.openhab.org/t/blockly-proposal-to-change-contextual-info-blocks/154403. Signed-off-by: Stefan Höhn --- .../definitions/blockly/blocks-logic.js | 30 +++++++++++++++++++ .../src/assets/definitions/blockly/index.js | 2 ++ .../config/controls/blockly-editor.vue | 1 + 3 files changed, 33 insertions(+) create mode 100644 bundles/org.openhab.ui/web/src/assets/definitions/blockly/blocks-logic.js diff --git a/bundles/org.openhab.ui/web/src/assets/definitions/blockly/blocks-logic.js b/bundles/org.openhab.ui/web/src/assets/definitions/blockly/blocks-logic.js new file mode 100644 index 000000000..6d724251c --- /dev/null +++ b/bundles/org.openhab.ui/web/src/assets/definitions/blockly/blocks-logic.js @@ -0,0 +1,30 @@ +/* +* Adds new blocks to the logic section +*/ + +import Blockly from 'blockly' +import { javascriptGenerator } from 'blockly/javascript.js' + +export default function (f7, isGraalJs) { + /* +* Add a block returning undefined +* Blockly part +*/ + Blockly.Blocks['oh_logic_undefined'] = { + init: function () { + this.appendDummyInput() + .appendField('undefined') + this.setOutput(true, null) + this.setColour('%{BKY_LOGIC_HUE}') + this.setTooltip('returns undefined as value') + } + } + + /* + * returns undefined + * Code part + */ + javascriptGenerator.forBlock['oh_logic_undefined'] = function (block) { + return ['undefined', javascriptGenerator.ORDER_ATOMIC] + } +} diff --git a/bundles/org.openhab.ui/web/src/assets/definitions/blockly/index.js b/bundles/org.openhab.ui/web/src/assets/definitions/blockly/index.js index f25b77bcf..bbd3cd141 100644 --- a/bundles/org.openhab.ui/web/src/assets/definitions/blockly/index.js +++ b/bundles/org.openhab.ui/web/src/assets/definitions/blockly/index.js @@ -18,6 +18,7 @@ import defineUomBlocks from './blocks-uom.js' import defineMetaBlocks from './blocks-metadata.js' import defineMathBlocks from './blocks-math.js' import defineHttpBlocks from './blocks-http.js' +import defineLogicBlocks from './blocks-logic.js' import { defineLibraries } from './libraries.js' @@ -44,5 +45,6 @@ export default function (f7, libraryDefinitions, data, isGraalJs) { defineMathBlocks(f7, isGraalJs) defineMetaBlocks(f7, isGraalJs) defineHttpBlocks(f7, isGraalJs) + defineLogicBlocks(f7, isGraalJs) defineLibraries(libraryDefinitions) } diff --git a/bundles/org.openhab.ui/web/src/components/config/controls/blockly-editor.vue b/bundles/org.openhab.ui/web/src/components/config/controls/blockly-editor.vue index bb47ee345..0e7ee46c5 100644 --- a/bundles/org.openhab.ui/web/src/components/config/controls/blockly-editor.vue +++ b/bundles/org.openhab.ui/web/src/components/config/controls/blockly-editor.vue @@ -10,6 +10,7 @@ +