diff --git a/packages/node_modules/@node-red/editor-client/locales/ja/editor.json b/packages/node_modules/@node-red/editor-client/locales/ja/editor.json index b5939cec0..6022b5e81 100644 --- a/packages/node_modules/@node-red/editor-client/locales/ja/editor.json +++ b/packages/node_modules/@node-red/editor-client/locales/ja/editor.json @@ -491,6 +491,7 @@ "unassigned": "未割当", "global": "グローバル", "workspace": "ワークスペース", + "editor": "編集ダイアログ", "selectAll": "全てのノードを選択", "selectNone": "選択を外す", "selectAllConnected": "接続されたノードを選択", diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/clipboard.js b/packages/node_modules/@node-red/editor-client/src/js/ui/clipboard.js index f547203d4..af82f1b14 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/clipboard.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/clipboard.js @@ -37,13 +37,13 @@ RED.clipboard = (function() { // IE11 workaround // IE does not support data uri scheme for downloading data var blob = new Blob([data], { - type: "data:text/plain;charset=utf-8" + type: "data:application/json;charset=utf-8" }); navigator.msSaveBlob(blob, file); } else { var element = document.createElement('a'); - element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(data)); + element.setAttribute('href', 'data:application/json;charset=utf-8,' + encodeURIComponent(data)); element.setAttribute('download', file); element.style.display = 'none'; document.body.appendChild(element); diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js index 4131f5dbf..84bf02332 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js @@ -2646,6 +2646,16 @@ RED.view = (function() { var result = RED.nodes.removeJunction(node) removedJunctions.push(node); removedLinks = removedLinks.concat(result.links); + if (node.g) { + var group = RED.nodes.group(node.g); + if (selectedGroups.indexOf(group) === -1) { + // Don't use RED.group.removeFromGroup as that emits + // a change event on the node - but we're deleting it + var index = group.nodes.indexOf(node); + group.nodes.splice(index,1); + RED.group.markDirty(group); + } + } } else { if (node.direction === "out") { removedSubflowOutputs.push(node); diff --git a/packages/node_modules/@node-red/nodes/core/function/rbe.js b/packages/node_modules/@node-red/nodes/core/function/rbe.js index eb526a441..34a8e91ed 100644 --- a/packages/node_modules/@node-red/nodes/core/function/rbe.js +++ b/packages/node_modules/@node-red/nodes/core/function/rbe.js @@ -35,7 +35,11 @@ module.exports = function(RED) { } else { node.previous = {}; } } - var value = RED.util.getMessageProperty(msg,node.property); + var value; + try { + value = RED.util.getMessageProperty(msg,node.property); + } + catch(e) { } if (value !== undefined) { var t = "_no_topic"; if (node.septopics) { t = topic || t; } diff --git a/packages/node_modules/@node-red/nodes/core/network/10-mqtt.js b/packages/node_modules/@node-red/nodes/core/network/10-mqtt.js index 0a7ed6dfa..f4fc9ad2c 100644 --- a/packages/node_modules/@node-red/nodes/core/network/10-mqtt.js +++ b/packages/node_modules/@node-red/nodes/core/network/10-mqtt.js @@ -697,7 +697,8 @@ module.exports = function(RED) { node.options.rejectUnauthorized = (node.verifyservercert == "true" || node.verifyservercert === true); } } - + node.v5 = () => node.options && node.options.protocolVersion == 5 + node.subscriptionIdentifiersAvailable = () => node.v5() && node.serverProperties && node.serverProperties.subscriptionIdentifiersAvailable n.autoConnect = n.autoConnect === "false" || n.autoConnect === false ? false : true; node.setOptions(n, true); @@ -920,7 +921,12 @@ module.exports = function(RED) { }; node.subscriptions[topic][ref] = sub; if (node.connected) { + const subIdsAvailable = node.subscriptionIdentifiersAvailable() node._clientOn('message',sub.handler); + // if the broker doesn't support subscription identifiers (e.g. AWS core), then don't send them + if (options.properties && options.properties.subscriptionIdentifier && subIdsAvailable !== true) { + delete options.properties.subscriptionIdentifier + } node.client.subscribe(topic, options); } }; diff --git a/test/nodes/core/common/20-inject_spec.js b/test/nodes/core/common/20-inject_spec.js index a4dbdd9e4..3e9a35391 100644 --- a/test/nodes/core/common/20-inject_spec.js +++ b/test/nodes/core/common/20-inject_spec.js @@ -854,7 +854,7 @@ describe('inject node', function() { }); n1.on("call:error", function(err) { count++; - if (count == 2) { + if (count == 1) { done(); } });