Module: ActiveAdmin::Resource::Menu

Included in:
Page, ActiveAdmin::Resource
Defined in:
lib/active_admin/resource/menu.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

Returns the value of attribute menu_item.



56
57
58
# File 'lib/active_admin/resource/menu.rb', line 56

def menu_item
  @menu_item
end

Instance Method Details

#add_to_menu(menu_collection) ⇒ Object

Invoked by namespace when menu is about to be rendered.



50
51
52
53
54
# File 'lib/active_admin/resource/menu.rb', line 50

def add_to_menu(menu_collection)
  if include_in_menu?
    @menu_item = menu_collection.add navigation_menu_name, menu_item_options
  end
end

#default_menu_optionsObject



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/active_admin/resource/menu.rb', line 17

def default_menu_options
  # These local variables are accessible to the procs.
  menu_resource_class = respond_to?(:resource_class) ? resource_class : self
  resource = self
  {
    id: resource_name.plural,
    label: proc{ resource.plural_resource_label },
    url:   proc{ resource.route_collection_path(params, url_options) },
    if:    proc{ authorized?(Auth::READ, menu_resource_class) }
  }
end

#include_in_menu?Boolean

Should this resource be added to the menu system?

Returns:

  • (Boolean)


59
60
61
# File 'lib/active_admin/resource/menu.rb', line 59

def include_in_menu?
  @menu_item_options != false
end


12
13
14
15
# File 'lib/active_admin/resource/menu.rb', line 12

def menu_item_options
  @menu_item_options ||= {}
  @menu_item_options.reverse_merge(default_menu_options)
end

Set the menu options. To disable this menu item, call ‘menu(false)` from the DSL



8
9
10
# File 'lib/active_admin/resource/menu.rb', line 8

def menu_item_options=(options)
  @menu_item_options = options
end


45
46
47
# File 'lib/active_admin/resource/menu.rb', line 45

def navigation_menu
  namespace.fetch_menu(navigation_menu_name)
end


33
34
35
36
37
38
39
40
41
42
43
# File 'lib/active_admin/resource/menu.rb', line 33

def navigation_menu_name
  navigation_menu_name = @menu_item_options[:menu_name] if @menu_item_options
  navigation_menu_name ||= DEFAULT_MENU

  case navigation_menu_name
  when Proc
    controller.instance_exec(&navigation_menu_name).to_sym
  else
    navigation_menu_name
  end
end


29
30
31
# File 'lib/active_admin/resource/menu.rb', line 29

def navigation_menu_name=(menu_name)
  self.menu_item_options = { menu_name: menu_name }
end