Sha256: 788f617468af709e9f66f42f7bce4ff7c146f63e2471d67785ca652ccf703d45

Contents?: true

Size: 1.18 KB

Versions: 7

Compression:

Stored size: 1.18 KB

Contents

module Quadro
  module NavigationHelper
    def navigation_for(node, *args)
      return '' unless node

      options = args[0] || {}

      content_tag :ul, class: options[:class] do
        unless node.is_childless?
          link_or_dropdown_for(node)
        end
      end.html_safe
    end

    def dropdown_for(node, *args)
      return '' unless node

      options = args[0] || {}

      content_tag :li, class: options[:class] do
        concat(content_tag :a, (node.title + tag(:span, class: 'caret')).html_safe, class: 'dropdown', href: page_path(node))
        concat(content_tag(:ul, class: 'dropdown-menu') do
          link_or_dropdown_for(node)
        end)
      end
    end

    def link_or_dropdown_for(node, *args)
      return '' unless node

      options = args[0] || {}

      node.children.each do |child|
        if child.published? || user_signed_in?
          css_class = 'active' if page.path_ids.include?(child.id)
          if child.has_children?
            concat dropdown_for child, class: 'dropdown'
          else
            concat content_tag :li, content_tag(:a, child.title, href: page_path(child)), class: css_class
          end
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
quadro-0.6.1 app/helpers/quadro/navigation_helper.rb
quadro-0.6.0 app/helpers/quadro/navigation_helper.rb
quadro-0.5.8 app/helpers/quadro/navigation_helper.rb
quadro-0.5.7 app/helpers/quadro/navigation_helper.rb
quadro-0.5.6 app/helpers/quadro/navigation_helper.rb
quadro-0.5.5 app/helpers/quadro/navigation_helper.rb
quadro-0.5.4 app/helpers/quadro/navigation_helper.rb