From 77e2e44abcfbc5b2fdfbe3e311a15dabcc06bf81 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Thu, 31 Mar 2022 13:45:07 +0100 Subject: [PATCH 01/11] Fix markdown editor to mark up orderedlists correctly to close #3513 --- .../@node-red/editor-client/src/js/ui/editors/markdown.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/editors/markdown.js b/packages/node_modules/@node-red/editor-client/src/js/ui/editors/markdown.js index f89c8f3a7..e0f670c59 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/editors/markdown.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/editors/markdown.js @@ -168,7 +168,7 @@ 'b': { before:"**", after: "**", tooltip: RED._("markdownEditor.bold")}, 'i': { before:"_", after: "_", tooltip: RED._("markdownEditor.italic")}, 'code': { before:"`", after: "`", tooltip: RED._("markdownEditor.code")}, - 'ol': { before:" * ", newline: true, tooltip: RED._("markdownEditor.ordered-list")}, + 'ol': { before:" 1. ", newline: true, tooltip: RED._("markdownEditor.ordered-list")}, 'ul': { before:" - ", newline: true, tooltip: RED._("markdownEditor.unordered-list")}, 'bq': { before:"> ", newline: true, tooltip: RED._("markdownEditor.quote")}, 'link': { before:"[", after: "]()", tooltip: RED._("markdownEditor.link")}, From 6d0b55f75327974efe9665e119172c5a2aa60903 Mon Sep 17 00:00:00 2001 From: Steve-Mcl Date: Mon, 4 Apr 2022 16:20:44 +0100 Subject: [PATCH 02/11] Ensure i18n of scoped package name fixes #3452 --- packages/node_modules/@node-red/editor-client/src/js/red.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/red.js b/packages/node_modules/@node-red/editor-client/src/js/red.js index afcdbdb1a..b3995c86a 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/red.js +++ b/packages/node_modules/@node-red/editor-client/src/js/red.js @@ -474,7 +474,7 @@ var RED = (function() { var parts = topic.split("/"); var node = RED.nodes.node(parts[1]); if (node) { - if (msg.hasOwnProperty("text") && msg.text !== null && /^[a-zA-Z]/.test(msg.text)) { + if (msg.hasOwnProperty("text") && msg.text !== null && /^[@a-zA-Z]/.test(msg.text)) { msg.text = node._(msg.text.toString(),{defaultValue:msg.text.toString()}); } node.status = msg; From 780e41d6a6781e9bce84c95dec72920ea0846c85 Mon Sep 17 00:00:00 2001 From: Steve-Mcl Date: Mon, 4 Apr 2022 17:06:29 +0100 Subject: [PATCH 03/11] Prevent shortcut deploy when deploy button shaded fixes #3509 --- .../editor-client/src/js/ui/deploy.js | 395 +++++++++--------- 1 file changed, 199 insertions(+), 196 deletions(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/deploy.js b/packages/node_modules/@node-red/editor-client/src/js/ui/deploy.js index 592075dfd..8be1207cd 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/deploy.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/deploy.js @@ -319,205 +319,208 @@ RED.deploy = (function() { },delta); }); } - function save(skipValidation,force) { - if (!$("#red-ui-header-button-deploy").hasClass("disabled")) { - if (!RED.user.hasPermission("flows.write")) { - RED.notify(RED._("user.errors.deploy"),"error"); + function save(skipValidation, force) { + if ($("#red-ui-header-button-deploy").hasClass("disabled")) { + return; //deploy is disabled + } + if ($("#red-ui-header-shade").is(":visible")) { + return; //deploy is shaded + } + if (!RED.user.hasPermission("flows.write")) { + RED.notify(RED._("user.errors.deploy"), "error"); + return; + } + if (!skipValidation) { + let hasUnknown = false; + let hasInvalid = false; + let hasUnusedConfig = false; + const unknownNodes = []; + const invalidNodes = []; + + RED.nodes.eachConfig(function (node) { + if (node.valid === undefined) { + RED.editor.validateNode(node); + } + if (!node.valid && !node.d) { + invalidNodes.push(getNodeInfo(node)); + } + if (node.type === "unknown") { + if (unknownNodes.indexOf(node.name) == -1) { + unknownNodes.push(node.name); + } + } + }); + RED.nodes.eachNode(function (node) { + if (!node.valid && !node.d) { + invalidNodes.push(getNodeInfo(node)); + } + if (node.type === "unknown") { + if (unknownNodes.indexOf(node.name) == -1) { + unknownNodes.push(node.name); + } + } + }); + hasUnknown = unknownNodes.length > 0; + hasInvalid = invalidNodes.length > 0; + + const unusedConfigNodes = []; + RED.nodes.eachConfig(function (node) { + if ((node._def.hasUsers !== false) && (node.users.length === 0)) { + unusedConfigNodes.push(getNodeInfo(node)); + hasUnusedConfig = true; + } + }); + + let showWarning = false; + let notificationMessage; + let notificationButtons = []; + let notification; + if (hasUnknown && !ignoreDeployWarnings.unknown) { + showWarning = true; + notificationMessage = "

