Sha256: 08864fb57b243900feac15ab753b6adebdcd28d4006fa9cf66c200b6551287b0

Contents?: true

Size: 825 Bytes

Versions: 5

Compression:

Stored size: 825 Bytes

Contents

require 'active_admin/helpers/optional_display'

module ActiveAdmin
  module ActionItems
    extend ActiveSupport::Concern

    included do
      self.class_inheritable_accessor :action_items
      self.action_items = []
    end

    module ClassMethods
      def action_item(options = {}, &block)
        self.action_items << ActiveAdmin::ActionItems::ActionItem.new(options, &block)
      end

      def clear_action_items!
        self.action_items = []
      end

      def action_items_for(action)
        action_items.select{|item| item.display_on?(action) }
      end
    end

    class ActionItem
      include ActiveAdmin::OptionalDisplay

      attr_accessor :block

      def initialize(options = {}, &block)
        @options, @block = options, block
        normalize_display_options!
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
saulolso-activeadmin-0.2.2.1 lib/active_admin/action_items.rb
saulolso-activeadmin-0.2.2 lib/active_admin/action_items.rb
activeadmin-0.2.2 lib/active_admin/action_items.rb
activeadmin-0.2.1 lib/active_admin/action_items.rb
activeadmin-0.2.0 lib/active_admin/action_items.rb