module ActiveAdmin::Resource::Menu
def add_to_menu(menu_collection)
def add_to_menu(menu_collection) if include_in_menu? @menu_item = menu_collection.add navigation_menu_name, menu_item_options end end
def default_menu_options
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
def include_in_menu?
def include_in_menu? @include_in_menu != false end
def menu_item_options
def menu_item_options @menu_item_options ||= default_menu_options end
def menu_item_options=(options)
Set the menu options.
def menu_item_options=(options) if options == false @include_in_menu = false @menu_item_options = {} else @include_in_menu = true @navigation_menu_name = options[:menu_name] @menu_item_options = default_menu_options.merge options end end
def navigation_menu
def navigation_menu namespace.fetch_menu(navigation_menu_name) end
def navigation_menu_name
def navigation_menu_name case @navigation_menu_name ||= DEFAULT_MENU when Proc controller.instance_exec(&@navigation_menu_name).to_sym else @navigation_menu_name end end
def navigation_menu_name=(menu_name)
def navigation_menu_name=(menu_name) self.menu_item_options = { menu_name: menu_name } end