" + RED._('deploy.confirm.unknown') + "

" + + '
  • ' + cropList(unknownNodes).map(function (n) { return sanitize(n) }).join("
  • ") + "

" + + RED._('deploy.confirm.confirm') + + "

"; + + notificationButtons = [ + { + id: "red-ui-deploy-dialog-confirm-deploy-deploy", + text: RED._("deploy.confirm.button.confirm"), + class: "primary", + click: function () { + save(true); + notification.close(); + } + } + ]; + } else if (hasInvalid && !ignoreDeployWarnings.invalid) { + showWarning = true; + invalidNodes.sort(sortNodeInfo); + + notificationMessage = "

" + RED._('deploy.confirm.improperlyConfigured') + "

" + + '
  • ' + cropList(invalidNodes.map(function (A) { return sanitize((A.tab ? "[" + A.tab + "] " : "") + A.label + " (" + A.type + ")") })).join("
  • ") + "

" + + RED._('deploy.confirm.confirm') + + "

"; + notificationButtons = [ + { + id: "red-ui-deploy-dialog-confirm-deploy-deploy", + text: RED._("deploy.confirm.button.confirm"), + class: "primary", + click: function () { + save(true); + notification.close(); + } + } + ]; + } + if (showWarning) { + notificationButtons.unshift( + { + text: RED._("common.label.cancel"), + click: function () { + notification.close(); + } + } + ); + notification = RED.notify(notificationMessage, { + modal: true, + fixed: true, + buttons: notificationButtons + }); return; } - if (!skipValidation) { - var hasUnknown = false; - var hasInvalid = false; - var hasUnusedConfig = false; - - var unknownNodes = []; - var invalidNodes = []; - - RED.nodes.eachConfig(function(node) { - if (node.valid === undefined) { - RED.editor.validateNode(node); - } - if (!node.valid && !node.d) { - invalidNodes.push(getNodeInfo(node)); - } - if (node.type === "unknown") { - if (unknownNodes.indexOf(node.name) == -1) { - unknownNodes.push(node.name); - } - } - }); - RED.nodes.eachNode(function(node) { - if (!node.valid && !node.d) { - invalidNodes.push(getNodeInfo(node)); - } - if (node.type === "unknown") { - if (unknownNodes.indexOf(node.name) == -1) { - unknownNodes.push(node.name); - } - } - }); - hasUnknown = unknownNodes.length > 0; - hasInvalid = invalidNodes.length > 0; - - var unusedConfigNodes = []; - RED.nodes.eachConfig(function(node) { - if ((node._def.hasUsers !== false) && (node.users.length === 0)) { - unusedConfigNodes.push(getNodeInfo(node)); - hasUnusedConfig = true; - } - }); - - var showWarning = false; - var notificationMessage; - var notificationButtons = []; - var notification; - if (hasUnknown && !ignoreDeployWarnings.unknown) { - showWarning = true; - notificationMessage = "

"+RED._('deploy.confirm.unknown')+"

"+ - '
  • '+cropList(unknownNodes).map(function(n) { return sanitize(n) }).join("
  • ")+"

"+ - RED._('deploy.confirm.confirm')+ - "

"; - - notificationButtons= [ - { - id: "red-ui-deploy-dialog-confirm-deploy-deploy", - text: RED._("deploy.confirm.button.confirm"), - class: "primary", - click: function() { - save(true); - notification.close(); - } - } - ]; - } else if (hasInvalid && !ignoreDeployWarnings.invalid) { - showWarning = true; - invalidNodes.sort(sortNodeInfo); - - notificationMessage = "

"+RED._('deploy.confirm.improperlyConfigured')+"

"+ - '
  • '+cropList(invalidNodes.map(function(A) { return sanitize( (A.tab?"["+A.tab+"] ":"")+A.label+" ("+A.type+")")})).join("
  • ")+"

