Class: ActiveAdmin::MenuItem

Inherits:
Object
  • Object
show all
Includes:
ActiveAdmin::Menu::MenuNode
Defined in:
lib/active_admin/menu_item.rb

Instance Attribute Summary collapse

Attributes included from ActiveAdmin::Menu::MenuNode

#children

Instance Method Summary collapse

Methods included from ActiveAdmin::Menu::MenuNode

#[], #[]=, #add, #current?, #include?, #items

Constructor Details

#initialize(options = {}) {|_self| ... } ⇒ MenuItem

Builds a new menu item

NOTE: for :label, :url, and :if These options are evaluated in the view context at render time. Symbols are called as methods on self, and Procs are exec’d within self. Here are some examples of what you can do:

menu if:  :admin?
menu url: :new_book_path
menu url: :awesome_helper_you_defined
menu label: ->{ User.some_method }
menu label: ->{ I18n.t 'menus.user' }

Parameters:

  • options (Hash) (defaults to: {})

    The options for the menu

  • [ActiveAdmin::MenuItem] (Hash)

    a customizable set of options

Options Hash (options):

  • :label (String, Symbol, Proc)

    The label to display for this menu item. Default: Titleized Resource Name

  • :id (String)

    A custom id to reference this menu item with. Default: underscored_resource_name

  • :url (String, Symbol, Proc)

    The URL this item will link to.

  • :priority (Integer)

    The lower the priority, the earlier in the menu the item will be displayed. Default: 10

  • :if (Symbol, Proc)

    This decides whether the menu item will be displayed. Evaluated on each request.

  • :html_options (Hash)

    A hash of options to pass to link_to when rendering the item

Yields:

  • (_self)

Yield Parameters:



47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/active_admin/menu_item.rb', line 47

def initialize(options = {})
  super() # MenuNode
  @label = options[:label]
  @dirty_id = options[:id] || options[:label]
  @url = options[:url] || "#"
  @priority = options[:priority] || 10
  @html_options = options[:html_options] || {}
  @should_display = options[:if] || proc { true }
  @parent = options[:parent]

  yield(self) if block_given? # Builder style syntax
end

Instance Attribute Details

#html_optionsObject (readonly)

Returns the value of attribute html_options.



6
7
8
# File 'lib/active_admin/menu_item.rb', line 6

def html_options
  @html_options
end

#labelObject (readonly)

Returns the value of attribute label.



64
65
66
# File 'lib/active_admin/menu_item.rb', line 64

def label
  @label
end

#parentObject (readonly)

Returns the value of attribute parent.



6
7
8
# File 'lib/active_admin/menu_item.rb', line 6

def parent
  @parent
end

#priorityObject (readonly)

Returns the value of attribute priority.



6
7
8
# File 'lib/active_admin/menu_item.rb', line 6

def priority
  @priority
end

#should_displayObject (readonly)

Don’t display if the :if option passed says so



68
69
70
# File 'lib/active_admin/menu_item.rb', line 68

def should_display
  @should_display
end

#urlObject (readonly)

Returns the value of attribute url.



65
66
67
# File 'lib/active_admin/menu_item.rb', line 65

def url
  @url
end

Instance Method Details

#idObject



60
61
62
# File 'lib/active_admin/menu_item.rb', line 60

def id
  @id ||= normalize_id @dirty_id
end