Sha256: e9a4d2aaf3e24e7d43bc0ee9d07c36d63f9403cda55fc15bb2e33482cc474fac

Contents?: true

Size: 1.62 KB

Versions: 5

Compression:

Stored size: 1.62 KB

Contents

module RailsAdmin
  module Config
    module Actions
      class BulkDelete < RailsAdmin::Config::Actions::Base
        RailsAdmin::Config::Actions.register(self)

        register_instance_option :collection do
          true
        end

        register_instance_option :http_methods do
          [:post, :delete]
        end

        register_instance_option :controller do
          proc do

            if request.post? # BULK DELETE

              @objects = list_entries(@model_config, :destroy)

              render @action.template_name

            elsif request.delete? # BULK DESTROY

              @objects = list_entries(@model_config, :destroy)
              processed_objects = @abstract_model.destroy(@objects)

              destroyed = processed_objects.select(&:destroyed?)
              not_destroyed = processed_objects - destroyed

              destroyed.each do |object|
                @auditing_adapter && @auditing_adapter.delete_object(object, @abstract_model, _current_user)
              end

              flash[:success] = t('admin.flash.successful', name: pluralize(destroyed.count, @model_config.label), action: t('admin.actions.delete.done')) unless destroyed.empty?
              flash[:error] = t('admin.flash.error', name: pluralize(not_destroyed.count, @model_config.label), action: t('admin.actions.delete.done')) unless not_destroyed.empty?

              redirect_to back_or_index

            end
          end
        end

        register_instance_option :authorization_key do
          :destroy
        end

        register_instance_option :bulkable? do
          true
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rails_admin-0.6.5 lib/rails_admin/config/actions/bulk_delete.rb
rails_admin-0.6.4 lib/rails_admin/config/actions/bulk_delete.rb
rails_admin-0.6.3 lib/rails_admin/config/actions/bulk_delete.rb
rails_admin-0.6.2 lib/rails_admin/config/actions/bulk_delete.rb
rails_admin-0.6.1 lib/rails_admin/config/actions/bulk_delete.rb