mirror of
https://github.com/node-red/node-red.git
synced 2025-03-01 10:36:34 +00:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bdf68311b4 | ||
|
|
afa69f4c0e | ||
|
|
6fe2b24592 | ||
|
|
7442b356e3 | ||
|
|
1d7be6457f | ||
|
|
c9ff05ba80 | ||
|
|
faae184f1c | ||
|
|
515a8a9bbb |
@@ -1,3 +1,11 @@
|
||||
#### 0.20.1: Maintenance Release
|
||||
|
||||
- Ensure all subflow instances are stopped when flow stopping Fixes #2095
|
||||
- modify name of korean locale forders #2091
|
||||
- Ensure node names are sanitized before being presented
|
||||
- Subflow status node must pass status to parent flow Fixes #2087
|
||||
- fix problem on displaying option label on Firefox #2090
|
||||
|
||||
#### 0.20.0: Milestone Release
|
||||
|
||||
Runtime
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "node-red",
|
||||
"version": "0.20.0",
|
||||
"version": "0.20.1",
|
||||
"description": "A visual tool for wiring the Internet of Things",
|
||||
"homepage": "http://nodered.org",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@node-red/editor-api",
|
||||
"version": "0.20.0",
|
||||
"version": "0.20.1",
|
||||
"license": "Apache-2.0",
|
||||
"main": "./lib/index.js",
|
||||
"repository": {
|
||||
@@ -16,8 +16,8 @@
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"@node-red/util": "0.20.0",
|
||||
"@node-red/editor-client": "0.20.0",
|
||||
"@node-red/util": "0.20.1",
|
||||
"@node-red/editor-client": "0.20.1",
|
||||
"bcryptjs": "2.4.3",
|
||||
"body-parser": "1.18.3",
|
||||
"clone": "2.1.2",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@node-red/editor-client",
|
||||
"version": "0.20.0",
|
||||
"version": "0.20.1",
|
||||
"license": "Apache-2.0",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
@@ -498,7 +498,6 @@ RED.editor = (function() {
|
||||
}
|
||||
|
||||
function getEditStackTitle() {
|
||||
var title = '<ul class="editor-tray-breadcrumbs">';
|
||||
var label;
|
||||
for (var i=editStack.length-1;i<editStack.length;i++) {
|
||||
var node = editStack[i];
|
||||
@@ -514,29 +513,27 @@ RED.editor = (function() {
|
||||
} else if (node.type === '_buffer') {
|
||||
label = RED._("bufferEditor.title");
|
||||
} else if (node.type === 'subflow') {
|
||||
label = RED._("subflow.editSubflow",{name:node.name})
|
||||
label = RED._("subflow.editSubflow",{name:RED.utils.sanitize(node.name)})
|
||||
} else if (node.type.indexOf("subflow:")===0) {
|
||||
var subflow = RED.nodes.subflow(node.type.substring(8));
|
||||
label = RED._("subflow.editSubflowInstance",{name:subflow.name})
|
||||
label = RED._("subflow.editSubflowInstance",{name:RED.utils.sanitize(subflow.name)})
|
||||
} else {
|
||||
if (typeof node._def.paletteLabel !== "undefined") {
|
||||
try {
|
||||
label = (typeof node._def.paletteLabel === "function" ? node._def.paletteLabel.call(node._def) : node._def.paletteLabel)||"";
|
||||
label = RED.utils.sanitize((typeof node._def.paletteLabel === "function" ? node._def.paletteLabel.call(node._def) : node._def.paletteLabel)||"");
|
||||
} catch(err) {
|
||||
console.log("Definition error: "+node.type+".paletteLabel",err);
|
||||
}
|
||||
}
|
||||
if (i === editStack.length-1) {
|
||||
if (RED.nodes.node(node.id)) {
|
||||
label = RED._("editor.editNode",{type:label});
|
||||
label = RED._("editor.editNode",{type:RED.utils.sanitize(label)});
|
||||
} else {
|
||||
label = RED._("editor.addNewConfig",{type:label});
|
||||
label = RED._("editor.addNewConfig",{type:RED.utils.sanitize(label)});
|
||||
}
|
||||
}
|
||||
}
|
||||
title += '<li>'+label+'</li>';
|
||||
}
|
||||
title += '</ul>';
|
||||
return label;
|
||||
}
|
||||
|
||||
@@ -1738,7 +1735,7 @@ RED.editor = (function() {
|
||||
if (nodeUserFlows[ws.id]) {
|
||||
workspaceLabel = "* "+workspaceLabel;
|
||||
}
|
||||
tabSelect.append('<option value="'+ws.id+'"'+(ws.id==editing_config_node.z?" selected":"")+'>'+workspaceLabel+'</option>');
|
||||
$('<option value="'+ws.id+'"'+(ws.id==editing_config_node.z?" selected":"")+'></option>').text(workspaceLabel).appendTo(tabSelect);
|
||||
});
|
||||
tabSelect.append('<option disabled data-i18n="sidebar.config.subflows"></option>');
|
||||
RED.nodes.eachSubflow(function(ws) {
|
||||
@@ -1746,7 +1743,7 @@ RED.editor = (function() {
|
||||
if (nodeUserFlows[ws.id]) {
|
||||
workspaceLabel = "* "+workspaceLabel;
|
||||
}
|
||||
tabSelect.append('<option value="'+ws.id+'"'+(ws.id==editing_config_node.z?" selected":"")+'>'+workspaceLabel+'</option>');
|
||||
$('<option value="'+ws.id+'"'+(ws.id==editing_config_node.z?" selected":"")+'></option>').text(workspaceLabel).appendTo(tabSelect);
|
||||
});
|
||||
if (flowCount > 0) {
|
||||
tabSelect.on('change',function() {
|
||||
@@ -2067,7 +2064,7 @@ RED.editor = (function() {
|
||||
}
|
||||
|
||||
configNodes.forEach(function(cn) {
|
||||
select.append('<option value="'+cn.id+'"'+(value==cn.id?" selected":"")+'>'+RED.text.bidi.enforceTextDirectionWithUCC(cn.__label__)+'</option>');
|
||||
$('<option value="'+cn.id+'"'+(value==cn.id?" selected":"")+'></option>').text(RED.text.bidi.enforceTextDirectionWithUCC(cn.__label__)).appendTo(select);
|
||||
delete cn.__label__;
|
||||
});
|
||||
|
||||
|
||||
@@ -78,6 +78,8 @@ RED.palette = (function() {
|
||||
var lineHeight = 20;
|
||||
var portHeight = 10;
|
||||
|
||||
label = RED.utils.sanitize(label);
|
||||
|
||||
var words = label.split(/[ -]/);
|
||||
|
||||
var displayLines = [];
|
||||
|
||||
@@ -294,7 +294,7 @@ RED.sidebar.info = (function() {
|
||||
if (node.type !== 'tab') {
|
||||
if (m) {
|
||||
$('<tr class="blank"><th colspan="2">'+RED._("sidebar.info.subflow")+'</th></tr>').appendTo(tableBody);
|
||||
$('<tr class="node-info-subflow-row"><td>'+RED._("common.label.name")+'</td><td><span class="bidiAware" dir=\"'+RED.text.bidi.resolveBaseTextDir(subflowNode.name)+'">'+subflowNode.name+'</span></td></tr>').appendTo(tableBody);
|
||||
$('<tr class="node-info-subflow-row"><td>'+RED._("common.label.name")+'</td><td><span class="bidiAware" dir=\"'+RED.text.bidi.resolveBaseTextDir(subflowNode.name)+'">'+RED.utils.sanitize(subflowNode.name)+'</span></td></tr>').appendTo(tableBody);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -219,10 +219,11 @@
|
||||
oneditprepare: function() {
|
||||
var node = this;
|
||||
var encSel = $("#node-input-encoding");
|
||||
var label = node._("file.encoding.none");
|
||||
$("<option/>", {
|
||||
value: "none",
|
||||
label: node._("file.encoding.none")
|
||||
}).appendTo(encSel);
|
||||
label: label
|
||||
}).text(label).appendTo(encSel);
|
||||
encodings.forEach(function(item) {
|
||||
if(Array.isArray(item)) {
|
||||
var group = $("<optgroup/>", {
|
||||
@@ -233,14 +234,14 @@
|
||||
$("<option/>", {
|
||||
value: enc,
|
||||
label: enc
|
||||
}).appendTo(group);
|
||||
}).text(enc).appendTo(group);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$("<option/>", {
|
||||
value: item,
|
||||
label: item
|
||||
}).appendTo(encSel);
|
||||
}).text(item).appendTo(encSel);
|
||||
}
|
||||
});
|
||||
encSel.val(node.encoding);
|
||||
@@ -277,10 +278,11 @@
|
||||
oneditprepare: function() {
|
||||
var node = this;
|
||||
var encSel = $("#node-input-encoding");
|
||||
var label = node._("file.encoding.none");
|
||||
$("<option/>", {
|
||||
value: "none",
|
||||
label: node._("file.encoding.none")
|
||||
}).appendTo(encSel);
|
||||
label: label
|
||||
}).text(label).appendTo(encSel);
|
||||
encodings.forEach(function(item) {
|
||||
if(Array.isArray(item)) {
|
||||
var group = $("<optgroup/>", {
|
||||
@@ -291,14 +293,14 @@
|
||||
$("<option/>", {
|
||||
value: enc,
|
||||
label: enc
|
||||
}).appendTo(group);
|
||||
}).text(enc).appendTo(group);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$("<option/>", {
|
||||
value: item,
|
||||
label: item
|
||||
}).appendTo(encSel);
|
||||
}).text(item).appendTo(encSel);
|
||||
}
|
||||
});
|
||||
encSel.val(node.encoding);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@node-red/nodes",
|
||||
"version": "0.20.0",
|
||||
"version": "0.20.1",
|
||||
"license": "Apache-2.0",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@node-red/registry",
|
||||
"version": "0.20.0",
|
||||
"version": "0.20.1",
|
||||
"license": "Apache-2.0",
|
||||
"main": "./lib/index.js",
|
||||
"repository": {
|
||||
@@ -16,7 +16,7 @@
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"@node-red/util": "0.20.0",
|
||||
"@node-red/util": "0.20.1",
|
||||
"semver": "5.6.0",
|
||||
"uglify-js": "3.4.9",
|
||||
"when": "3.7.8"
|
||||
|
||||
@@ -247,6 +247,7 @@ class Flow {
|
||||
if (!stopList) {
|
||||
stopList = Object.keys(this.activeNodes);
|
||||
}
|
||||
// this.trace(" stopList: "+stopList.join(","))
|
||||
// Convert the list to a map to avoid multiple scans of the list
|
||||
var removedMap = {};
|
||||
removedList = removedList || [];
|
||||
@@ -261,8 +262,9 @@ class Flow {
|
||||
delete this.activeNodes[stopList[i]];
|
||||
if (this.subflowInstanceNodes[stopList[i]]) {
|
||||
try {
|
||||
var subflow = this.subflowInstanceNodes[stopList[i]];
|
||||
promises.push(stopNode(node,false).then(() => { subflow.stop() }));
|
||||
(function(subflow) {
|
||||
promises.push(stopNode(node,false).then(() => { subflow.stop() }));
|
||||
})(this.subflowInstanceNodes[stopList[i]]);
|
||||
} catch(err) {
|
||||
node.error(err);
|
||||
}
|
||||
|
||||
@@ -165,7 +165,8 @@ class Subflow extends Flow {
|
||||
this.node = new Node(subflowInstanceConfig);
|
||||
this.node.on("input", function(msg) { this.send(msg);});
|
||||
this.node.on("close", function() { this.status({}); })
|
||||
|
||||
this.node.status = status => this.parent.handleStatus(this.node,status);
|
||||
|
||||
this.node._updateWires = this.node.updateWires;
|
||||
|
||||
this.node.updateWires = function(newWires) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@node-red/runtime",
|
||||
"version": "0.20.0",
|
||||
"version": "0.20.1",
|
||||
"license": "Apache-2.0",
|
||||
"main": "./lib/index.js",
|
||||
"repository": {
|
||||
@@ -16,8 +16,8 @@
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"@node-red/registry": "0.20.0",
|
||||
"@node-red/util": "0.20.0",
|
||||
"@node-red/registry": "0.20.1",
|
||||
"@node-red/util": "0.20.1",
|
||||
"clone": "2.1.2",
|
||||
"express": "4.16.4",
|
||||
"fs-extra": "7.0.1",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@node-red/util",
|
||||
"version": "0.20.0",
|
||||
"version": "0.20.1",
|
||||
"license": "Apache-2.0",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
10
packages/node_modules/node-red/package.json
vendored
10
packages/node_modules/node-red/package.json
vendored
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "node-red",
|
||||
"version": "0.20.0",
|
||||
"version": "0.20.1",
|
||||
"description": "A visual tool for wiring the Internet of Things",
|
||||
"homepage": "http://nodered.org",
|
||||
"license": "Apache-2.0",
|
||||
@@ -31,10 +31,10 @@
|
||||
"flow"
|
||||
],
|
||||
"dependencies": {
|
||||
"@node-red/editor-api": "0.20.0",
|
||||
"@node-red/runtime": "0.20.0",
|
||||
"@node-red/util": "0.20.0",
|
||||
"@node-red/nodes": "0.20.0",
|
||||
"@node-red/editor-api": "0.20.1",
|
||||
"@node-red/runtime": "0.20.1",
|
||||
"@node-red/util": "0.20.1",
|
||||
"@node-red/nodes": "0.20.1",
|
||||
"basic-auth": "2.0.1",
|
||||
"bcryptjs": "2.4.3",
|
||||
"express": "4.16.4",
|
||||
|
||||
Reference in New Issue
Block a user