diff --git a/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json b/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json index 5e928915d..023ca4b60 100755 --- a/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json +++ b/packages/node_modules/@node-red/editor-client/locales/en-US/editor.json @@ -28,7 +28,8 @@ "status": "Status", "enabled": "Enabled", "disabled":"Disabled", - "info": "Description" + "info": "Description", + "selectNodes": "Select nodes" }, "menu": { "label": { diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/common/treeList.js b/packages/node_modules/@node-red/editor-client/src/js/ui/common/treeList.js index e775b28d0..8e60c1e22 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/common/treeList.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/common/treeList.js @@ -18,6 +18,8 @@ /** * options: * - data : array - initial items to display in tree + * - multi : boolean - if true, .selected will return an array of results + * otherwise, returns the first selected item * * methods: * - data(items) - clears existing items and replaces with new data @@ -289,13 +291,26 @@ if (item.hasOwnProperty('selected')) { var selectWrapper = $('').appendTo(label); var cb = $('').prop('checked',item.selected).appendTo(selectWrapper); + label.toggleClass("selected",item.selected); cb.on('click', function(e) { e.stopPropagation(); }); cb.on('change', function(e) { item.selected = this.checked; + label.toggleClass("selected",this.checked); that._trigger("select",e,item); }) + if (!item.children) { + label.on("click", function(e) { + e.stopPropagation(); + cb.trigger("click"); + }) + } + item.treeList.select = function(v) { + if (v !== item.selected) { + cb.trigger("click"); + } + } } else { label.on("click", function(e) { that._topList.find(".selected").removeClass("selected"); @@ -311,8 +326,14 @@ if (item.icon) { $('').appendTo(label); } - if (item.label) { - $('').text(item.label).appendTo(label); + if (item.label || item.sublabel) { + if (item.label) { + $('').text(item.label).appendTo(label); + } + if (item.sublabel) { + $('').text(item.sublabel).appendTo(label); + } + } else if (item.element) { $(item.element).appendTo(label); } @@ -355,8 +376,15 @@ }, selected: function() { - var s = this._topList.find(".selected").parent().data('data'); - return s; + var s = this._topList.find(".selected"); + if (this.options.multi) { + var res = []; + s.each(function() { + res.push($(this).parent().data('data')); + }) + return res; + } + return s.parent().data('data'); } }); diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/notifications.js b/packages/node_modules/@node-red/editor-client/src/js/ui/notifications.js index 54795f568..e252570d6 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/notifications.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/notifications.js @@ -24,7 +24,7 @@ RED.notifications = (function() { var myNotification = RED.notify("This is the message to display",{ modal: true, fixed: true, - type: 'warning', + type: 'warning', // 'compact', 'success', 'warning', 'error' buttons: [ { text: "cancel", @@ -103,7 +103,7 @@ RED.notifications = (function() { $(n).append(msg); } if (options.buttons) { - var buttonSet = $('
').appendTo(n) + var buttonSet = $('
').appendTo(n) options.buttons.forEach(function(buttonDef) { var b = $('