From 8df630a2f556012db512bfaece4e936ee405930a Mon Sep 17 00:00:00 2001 From: Kazuhito Yokoi Date: Fri, 17 Dec 2021 19:37:29 +0900 Subject: [PATCH 01/48] Fix hide button icon in tour guide --- .../node_modules/@node-red/editor-client/src/tours/welcome.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/node_modules/@node-red/editor-client/src/tours/welcome.js b/packages/node_modules/@node-red/editor-client/src/tours/welcome.js index 367a75899..8a4565bab 100644 --- a/packages/node_modules/@node-red/editor-client/src/tours/welcome.js +++ b/packages/node_modules/@node-red/editor-client/src/tours/welcome.js @@ -73,8 +73,8 @@ export default { }, element: "#red-ui-workspace-tabs > li.active", description: { - "en-US": '

Tabs can now be hidden by clicking their icon.

The Info Sidebar will still list all of your tabs, and tell you which ones are currently hidden.', - "ja": '

アイコンをクリックすることで、タブを非表示にできます。

情報サイドバーには、全てのタブが一覧表示されており、現在非表示になっているタブを確認できます。' + "en-US": '

Tabs can now be hidden by clicking their icon.

The Info Sidebar will still list all of your tabs, and tell you which ones are currently hidden.', + "ja": '

アイコンをクリックすることで、タブを非表示にできます。

情報サイドバーには、全てのタブが一覧表示されており、現在非表示になっているタブを確認できます。' }, interactive: false, prepare() { From 91cb6ba73b521c1334b6559dc69ee165f34cb931 Mon Sep 17 00:00:00 2001 From: Kazuhito Yokoi Date: Mon, 20 Dec 2021 18:34:41 +0900 Subject: [PATCH 02/48] Add Japanese translations for hidden flow (#3302) --- .../@node-red/editor-client/locales/ja/editor.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 6436c0518..17054c0d3 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 @@ -59,6 +59,8 @@ "hideOtherFlows": "他のフローを非表示", "showAllFlows": "全てのフローを表示", "hideAllFlows": "全てのフローを非表示", + "hiddenFlows": "__count__ 個の非表示のフロー一覧", + "hiddenFlows_plural": "__count__ 個の非表示のフロー一覧", "showLastHiddenFlow": "最後に非表示にしたフローを表示", "listFlows": "フロー一覧", "listSubflows": "サブフロー一覧", @@ -669,7 +671,8 @@ "unusedConfigNodes": "未使用の設定ノード", "invalidNodes": "不正なノード", "uknownNodes": "未知のノード", - "unusedSubflows": "未使用のサブフロー" + "unusedSubflows": "未使用のサブフロー", + "hiddenFlows": "非表示のフロー" } }, "help": { From 0dbc35c2520d2001869b69f2415b6d00bc8d97ee Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Mon, 27 Dec 2021 11:55:10 +0000 Subject: [PATCH 03/48] Update Function to use correct api to access env vars Fixes #3299 --- .../node_modules/@node-red/nodes/core/function/10-function.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/node_modules/@node-red/nodes/core/function/10-function.js b/packages/node_modules/@node-red/nodes/core/function/10-function.js index 4ce966e9d..d948b80f5 100644 --- a/packages/node_modules/@node-red/nodes/core/function/10-function.js +++ b/packages/node_modules/@node-red/nodes/core/function/10-function.js @@ -234,8 +234,7 @@ module.exports = function(RED) { }, env: { get: function(envVar) { - var flow = node._flow; - return flow.getSetting(envVar); + return RED.util.getSetting(node, envVar); } }, setTimeout: function () { From 9af7357ca41f68b73046c1a69dde1af2de1090eb Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Mon, 27 Dec 2021 12:03:18 +0000 Subject: [PATCH 04/48] Avoid adding empty env properties to tabs/groups Fixes #3306 --- .../editor-client/src/js/ui/editors/panes/envVarProperties.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/editors/panes/envVarProperties.js b/packages/node_modules/@node-red/editor-client/src/js/ui/editors/panes/envVarProperties.js index fb1d89b3f..b004662be 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/editors/panes/envVarProperties.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/editors/panes/envVarProperties.js @@ -55,7 +55,9 @@ } }); } - if (!isSameObj(old_env, new_env)) { + if (!old_env && new_env.length === 0) { + delete node.env; + } else if (!isSameObj(old_env, new_env)) { editState.changes.env = node.env; if (new_env.length === 0) { delete node.env; From ebd62a4112d17dc6a1cc367990c4b100946d1586 Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Tue, 28 Dec 2021 10:29:42 +0000 Subject: [PATCH 05/48] Fix storing hidden tab state when not hidden via action Fixes #3305 --- .../editor-client/src/js/ui/workspaces.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js index 0082b7aed..46835a032 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/workspaces.js @@ -208,10 +208,20 @@ RED.workspaces = (function() { }, onhide: function(tab) { hideStack.push(tab.id); + + var hiddenTabs = JSON.parse(RED.settings.getLocal("hiddenTabs")||"{}"); + hiddenTabs[tab.id] = true; + RED.settings.setLocal("hiddenTabs",JSON.stringify(hiddenTabs)); + RED.events.emit("workspace:hide",{workspace: tab.id}) }, onshow: function(tab) { removeFromHideStack(tab.id); + + var hiddenTabs = JSON.parse(RED.settings.getLocal("hiddenTabs")||"{}"); + delete hiddenTabs[tab.id]; + RED.settings.setLocal("hiddenTabs",JSON.stringify(hiddenTabs)); + RED.events.emit("workspace:show",{workspace: tab.id}) }, minimumActiveTabWidth: 150, @@ -542,9 +552,6 @@ RED.workspaces = (function() { } if (workspace_tabs.contains(id)) { workspace_tabs.hideTab(id); - var hiddenTabs = JSON.parse(RED.settings.getLocal("hiddenTabs")||"{}"); - hiddenTabs[id] = true; - RED.settings.setLocal("hiddenTabs",JSON.stringify(hiddenTabs)); } }, isHidden: function(id) { @@ -572,9 +579,6 @@ RED.workspaces = (function() { } workspace_tabs.activateTab(id); } - var hiddenTabs = JSON.parse(RED.settings.getLocal("hiddenTabs")||"{}"); - delete hiddenTabs[id]; - RED.settings.setLocal("hiddenTabs",JSON.stringify(hiddenTabs)); }, refresh: function() { RED.nodes.eachWorkspace(function(ws) { From cf19d7f3ad58aa2829bedc42ebc69542c975ffde Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Mon, 3 Jan 2022 21:19:48 +0000 Subject: [PATCH 06/48] Fix findPreviousVisibleTab action Fixes #3320 --- .../@node-red/editor-client/src/js/ui/common/tabs.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/common/tabs.js b/packages/node_modules/@node-red/editor-client/src/js/ui/common/tabs.js index d1e6a39d2..82adb2ed3 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/common/tabs.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/common/tabs.js @@ -578,7 +578,7 @@ RED.tabs = (function() { function findPreviousVisibleTab(li) { if (!li) { - li = ul.find("li.active").parent(); + li = ul.find("li.active"); } var previous = li.prev(); while(previous.length > 0 && previous.hasClass("hide-tab")) { @@ -588,9 +588,9 @@ RED.tabs = (function() { } function findNextVisibleTab(li) { if (!li) { - li = ul.find("li.active").parent(); + li = ul.find("li.active"); } - var next = ul.find("li.active").next(); + var next = li.next(); while(next.length > 0 && next.hasClass("hide-tab")) { next = next.next(); } From 942b17b8071e315c2bbfc196e8b9b67aed5e14ce Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Mon, 3 Jan 2022 21:51:49 +0000 Subject: [PATCH 07/48] Fix incorrect clearing of blank payload property in Inject node Fixes #3316 --- .../node_modules/@node-red/nodes/core/common/20-inject.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/node_modules/@node-red/nodes/core/common/20-inject.html b/packages/node_modules/@node-red/nodes/core/common/20-inject.html index 2cbf274ce..a5dcb061a 100644 --- a/packages/node_modules/@node-red/nodes/core/common/20-inject.html +++ b/packages/node_modules/@node-red/nodes/core/common/20-inject.html @@ -690,9 +690,9 @@ this.topic = ""; var result = getProps(items, true); this.props = result.props; - if(result.payloadType) { this.payloadType = result.payloadType; }; - if(result.payload) { this.payload = result.payload; }; - if(result.topic) { this.topic = result.topic; }; + if(result.hasOwnProperty('payloadType')) { this.payloadType = result.payloadType; }; + if(result.hasOwnProperty('payload')) { this.payload = result.payload; }; + if(result.hasOwnProperty('topic')) { this.topic = result.topic; }; }, button: { enabled: function() { From 44616c6872ffe23220e48a33e822a94da7241679 Mon Sep 17 00:00:00 2001 From: Ben Hardill Date: Wed, 5 Jan 2022 20:56:46 +0000 Subject: [PATCH 08/48] Fix basic auth with empty username or password fix for #3324 --- .../node_modules/@node-red/nodes/core/network/21-httprequest.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/node_modules/@node-red/nodes/core/network/21-httprequest.js b/packages/node_modules/@node-red/nodes/core/network/21-httprequest.js index e9bf49d68..f5054eb81 100644 --- a/packages/node_modules/@node-red/nodes/core/network/21-httprequest.js +++ b/packages/node_modules/@node-red/nodes/core/network/21-httprequest.js @@ -302,6 +302,8 @@ in your Node-RED user directory (${RED.settings.userDir}). // var cred = "" if (this.credentials.user || this.credentials.password) { // cred = `${this.credentials.user}:${this.credentials.password}`; + if (this.credentials.user === undefined) { this.credentials.user = ""} + if (this.credentials.password === undefined) { this.credentials.password = ""} opts.headers.Authorization = "Basic " + Buffer.from(`${this.credentials.user}:${this.credentials.password}`).toString("base64"); } // build own basic auth header From b00282590d728ad20c5a0fba1ff5fcf9abb9b038 Mon Sep 17 00:00:00 2001 From: Kazuhito Yokoi Date: Fri, 7 Jan 2022 09:27:01 +0900 Subject: [PATCH 09/48] Fix copy buttons on the debug window --- .../@node-red/editor-client/src/js/ui/clipboard.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) 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 b38017c60..626ada7e5 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 @@ -940,6 +940,7 @@ RED.clipboard = (function() { if (truncated) { msg += "_truncated"; } + var clipboardHidden = $('