From 8abc5b38899ae7df30ecc3694e8c07e7a4965e0d Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Wed, 12 Jun 2019 10:06:58 +0100 Subject: [PATCH] Add actions to change deploy type --- .../editor-client/src/js/ui/common/menu.js | 42 +++++++++++-------- .../editor-client/src/js/ui/deploy.js | 8 +++- 2 files changed, 31 insertions(+), 19 deletions(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/common/menu.js b/packages/node_modules/@node-red/editor-client/src/js/ui/common/menu.js index 039357c11a..8de4a6e13c 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/common/menu.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/common/menu.js @@ -98,21 +98,10 @@ RED.menu = (function() { return; } if (opt.toggle) { - var selected = isSelected(opt.id); - if (typeof opt.toggle === "string") { - if (!selected) { - for (var m in menuItems) { - if (menuItems.hasOwnProperty(m)) { - var mi = menuItems[m]; - if (mi.id != opt.id && opt.toggle == mi.toggle) { - setSelected(mi.id,false); - } - } - } - setSelected(opt.id,true); - } + if (opt.toggle === true) { + setSelected(opt.id, !isSelected(opt.id)); } else { - setSelected(opt.id, !selected); + setSelected(opt.id, true); } } else { triggerAction(opt.id); @@ -209,8 +198,9 @@ RED.menu = (function() { } function setSelected(id,state) { + var alreadySet = false; if (isSelected(id) == state) { - return; + alreadySet = true; } var opt = menuItems[id]; if (state) { @@ -218,10 +208,26 @@ RED.menu = (function() { } else { $("#"+id).removeClass("active"); } - if (opt && opt.onselect) { - triggerAction(opt.id,state); + if (opt) { + if (opt.toggle && typeof opt.toggle === "string") { + if (state) { + for (var m in menuItems) { + if (menuItems.hasOwnProperty(m)) { + var mi = menuItems[m]; + if (mi.id != opt.id && opt.toggle == mi.toggle) { + setSelected(mi.id,false); + } + } + } + } + } + if (!alreadySet && opt.onselect) { + triggerAction(opt.id,state); + } + } + if (!alreadySet) { + RED.settings.set(opt.setting||("menu-"+opt.id), state); } - RED.settings.set(opt.setting||("menu-"+opt.id), state); } function toggleSelected(id) { 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 833e8f2938..16a774b0e9 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 @@ -99,7 +99,13 @@ RED.deploy = (function() { }); RED.actions.add("core:deploy-flows",save); - RED.actions.add("core:restart-flows",restart); + if (type === "default") { + RED.actions.add("core:restart-flows",restart); + RED.actions.add("core:set-deploy-type-to-full",function() { RED.menu.setSelected("deploymenu-item-full",true);}); + RED.actions.add("core:set-deploy-type-to-modified-flows",function() { RED.menu.setSelected("deploymenu-item-flow",true); }); + RED.actions.add("core:set-deploy-type-to-modified-nodes",function() { RED.menu.setSelected("deploymenu-item-node",true); }); + } + RED.events.on('nodes:change',function(state) {