Module: ViewMixins::Breadcrumb
- Defined in:
- lib/view_mixins/breadcrumb.rb
Instance Method Summary collapse
- #bread_crumb_load_tree_recursive(breadcrumb, tree_node) ⇒ Object
- #breadcrumb_for(*args) ⇒ Object
- #is_tree_node?(object) ⇒ Boolean
Instance Method Details
#bread_crumb_load_tree_recursive(breadcrumb, tree_node) ⇒ Object
32 33 34 35 36 37 38 39 |
# File 'lib/view_mixins/breadcrumb.rb', line 32 def bread_crumb_load_tree_recursive(, tree_node) unless tree_node.blank? if tree_node.parent_node_id > 0 bread_crumb_load_tree_recursive(, tree_node.parent_node) end << tree_node end end |
#breadcrumb_for(*args) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/view_mixins/breadcrumb.rb', line 3 def (*args) # ToDo dodělat caching tohoto, invalidovat budu pokud nastane SAVE u OBJECT = [] args.each do |object| if !object.blank? if is_tree_node?(object) tree_node = object unless tree_node.blank? bread_crumb_load_tree_recursive(, tree_node) end elsif object.respond_to?(:tree_nodes) if !object.tree_nodes.blank? && !object.tree_nodes.first.blank? && is_tree_node?(object.tree_nodes.first) tree_node = object.tree_nodes.first if !object.tree_nodes.blank? && !object.tree_nodes.first.blank? unless tree_node.blank? bread_crumb_load_tree_recursive(, tree_node) end end elsif object.kind_of?(Hash) << object elsif object.kind_of?(Array) object.each do |o| << o end end end end render :partial => '/helpers/build_breadcrumb', :layout => false, :locals => {:breadcrumb => } end |
#is_tree_node?(object) ⇒ Boolean
41 42 43 44 45 46 47 |
# File 'lib/view_mixins/breadcrumb.rb', line 41 def is_tree_node?(object) if defined?(Intranet::TreeNode) == 'constant' && Intranet::TreeNode.class == Class #object.kind_of?(Intranet::TreeNode) #|| object.kind_of?(Web::TreeNode) || object.kind_of?(Organizer::TreeNode) return object.kind_of?(Intranet::TreeNode) end false end |