"+ - RED._('deploy.confirm.confirm')+ - "

"; - notificationButtons= [ - { - id: "red-ui-deploy-dialog-confirm-deploy-deploy", - text: RED._("deploy.confirm.button.confirm"), - class: "primary", - click: function() { - save(true); - notification.close(); - } - } - ]; - } - if (showWarning) { - notificationButtons.unshift( - { - text: RED._("common.label.cancel"), - click: function() { - notification.close(); - } - } - ); - notification = RED.notify(notificationMessage,{ - modal: true, - fixed: true, - buttons:notificationButtons - }); - return; - } - } - - var nns = RED.nodes.createCompleteNodeSet(); - - var startTime = Date.now(); - $(".red-ui-deploy-button-content").css('opacity',0); - $(".red-ui-deploy-button-spinner").show(); - $("#red-ui-header-button-deploy").addClass("disabled"); - - var data = {flows:nns}; - - if (!force) { - data.rev = RED.nodes.version(); - } - - deployInflight = true; - $("#red-ui-header-shade").show(); - $("#red-ui-editor-shade").show(); - $("#red-ui-palette-shade").show(); - $("#red-ui-sidebar-shade").show(); - $.ajax({ - url:"flows", - type: "POST", - data: JSON.stringify(data), - contentType: "application/json; charset=utf-8", - headers: { - "Node-RED-Deployment-Type":deploymentType - } - }).done(function(data,textStatus,xhr) { - RED.nodes.dirty(false); - RED.nodes.version(data.rev); - RED.nodes.originalFlow(nns); - if (hasUnusedConfig) { - RED.notify( - '

'+RED._("deploy.successfulDeploy")+'

'+ - '

'+RED._("deploy.unusedConfigNodes")+' '+RED._("deploy.unusedConfigNodesLink")+'

',"success",false,6000); - } else { - RED.notify('

'+RED._("deploy.successfulDeploy")+'

',"success"); - } - RED.nodes.eachNode(function(node) { - if (node.changed) { - node.dirty = true; - node.changed = false; - } - if (node.moved) { - node.dirty = true; - node.moved = false; - } - if(node.credentials) { - delete node.credentials; - } - }); - RED.nodes.eachConfig(function (confNode) { - confNode.changed = false; - if (confNode.credentials) { - delete confNode.credentials; - } - }); - RED.nodes.eachSubflow(function(subflow) { - subflow.changed = false; - }); - RED.nodes.eachWorkspace(function(ws) { - ws.changed = false; - }); - // Once deployed, cannot undo back to a clean state - RED.history.markAllDirty(); - RED.view.redraw(); - RED.events.emit("deploy"); - }).fail(function(xhr,textStatus,err) { - RED.nodes.dirty(true); - $("#red-ui-header-button-deploy").removeClass("disabled"); - if (xhr.status === 401) { - RED.notify(RED._("deploy.deployFailed",{message:RED._("user.notAuthorized")}),"error"); - } else if (xhr.status === 409) { - resolveConflict(nns, true); - } else if (xhr.responseText) { - RED.notify(RED._("deploy.deployFailed",{message:xhr.responseText}),"error"); - } else { - RED.notify(RED._("deploy.deployFailed",{message:RED._("deploy.errors.noResponse")}),"error"); - } - }).always(function() { - deployInflight = false; - var delta = Math.max(0,300-(Date.now()-startTime)); - setTimeout(function() { - $(".red-ui-deploy-button-content").css('opacity',1); - $(".red-ui-deploy-button-spinner").hide(); - $("#red-ui-header-shade").hide(); - $("#red-ui-editor-shade").hide(); - $("#red-ui-palette-shade").hide(); - $("#red-ui-sidebar-shade").hide(); - },delta); - }); } + + const nns = RED.nodes.createCompleteNodeSet(); + const startTime = Date.now(); + + $(".red-ui-deploy-button-content").css('opacity', 0); + $(".red-ui-deploy-button-spinner").show(); + $("#red-ui-header-button-deploy").addClass("disabled"); + + const data = { flows: nns }; + + if (!force) { + data.rev = RED.nodes.version(); + } + + deployInflight = true; + $("#red-ui-header-shade").show(); + $("#red-ui-editor-shade").show(); + $("#red-ui-palette-shade").show(); + $("#red-ui-sidebar-shade").show(); + $.ajax({ + url: "flows", + type: "POST", + data: JSON.stringify(data), + contentType: "application/json; charset=utf-8", + headers: { + "Node-RED-Deployment-Type": deploymentType + } + }).done(function (data, textStatus, xhr) { + RED.nodes.dirty(false); + RED.nodes.version(data.rev); + RED.nodes.originalFlow(nns); + if (hasUnusedConfig) { + RED.notify( + '

