module ActiveAdminParanoia::DSL
Public Instance Methods
active_admin_paranoia()
click to toggle source
# File lib/active_admin_paranoia/dsl.rb, line 3 def active_admin_paranoia controller do def find_resource resource_class.to_s.camelize.constantize.with_deleted.where(id: params[:id]).first! end end batch_action :destroy, confirm: proc{ I18n.t('active_admin.batch_actions.delete_confirmation', plural_model: resource_class.to_s.downcase.pluralize) }, if: proc{ authorized?(ActiveAdmin::Auth::DESTROY, resource_class) && params[:scope] != 'archived' } do |ids| resource_class.to_s.camelize.constantize.where(id: ids).destroy_all options = { notice: I18n.t('active_admin.batch_actions.succesfully_destroyed', count: ids.count, model: resource_class.to_s.camelize.constantize.model_name, plural_model: resource_class.to_s.downcase.pluralize) } # For more info, see here: https://github.com/rails/rails/pull/22506 if Rails::VERSION::MAJOR >= 5 redirect_back({ fallback_location: ActiveAdmin.application.root_to }.merge(options)) else redirect_to :back, options end end batch_action :restore, confirm: proc{ I18n.t('active_admin_paranoia.batch_actions.restore_confirmation', plural_model: resource_class.to_s.downcase.pluralize) }, if: proc{ authorized?(ActiveAdminParanoia::Auth::RESTORE, resource_class) && params[:scope] == 'archived' } do |ids| resource_class.to_s.camelize.constantize.restore(ids, recursive: true) options = { notice: I18n.t('active_admin_paranoia.batch_actions.succesfully_restored', count: ids.count, model: resource_class.to_s.camelize.constantize.model_name, plural_model: resource_class.to_s.downcase.pluralize) } # For more info, see here: https://github.com/rails/rails/pull/22506 if Rails::VERSION::MAJOR >= 5 redirect_back({ fallback_location: ActiveAdmin.application.root_to }.merge(options)) else redirect_to :back, options end end action_item :restore, only: :show do link_to(I18n.t('active_admin_paranoia.restore_model', model: resource_class.to_s.titleize), "#{resource_path(resource)}/restore", method: :put, data: { confirm: I18n.t('active_admin_paranoia.restore_confirmation') }) if authorized?(ActiveAdminParanoia::Auth::RESTORE, resource) end member_action :restore, method: :put, confirm: proc{ I18n.t('active_admin_paranoia.restore_confirmation') }, if: proc{ authorized?(ActiveAdminParanoia::Auth::RESTORE, resource_class) } do resource.restore(recursive: true) options = { notice: I18n.t('active_admin_paranoia.batch_actions.succesfully_restored', count: 1, model: resource_class.to_s.camelize.constantize.model_name, plural_model: resource_class.to_s.downcase.pluralize) } # For more info, see here: https://github.com/rails/rails/pull/22506 if Rails::VERSION::MAJOR >= 5 redirect_back({ fallback_location: ActiveAdmin.application.root_to }.merge(options)) else redirect_to :back, options end end scope(I18n.t('active_admin_paranoia.non_archived'), default: true) { |scope| scope.where(resource_class.to_s.camelize.constantize.paranoia_column => resource_class.to_s.camelize.constantize.paranoia_sentinel_value) } scope(I18n.t('active_admin_paranoia.archived')) { |scope| scope.unscope(:where => resource_class.to_s.camelize.constantize.paranoia_column).where.not(resource_class.to_s.camelize.constantize.paranoia_column => resource_class.to_s.camelize.constantize.paranoia_sentinel_value) } end
find_resource()
click to toggle source
# File lib/active_admin_paranoia/dsl.rb, line 5 def find_resource resource_class.to_s.camelize.constantize.with_deleted.where(id: params[:id]).first! end