From 66bd1feb47b7b4fc2982a6daef21ee39fce772f9 Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Fri, 6 Dec 2024 13:45:48 +0000 Subject: [PATCH] Apply suggestions from code review Co-authored-by: Gauthier Dandele <92022724+GogoVega@users.noreply.github.com> --- .../node_modules/@node-red/editor-client/src/js/history.js | 6 ++++++ .../@node-red/editor-client/src/js/ui/editor.js | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/packages/node_modules/@node-red/editor-client/src/js/history.js b/packages/node_modules/@node-red/editor-client/src/js/history.js index 73193e5df..d4fbc5102 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/history.js +++ b/packages/node_modules/@node-red/editor-client/src/js/history.js @@ -492,8 +492,14 @@ RED.history = (function() { }); } if (i === "credentials" && ev.changes[i]) { + // Reset - Only want to keep the changes + inverseEv.changes[i] = {}; for (const [key, value] of Object.entries(ev.changes[i])) { + inverseEv.changes[i][key] = ev.node.credentials[key]; ev.node.credentials[key] = value; + if (ev.node._def.credentials[key]?.type === 'password') { + ev.node.credentials['has_' + key] = !!value; + } } } else { ev.node[i] = ev.changes[i]; diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/editor.js b/packages/node_modules/@node-red/editor-client/src/js/ui/editor.js index 1ee73c6ea..bb4457f8c 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/editor.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/editor.js @@ -855,6 +855,12 @@ RED.editor = (function() { for (const prop in editing_node._def.credentials) { if (Object.prototype.hasOwnProperty.call(editing_node._def.credentials, prop)) { if (oldCreds[prop] !== editing_node.credentials[prop]) { + if (editing_node.credentials[prop] === '__PWRD__') { + // The password may not exist in oldCreds + // The value '__PWRD__' means the password exists, + // so ignore this change + continue; + } editState.changes.credentials = editState.changes.credentials || {}; editState.changes.credentials[prop] = oldCreds[prop]; editState.changed = true;