Module: TreeListHelper
- Defined in:
- app/helpers/tree_list_helper.rb
Instance Method Summary collapse
-
#nested_tree_nodes(form, expanded, nested_collection = form.collection) ⇒ Object
Creates tree structure for collection *
form
- form renderer used for rendering resource actions *expanded
- array of expanded nodes ids (integer) *nested_collection
- collection of resources in actual tree level.
Instance Method Details
#nested_tree_nodes(form, expanded, nested_collection = form.collection) ⇒ Object
Creates tree structure for collection
-
form
- form renderer used for rendering resource actions -
expanded
- array of expanded nodes ids (integer) -
nested_collection
- collection of resources in actual tree level
Returns array of hashes with nodes info for Fancytree :key - string, mandatory, node id :title - string, mandatory, displayed title of node :folder - boolean, true if node has childrens/is expandable :lazy - boolean, AJAX is used for children loading :children - array of node children (used if node is expanded)
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'app/helpers/tree_list_helper.rb', line 14 def nested_tree_nodes(form, , nested_collection = form.collection) nodes = [] nested_collection.each_with_index do |res, i| form.with_resource(res, res, i) do form.render_row do node = { # TODO: remove to_s for new fancytree build (issue 90) key: form.resource.id.to_s, title: form.resource.to_label } # create folder if node has children if form.resource.has_children? node[:folder] = true node[:lazy] = true # expand and load subtree if expanded before if .include?(form.resource.id) node[:children] = nested_tree_nodes(form, , form.resource.children) node[:lazy] = false end end node[:title] += content_tag :div, class: 'btn-group btn-mini' do form.render_actions end nodes << node end # row end # end form end # end collection nodes end |