Sha256: 8729d4c50fe0aa64665eacf5575523099d849a732ae5a8776e9cf25ff22e2746
Contents?: true
Size: 1.05 KB
Versions: 2
Compression:
Stored size: 1.05 KB
Contents
module AbAdmin module Menu class Item def initialize(title, url, options) @title = title.is_a?(Symbol) ? I18n.t(title, scope: [:admin, :navigation]) : title @url = url @options = options end def render(template) return unless template.option_conditions_met?(@options) item_url = @url.is_a?(String) ? @url : template.instance_exec(&@url) active = template.request.path.split('/')[2] == item_url.split('/')[2] <<-HTML.html_safe <li class="#{'active' if active}">#{template.link_to title(template), item_url, @options.except(:if, :unless, :badge)}</li> HTML end private def title(template) return @title unless @options[:badge] badge = @options[:badge].is_a?(Symbol) ? template.public_send(@options[:badge]) : template.instance_exec(&@options[:badge]) return @title if !badge || badge == 0 "#{@title} <span class='badge badge-#{@options[:badge_type] || 'important'}'>#{badge}</span>".html_safe end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ab_admin-0.11.0 | lib/ab_admin/menu/item.rb |
ab_admin-0.10.0 | lib/ab_admin/menu/item.rb |