mirror of
				https://github.com/node-red/node-red.git
				synced 2025-03-01 10:36:34 +00:00 
			
		
		
		
	Add 'radio' option to treeList
This commit is contained in:
		| @@ -41,6 +41,7 @@ | ||||
|  *         sublabel: 'Local', // a sub-label for the item | ||||
|  *         icon: 'fa fa-rocket', // (optional) icon for the item | ||||
|  *         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 | ||||
|  *         children: [] | function(done,item) // (optional) an array of child items, or a function | ||||
|  *                                       // that will call the `done` callback with an array | ||||
| @@ -640,6 +641,41 @@ | ||||
|                     } | ||||
|                 } | ||||
|                 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 { | ||||
|                 label.on("click", function(e) { | ||||
|                     if (!that.options.multi) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user