mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
Add 'radio' option to treeList
This commit is contained in:
parent
ab2d3bfd80
commit
c9d1329fc2
@ -41,6 +41,7 @@
|
|||||||
* sublabel: 'Local', // a sub-label for the item
|
* sublabel: 'Local', // a sub-label for the item
|
||||||
* icon: 'fa fa-rocket', // (optional) icon for the item
|
* icon: 'fa fa-rocket', // (optional) icon for the item
|
||||||
* checkbox: true/false, // (optional) if present, display checkbox accordingly
|
* checkbox: true/false, // (optional) if present, display checkbox accordingly
|
||||||
|
* radio: 'group-name', // (optional) if present, display radio box - using group-name to set radio group
|
||||||
* selected: true/false, // (optional) whether the item is selected or not
|
* selected: true/false, // (optional) whether the item is selected or not
|
||||||
* children: [] | function(done,item) // (optional) an array of child items, or a function
|
* children: [] | function(done,item) // (optional) an array of child items, or a function
|
||||||
* // that will call the `done` callback with an array
|
* // that will call the `done` callback with an array
|
||||||
@ -640,6 +641,41 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
selectWrapper.appendTo(label)
|
selectWrapper.appendTo(label)
|
||||||
|
} else if (item.radio) {
|
||||||
|
var selectWrapper = $('<span class="red-ui-treeList-icon"></span>');
|
||||||
|
var cb = $('<input class="red-ui-treeList-radio" type="radio">').prop('name', item.radio).prop('checked',item.selected).appendTo(selectWrapper);
|
||||||
|
cb.on('click', function(e) {
|
||||||
|
e.stopPropagation();
|
||||||
|
});
|
||||||
|
cb.on('change', function(e) {
|
||||||
|
item.selected = this.checked;
|
||||||
|
that._selected.forEach(function(selectedItem) {
|
||||||
|
if (selectedItem.radio === item.radio) {
|
||||||
|
selectedItem.treeList.label.removeClass("selected");
|
||||||
|
selectedItem.selected = false;
|
||||||
|
that._selected.delete(selectedItem);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if (item.selected) {
|
||||||
|
that._selected.add(item);
|
||||||
|
} else {
|
||||||
|
that._selected.delete(item);
|
||||||
|
}
|
||||||
|
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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
selectWrapper.appendTo(label)
|
||||||
} else {
|
} else {
|
||||||
label.on("click", function(e) {
|
label.on("click", function(e) {
|
||||||
if (!that.options.multi) {
|
if (!that.options.multi) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user