Sha256: a0cc231a7ad5816bf1a29dc721a44c55777685e16a9679c05593de6f5216ed39

Contents?: true

Size: 1.67 KB

Versions: 25

Compression:

Stored size: 1.67 KB

Contents

module ActiveAdmin
  class Resource

    module Menu

      # Set the menu options.
      # To disable this menu item, call `menu(false)` from the DSL
      def menu_item_options=(options)
        if options == false
          @include_in_menu   = false
          @menu_item_options = {}
        else
          @navigation_menu_name = options[:menu_name]
          @menu_item_options    = default_menu_options.merge options
        end
      end

      def menu_item_options
        @menu_item_options ||= default_menu_options
      end

      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) },
          if:    proc{ authorized?(:read, menu_resource_class) }
        }
      end

      attr_writer :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
        namespace.fetch_menu(navigation_menu_name)
      end

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

      attr_reader :menu_item

      # Should this resource be added to the menu system?
      def include_in_menu?
        @include_in_menu != false
      end

    end
  end
end

Version data entries

25 entries across 25 versions & 5 rubygems

Version Path
activeadmin_addons-1.1.2 vendor/bundle/ruby/2.3.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource/menu.rb
activeadmin_addons-1.1.1 vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource/menu.rb
yousty-activeadmin-1.0.17.pre lib/active_admin/resource/menu.rb
yousty-activeadmin-1.0.16.pre lib/active_admin/resource/menu.rb
activeadmin_addons-1.1.0 vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource/menu.rb
activeadmin_addons-1.0.1 vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource/menu.rb
activeadmin_addons-1.0.0 vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/resource/menu.rb
yousty-activeadmin-1.0.15.pre lib/active_admin/resource/menu.rb
yousty-activeadmin-1.0.14.pre lib/active_admin/resource/menu.rb
yousty-activeadmin-1.0.13.pre lib/active_admin/resource/menu.rb
yousty-activeadmin-1.0.12.pre lib/active_admin/resource/menu.rb
yousty-activeadmin-1.0.11.pre lib/active_admin/resource/menu.rb
yousty-activeadmin-1.0.10.pre lib/active_admin/resource/menu.rb
yousty-activeadmin-1.0.9.pre lib/active_admin/resource/menu.rb
yousty-activeadmin-1.0.8.pre lib/active_admin/resource/menu.rb
activeadmin-1.0.0.pre2 lib/active_admin/resource/menu.rb
activeadmin-1.0.0.pre1 lib/active_admin/resource/menu.rb
yousty-activeadmin-1.0.7.pre lib/active_admin/resource/menu.rb
yousty-activeadmin-1.0.6.pre lib/active_admin/resource/menu.rb
yousty-activeadmin-1.0.5.pre lib/active_admin/resource/menu.rb