Sha256: 20b77a1bd0fd1a8c2960fa745b21f3501154c99bfaf9161ab07f6be128c3fe5a

Contents?: true

Size: 1.74 KB

Versions: 153

Compression:

Stored size: 1.74 KB

Contents

module ViewMixins
  module Breadcrumb
    def breadcrumb_for(*args)
      # ToDo dodělat caching tohoto, invalidovat budu pokud nastane SAVE u OBJECT
      breadcrumb = []
      args.each do |object|
        if !object.blank?
          if is_tree_node?(object)
            tree_node = object
            unless tree_node.blank?
              bread_crumb_load_tree_recursive(breadcrumb, 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(breadcrumb, tree_node)
              end
            end
          elsif object.kind_of?(Hash)
            breadcrumb << object
          elsif object.kind_of?(Array)
            object.each do |o|
              breadcrumb << o
            end
          end
        end
      end
      render :partial => '/helpers/build_breadcrumb', :layout => false, :locals => {:breadcrumb => breadcrumb}
    end

    def bread_crumb_load_tree_recursive(breadcrumb, tree_node)
      unless tree_node.blank?
        if tree_node.parent_node_id > 0
          bread_crumb_load_tree_recursive(breadcrumb, tree_node.parent_node)
        end
        breadcrumb << tree_node
      end
    end

    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
  end
end

Version data entries

153 entries across 153 versions & 1 rubygems

Version Path
it-logica-application-backbone-1.5.3 lib/view_mixins/breadcrumb.rb
it-logica-application-backbone-1.5.2 lib/view_mixins/breadcrumb.rb
it-logica-application-backbone-1.5.1 lib/view_mixins/breadcrumb.rb
it-logica-application-backbone-1.5.0 lib/view_mixins/breadcrumb.rb
it-logica-application-backbone-1.4.12 lib/view_mixins/breadcrumb.rb
it-logica-application-backbone-1.4.11 lib/view_mixins/breadcrumb.rb
it-logica-application-backbone-1.4.10 lib/view_mixins/breadcrumb.rb
it-logica-application-backbone-1.4.9 lib/view_mixins/breadcrumb.rb
it-logica-application-backbone-1.4.8 lib/view_mixins/breadcrumb.rb
it-logica-application-backbone-1.4.7 lib/view_mixins/breadcrumb.rb
it-logica-application-backbone-1.4.6 lib/view_mixins/breadcrumb.rb
it-logica-application-backbone-1.4.5 lib/view_mixins/breadcrumb.rb
it-logica-application-backbone-1.4.4 lib/view_mixins/breadcrumb.rb
it-logica-application-backbone-1.4.3 lib/view_mixins/breadcrumb.rb
it-logica-application-backbone-1.4.2 lib/view_mixins/breadcrumb.rb
it-logica-application-backbone-1.3.24 lib/view_mixins/breadcrumb.rb
it-logica-application-backbone-1.3.23 lib/view_mixins/breadcrumb.rb
it-logica-application-backbone-1.3.22 lib/view_mixins/breadcrumb.rb
it-logica-application-backbone-1.3.20 lib/view_mixins/breadcrumb.rb
it-logica-application-backbone-1.3.19 lib/view_mixins/breadcrumb.rb