lib/active_admin/resource/action_items.rb in yousty-activeadmin-1.0.4.pre vs lib/active_admin/resource/action_items.rb in yousty-activeadmin-1.0.5.pre

- old
+ new

@@ -16,19 +16,24 @@ @action_items ||= [] end # Add a new action item to a resource # + # @param [Symbol] name # @param [Hash] options valid keys include: # :only: A single or array of controller actions to display # this action item on. # :except: A single or array of controller actions not to # display this action item on. - def add_action_item(options = {}, &block) - self.action_items << ActiveAdmin::ActionItem.new(options, &block) + def add_action_item(name, options = {}, &block) + self.action_items << ActiveAdmin::ActionItem.new(name, options, &block) end + def remove_action_item(name) + self.action_items.delete_if { |item| item.name == name } + end + # Returns a set of action items to display for a specific controller action # # @param [String, Symbol] action the action to retrieve action items for # # @return [Array] Array of ActionItems for the controller actions @@ -49,25 +54,25 @@ private # Adds the default action items to each resource def add_default_action_items # New link on index - add_action_item only: :index do + add_action_item :new, only: :index do if controller.action_methods.include?('new') && authorized?(ActiveAdmin::Auth::CREATE, active_admin_config.resource_class) link_to I18n.t('active_admin.new_model', model: active_admin_config.resource_label), new_resource_path end end # Edit link on show - add_action_item only: :show do + add_action_item :show, only: :show do if controller.action_methods.include?('edit') && authorized?(ActiveAdmin::Auth::UPDATE, resource) link_to I18n.t('active_admin.edit_model', model: active_admin_config.resource_label), edit_resource_path(resource) end end # Destroy link on show - add_action_item only: :show do + add_action_item :destroy, only: :show do if controller.action_methods.include?('destroy') && authorized?(ActiveAdmin::Auth::DESTROY, resource) link_to I18n.t('active_admin.delete_model', model: active_admin_config.resource_label), resource_path(resource), method: :delete, data: {confirm: I18n.t('active_admin.delete_confirmation')} end end @@ -78,13 +83,15 @@ # Model class to store the data for ActionItems class ActionItem include ActiveAdmin::OptionalDisplay - attr_accessor :block + attr_accessor :block, :name - def initialize(options = {}, &block) - @options, @block = options, block + def initialize(name, options = {}, &block) + @name = name + @options = options + @block = block normalize_display_options! end end end