module ActiveAdmin::BatchActions::Controller

def action_present?

def action_present?
  params[:batch_action].present? && current_batch_action
end

def batch_action

Controller action that is called when submitting the batch action form
def batch_action
  if action_present?
    selection = params[:collection_selection] || []
    inputs = JSON.parse(params[:batch_action_inputs].presence || "{}")
    instance_exec selection, inputs, &current_batch_action.block
  else
    raise "Couldn't find batch action \"#{params[:batch_action]}\""
  end
end

def batch_action_collection(only = COLLECTION_APPLIES)

def batch_action_collection(only = COLLECTION_APPLIES)
  find_collection(only: only)
end

def current_batch_action

def current_batch_action
  active_admin_config.batch_actions.detect { |action| action.sym.to_s == params[:batch_action] }
end