From 64888bffaabe5a1137151d53577f41064ec1c37b Mon Sep 17 00:00:00 2001 From: Cristian Tone Date: Thu, 14 Mar 2013 20:40:03 +0200 Subject: [PATCH] Added support for Bootstrap Badges on navigation links --- lib/simple_navigation/rendering/renderer/bootstrap.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/simple_navigation/rendering/renderer/bootstrap.rb b/lib/simple_navigation/rendering/renderer/bootstrap.rb index 435e59b..50f5deb 100644 --- a/lib/simple_navigation/rendering/renderer/bootstrap.rb +++ b/lib/simple_navigation/rendering/renderer/bootstrap.rb @@ -6,7 +6,7 @@ def render(item_container) SimpleNavigation.config.selected_class = 'active' list_content = item_container.items.inject([]) do |list, item| li_options = item.html_options.reject {|k, v| k == :link} - li_content = tag_for(item, li_options.delete(:icon)) + li_content = tag_for(item, li_options.delete(:icon), li_options.delete(:badge)) if include_sub_navigation?(item) item.sub_navigation.dom_class = [item.sub_navigation.dom_class, 'dropdown-menu'].flatten.compact.join(' ') li_content << render_sub_navigation_for(item) @@ -24,12 +24,13 @@ def render(item_container) protected - def tag_for(item, icon = nil) + def tag_for(item, icon = nil, badge = {}) unless item.url or include_sub_navigation?(item) return item.name end url = item.url link = Array.new + link << content_tag(:span, badge[:value].call, :class => ["badge", badge[:class]].flatten.compact.join(' ')) if badge.present? and badge[:value] link << content_tag(:i, '', :class => [icon].flatten.compact.join(' ')) unless icon.nil? link << item.name if include_sub_navigation?(item)