j-Tree
Configuration:
first {Boolean}selects the first tree item, default:true(optional)exec {String}required: link to a function, this function is executed when the node is selected in the treeautoreset {Boolean}resets state when datas-source is changed (optional, default:false)selected {String}selected class (optional, default:selected)checked {String}optional, a path tofunction(arr, component)or path topropertycheckednested {Boolean}optional, checks all nested items (default:true)upload {String}optional, a path tofunction(item, files)(enables drag & drop files)dragdrop {String}optional, a path tofunction(item, target_item, itemel, targetel)(enables drag & drop items)options {String}optional, a path tofunction(item, el)enables a small button for an inline context menu for each itemrename {String}optional, a path tofunction(item, newname, fn_accept(true))unselectexpand {Boolean}optional, canunselectselected item when the user clicks on the expandable item (default:false)reselect {Boolean}optional, evaluatesexecagain if the tree is refreshed (default:false)selectexpand {Boolean}optional, enables addingselectedclass to expandable items (default:false)iconoptions {String}icon to options (default:ti ti-ellipsis-h)expanded {Boolean}expands all children (default:false)- NEW:
contextmenu {String}optional, a path tofunction(item, el)enables mouse contextmenu - NEW:
key {String}a value can be used asindexin below methods (default:path)
Data structure:
- Object Array
- Object has to contain
name:Stringandchildren:[another similar object]orchildren:null(with no children) - Object item can contain
..., icon: 'home' }, it can change a file icon - Object item can contain
..., classname: 'css_custom_class' }, it adds a CSS class onto the "label" element - Object item can contain
..., html: 'RAW_HTML'{String} renders HTML tags instead ofnamefield
Methods:
component.expand([index])- expandsindexorall(with no definedindex) nodescomponent.collapse([index])- collapsesindexorall(with no definedindex) nodescomponent.clear()- clears a cache for refreshing the sourcecomponent.select(index)- selects nodecomponent.unselect()- unselects nodecomponent.rename(index)- showsinputfor name renaming (it works withconfig.rename)
Good to know:
Setter automatically extends each object by adding .$pointer property with a tree index.
Use it with <ui-component name="tree">. When the component is not loaded yet, jComponent downloads it on first use from the address in DEF.fallback (the Componentator CDN by default). Author: Peter Širka. Source: the Componentator components repository, MIT license.
<style>
.ui-tree { border: 1px solid #E0E0E0; }
.ui-dark .ui-tree { border: 1px solid #404040; }
</style>
<div class="container">
<div class="col-md-6">
<div>Open Web Developer Console</div>
<br />
<ui-component name="tree" path="nodes" config="exec:fn_selected;checked:fn_checked"></ui-component>
</div>
</div>
<script>
var nodes = [];
nodes.push({ name: 'Item 1', children: null });
nodes.push({ name: 'Item 2', children: null });
nodes.push({ name: 'Item 3', children: [{ name: 'SubItem 3 / 1', children: [{ name: 'SubItem 3 / 1 / 1', children: null }]}]});
nodes.push({ name: 'Item 4', children: null });
nodes.push({ name: 'Item 5', children: [{ name: 'Subitem 5 / 1', children: null }, { name: 'Subitem 5 / 2', children: [{ name: 'Subitem 5 / 2 / 1', children: [{ name: 'Subitem 5 / 2 / 1 / 1', children: null }]}] }, { name: 'Subitem 5 / 3', children: null }]});
function fn_selected(node, isGroup, expanded) {
console.log('SELECTED NODE:', node, isGroup, expanded);
}
function fn_checked(checked) {
console.log('CHECKED', checked);
}
</script>