Compare commits

...

8 Commits

Author SHA1 Message Date
Nick O'Leary
bdf68311b4 Bump for 0.20.1 2019-03-15 11:22:01 +00:00
Nick O'Leary
afa69f4c0e Ensure all subflow instances are stopped when flow stopping
Fixes #2095
2019-03-15 09:13:32 +00:00
Nick O'Leary
6fe2b24592 Merge pull request #2091 from node-red-hitachi/korean
modify name of korean locale folders
2019-03-14 15:25:52 +00:00
李赫柱
7442b356e3 modify name of korean locale forders 2019-03-14 09:53:24 +09:00
Nick O'Leary
1d7be6457f Ensure node names are sanitized before being presented 2019-03-13 16:08:11 +00:00
Nick O'Leary
c9ff05ba80 Subflow status node must pass status to parent flow
Fixes #2087
2019-03-13 13:14:34 +00:00
Nick O'Leary
faae184f1c Merge pull request #2090 from node-red-hitachi/fix-file-node-encoding-menu
Fix problem on displaying option label on Firefox
2019-03-13 10:46:23 +00:00
Hiroyasu Nishiyama
515a8a9bbb fix problem on displaying option label on Firefox 2019-03-13 19:17:32 +09:00
19 changed files with 52 additions and 40 deletions

View File

@@ -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

View File

@@ -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",

View File

@@ -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",

View File

@@ -1,6 +1,6 @@
{
"name": "@node-red/editor-client",
"version": "0.20.0",
"version": "0.20.1",
"license": "Apache-2.0",
"repository": {
"type": "git",

View File

@@ -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__;
});

View File

@@ -78,6 +78,8 @@ RED.palette = (function() {
var lineHeight = 20;
var portHeight = 10;
label = RED.utils.sanitize(label);
var words = label.split(/[ -]/);
var displayLines = [];

View File

@@ -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);
}
}
}

View File

@@ -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);

View File

@@ -1,6 +1,6 @@
{
"name": "@node-red/nodes",
"version": "0.20.0",
"version": "0.20.1",
"license": "Apache-2.0",
"repository": {
"type": "git",

View File

@@ -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"

View File

@@ -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);
}

View File

@@ -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) {

View File

@@ -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",

View File

@@ -1,6 +1,6 @@
{
"name": "@node-red/util",
"version": "0.20.0",
"version": "0.20.1",
"license": "Apache-2.0",
"repository": {
"type": "git",

View File

@@ -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",