' + RED._("deploy.successfulDeploy") + '

' + + '

' + RED._("deploy.unusedConfigNodes") + ' ' + RED._("deploy.unusedConfigNodesLink") + '

', "success", false, 6000); + } else { + RED.notify('

' + RED._("deploy.successfulDeploy") + '

', "success"); + } + RED.nodes.eachNode(function (node) { + if (node.changed) { + node.dirty = true; + node.changed = false; + } + if (node.moved) { + node.dirty = true; + node.moved = false; + } + if (node.credentials) { + delete node.credentials; + } + }); + RED.nodes.eachConfig(function (confNode) { + confNode.changed = false; + if (confNode.credentials) { + delete confNode.credentials; + } + }); + RED.nodes.eachSubflow(function (subflow) { + subflow.changed = false; + }); + RED.nodes.eachWorkspace(function (ws) { + ws.changed = false; + }); + // Once deployed, cannot undo back to a clean state + RED.history.markAllDirty(); + RED.view.redraw(); + RED.events.emit("deploy"); + }).fail(function (xhr, textStatus, err) { + RED.nodes.dirty(true); + $("#red-ui-header-button-deploy").removeClass("disabled"); + if (xhr.status === 401) { + RED.notify(RED._("deploy.deployFailed", { message: RED._("user.notAuthorized") }), "error"); + } else if (xhr.status === 409) { + resolveConflict(nns, true); + } else if (xhr.responseText) { + RED.notify(RED._("deploy.deployFailed", { message: xhr.responseText }), "error"); + } else { + RED.notify(RED._("deploy.deployFailed", { message: RED._("deploy.errors.noResponse") }), "error"); + } + }).always(function () { + deployInflight = false; + const delta = Math.max(0, 300 - (Date.now() - startTime)); + setTimeout(function () { + $(".red-ui-deploy-button-content").css('opacity', 1); + $(".red-ui-deploy-button-spinner").hide(); + $("#red-ui-header-shade").hide(); + $("#red-ui-editor-shade").hide(); + $("#red-ui-palette-shade").hide(); + $("#red-ui-sidebar-shade").hide(); + }, delta); + }); } return { init: init, From 21a0b3364525f0368ea03685b3b6aaf9ce26ec95 Mon Sep 17 00:00:00 2001 From: Steve-Mcl Date: Mon, 11 Apr 2022 13:57:26 +0100 Subject: [PATCH 04/11] correct "non string" check parenthesis fixes #3493 --- packages/node_modules/@node-red/runtime/lib/flows/Flow.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/node_modules/@node-red/runtime/lib/flows/Flow.js b/packages/node_modules/@node-red/runtime/lib/flows/Flow.js index eaf122fd8..b5685d3ec 100644 --- a/packages/node_modules/@node-red/runtime/lib/flows/Flow.js +++ b/packages/node_modules/@node-red/runtime/lib/flows/Flow.js @@ -582,7 +582,7 @@ class Flow { reportingNode = node; } if (!muteStatusEvent) { - if (statusMessage.hasOwnProperty("text") && typeof(statusMessage.text !== "string")) { + if (statusMessage.hasOwnProperty("text") && typeof statusMessage.text !== "string") { try { statusMessage.text = statusMessage.text.toString(); } From 226f45d8d5ab9f55dcdf66a3b24d9300503e8f5b Mon Sep 17 00:00:00 2001 From: Hiroyasu Nishiyama Date: Tue, 12 Apr 2022 11:33:02 +0900 Subject: [PATCH 05/11] fix reference error of msg.status in debug node --- .../node_modules/@node-red/nodes/core/common/21-debug.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/node_modules/@node-red/nodes/core/common/21-debug.js b/packages/node_modules/@node-red/nodes/core/common/21-debug.js index 92fa46967..c4b7c436f 100644 --- a/packages/node_modules/@node-red/nodes/core/common/21-debug.js +++ b/packages/node_modules/@node-red/nodes/core/common/21-debug.js @@ -108,7 +108,9 @@ module.exports = function(RED) { } }) this.on("input", function(msg, send, done) { - if (hasOwnProperty.call(msg, "status") && hasOwnProperty.call(msg.status, "source") && hasOwnProperty.call(msg.status.source, "id") && (msg.status.source.id === node.id)) { + if (hasOwnProperty.call(msg, "status") && msg.status && + hasOwnProperty.call(msg.status, "source") && msg.status.source && + hasOwnProperty.call(msg.status.source, "id") && (msg.status.source.id === node.id)) { done(); return; } @@ -129,7 +131,8 @@ module.exports = function(RED) { fill = "red"; st = msg.error.message; } - if (hasOwnProperty.call(msg, "status")) { + if (hasOwnProperty.call(msg, "status") && + msg.status) { fill = msg.status.fill || "grey"; shape = msg.status.shape || "ring"; st = msg.status.text || ""; From 97678577fbf54260ed81cd306aef9aaf189c9c17 Mon Sep 17 00:00:00 2001 From: Steve-Mcl Date: Thu, 14 Apr 2022 22:07:52 +0100 Subject: [PATCH 06/11] call done after ws disconnects fixes #3527 --- .../nodes/core/network/22-websocket.js | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/packages/node_modules/@node-red/nodes/core/network/22-websocket.js b/packages/node_modules/@node-red/nodes/core/network/22-websocket.js index ed4c93b09..9fa991254 100644 --- a/packages/node_modules/@node-red/nodes/core/network/22-websocket.js +++ b/packages/node_modules/@node-red/nodes/core/network/22-websocket.js @@ -210,7 +210,7 @@ module.exports = function(RED) { startconn(); // start outbound connection } - node.on("close", function() { + node.on("close", function(done) { if (node.heartbeatInterval) { clearInterval(node.heartbeatInterval); } @@ -218,19 +218,27 @@ module.exports = function(RED) { delete listenerNodes[node.fullPath]; node.server.close(); node._inputNodes = []; - activeListenerNodes--; - // if (activeListenerNodes === 0 && serverUpgradeAdded) { - // RED.server.removeListener('upgrade', handleServerUpgrade); - // serverUpgradeAdded = false; - // } } else { node.closing = true; node.server.close(); - if (node.tout) { - clearTimeout(node.tout); - node.tout = null; - } + //wait 20*50 (1000ms max) for ws to close. + //call done when readyState === ws.CLOSED (or 1000ms, whichever comes fist) + const closeMonitorInterval = 20; + let closeMonitorCount = 50; + let si = setInterval(() => { + if(node.server.readyState === ws.CLOSED || closeMonitorCount <= 0) { + if (node.tout) { + clearTimeout(node.tout); + node.tout = null; + } + clearInterval(si); + return done(); + } + closeMonitorCount--; + if(closeMonitorCount <= 0) { + } + }, closeMonitorInterval); } }); } From a2c0e53f8778a9ac47517ff71203085640ba7374 Mon Sep 17 00:00:00 2001 From: Hiroyasu Nishiyama Date: Mon, 18 Apr 2022 08:36:19 +0900 Subject: [PATCH 07/11] fix out of scope reference of hasUnusedConfig variable --- .../node_modules/@node-red/editor-client/src/js/ui/deploy.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/deploy.js b/packages/node_modules/@node-red/editor-client/src/js/ui/deploy.js index 8be1207cd..b40be4b0e 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/deploy.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/deploy.js @@ -330,10 +330,10 @@ RED.deploy = (function() { RED.notify(RED._("user.errors.deploy"), "error"); return; } + let hasUnusedConfig = false; if (!skipValidation) { let hasUnknown = false; let hasInvalid = false; - let hasUnusedConfig = false; const unknownNodes = []; const invalidNodes = []; From 6f89efa40b20f209545d8d210df4f27bdb44b778 Mon Sep 17 00:00:00 2001 From: Stephen McLaughlin <44235289+Steve-Mcl@users.noreply.github.com> Date: Tue, 19 Apr 2022 10:30:08 +0100 Subject: [PATCH 08/11] remove unused if block Co-authored-by: Nick O'Leary --- .../node_modules/@node-red/nodes/core/network/22-websocket.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/node_modules/@node-red/nodes/core/network/22-websocket.js b/packages/node_modules/@node-red/nodes/core/network/22-websocket.js index 9fa991254..08f9884c2 100644 --- a/packages/node_modules/@node-red/nodes/core/network/22-websocket.js +++ b/packages/node_modules/@node-red/nodes/core/network/22-websocket.js @@ -236,8 +236,6 @@ module.exports = function(RED) { return done(); } closeMonitorCount--; - if(closeMonitorCount <= 0) { - } }, closeMonitorInterval); } }); From 8df53e441d419ce26ca53d062a0ac5b599f91438 Mon Sep 17 00:00:00 2001 From: Steve-Mcl Date: Tue, 19 Apr 2022 10:42:00 +0100 Subject: [PATCH 09/11] remove unused vars --- .../node_modules/@node-red/nodes/core/network/22-websocket.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/node_modules/@node-red/nodes/core/network/22-websocket.js b/packages/node_modules/@node-red/nodes/core/network/22-websocket.js index 08f9884c2..5a46f04ff 100644 --- a/packages/node_modules/@node-red/nodes/core/network/22-websocket.js +++ b/packages/node_modules/@node-red/nodes/core/network/22-websocket.js @@ -35,8 +35,6 @@ module.exports = function(RED) { } } var listenerNodes = {}; - var activeListenerNodes = 0; - // A node red node that sets up a local websocket server function WebSocketListenerNode(n) { @@ -166,7 +164,6 @@ module.exports = function(RED) { } if (node.isServer) { - activeListenerNodes++; if (!serverUpgradeAdded) { RED.server.on('upgrade', handleServerUpgrade); serverUpgradeAdded = true From 25962dbf39abd7107223564eef4d7af4130075ca Mon Sep 17 00:00:00 2001 From: Mauricio Bonani Date: Tue, 19 Apr 2022 08:00:01 -0400 Subject: [PATCH 10/11] Remove unused SASS vars Fixes #3534 --- .../node_modules/@node-red/editor-client/src/sass/colors.scss | 2 -- .../@node-red/editor-client/src/sass/workspace.scss | 1 - 2 files changed, 3 deletions(-) diff --git a/packages/node_modules/@node-red/editor-client/src/sass/colors.scss b/packages/node_modules/@node-red/editor-client/src/sass/colors.scss index 92231b735..88498b355 100644 --- a/packages/node_modules/@node-red/editor-client/src/sass/colors.scss +++ b/packages/node_modules/@node-red/editor-client/src/sass/colors.scss @@ -150,7 +150,6 @@ $popover-button-border-color-hover: #666; $diff-text-header-color: $secondary-text-color; $diff-text-header-background: #ffd; -$diff-text-header-background-hover: #ffc; $diff-state-color: $primary-text-color; $diff-state-prefix-color: $secondary-text-color; $diff-state-added: #009900; @@ -195,7 +194,6 @@ $view-lasso-stroke: #ff7f0e; $view-lasso-fill: rgba(20,125,255,0.1); $view-background: $secondary-background; -$view-select-mode-background: $secondary-background-selected; $view-grid-color: #eee; $node-label-color: #333; diff --git a/packages/node_modules/@node-red/editor-client/src/sass/workspace.scss b/packages/node_modules/@node-red/editor-client/src/sass/workspace.scss index 2adfb89ba..95d4147b9 100644 --- a/packages/node_modules/@node-red/editor-client/src/sass/workspace.scss +++ b/packages/node_modules/@node-red/editor-client/src/sass/workspace.scss @@ -58,7 +58,6 @@ .red-ui-workspace-select-mode { .red-ui-workspace-chart-background { opacity: 0.7; - // fill: $view-select-mode-background; } .red-ui-workspace-chart-grid line { opacity: 0.8; From 79a90dc47674359edfe65bf54cb2e86559adab8c Mon Sep 17 00:00:00 2001 From: Mauricio Bonani Date: Tue, 19 Apr 2022 08:53:39 -0400 Subject: [PATCH 11/11] Add custom style for jQuery widgets borders Fixes #3518 --- .../@node-red/editor-client/src/sass/jquery.scss | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/node_modules/@node-red/editor-client/src/sass/jquery.scss b/packages/node_modules/@node-red/editor-client/src/sass/jquery.scss index b5b96162d..a884d6641 100644 --- a/packages/node_modules/@node-red/editor-client/src/sass/jquery.scss +++ b/packages/node_modules/@node-red/editor-client/src/sass/jquery.scss @@ -26,6 +26,13 @@ box-shadow: none; } +.ui-widget.ui-widget-content { + border: 1px solid $tertiary-border-color; +} +.ui-widget-content { + border: 1px solid $secondary-border-color; +} + .ui-widget-header { color: $header-text-color; }