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 = $('