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