class Enjoy::RailsAdminConfiguration

Attributes

actions_list[R]
actions_visibility[R]

Public Class Methods

new() click to toggle source
# File lib/enjoy/rails_admin_ext/config.rb, line 37
def initialize
  @actions_list ||= []
  @actions_visibility ||= {}

  action_unvisible_for(:custom_show_in_app, Proc.new { false })
end

Public Instance Methods

action_unvisible_for(action_name, model_name) click to toggle source
# File lib/enjoy/rails_admin_ext/config.rb, line 68
def action_unvisible_for(action_name, model_name)
  action_name = action_name.to_sym
  model_name = model_name.to_s
  add_action(action_name) unless @actions_list.include?(action_name)

  if model_name.is_a?(Proc)
    # @actions_visibility[action_name] = model_name
  else
    @actions_visibility[action_name] = [] if @actions_visibility[action_name].is_a?(Proc)
    @actions_visibility[action_name] ||= []
    @actions_visibility[action_name].delete model_name.to_s
  end
end
action_visible_for(action_name, model_name) click to toggle source
# File lib/enjoy/rails_admin_ext/config.rb, line 54
def action_visible_for(action_name, model_name)
  action_name = action_name.to_sym
  model_name = model_name.to_s
  add_action(action_name) unless @actions_list.include?(action_name)

  if model_name.is_a?(Proc)
    @actions_visibility[action_name] = model_name
  else
    @actions_visibility[action_name] = [] if @actions_visibility[action_name].is_a?(Proc)
    @actions_visibility[action_name] ||= []
    @actions_visibility[action_name] << model_name.to_s
  end
end
actions_config(rails_admin_actions) click to toggle source
# File lib/enjoy/rails_admin_ext/config.rb, line 82
def actions_config(rails_admin_actions)
  @actions_list.each do |action|
    rails_admin_actions.send(action) do
      visible do
        if Enjoy.rails_admin_config.actions_visibility[action].is_a?(Proc)
          Enjoy.rails_admin_config.actions_visibility[action]
        else
          Enjoy.rails_admin_config.actions_visibility[action].include? bindings[:abstract_model].model_name
        end
      end
    end
  end
end
add_action(action_name) click to toggle source
# File lib/enjoy/rails_admin_ext/config.rb, line 44
def add_action(action_name)
  @actions_list << action_name
  @actions_list.uniq
end
cancancan_admin_rules(ability_object) click to toggle source
# File lib/enjoy/rails_admin_ext/config.rb, line 96
def cancancan_admin_rules(ability_object)
  Enjoy.config.ability_admin_config.each do |config|
    _model = config[:model]
    _model = _model.constantize if _model.is_a?(String)
    ability_object.send(config[:method], config[:actions], _model)
  end
end
cancancan_manager_rules(ability_object) click to toggle source
# File lib/enjoy/rails_admin_ext/config.rb, line 103
def cancancan_manager_rules(ability_object)
  Enjoy.config.ability_manager_config.each do |config|
    _model = config[:model]
    _model = _model.constantize if _model.is_a?(String)
    ability_object.send(config[:method], config[:actions], _model)
  end
end
remove_action(action_name) click to toggle source
# File lib/enjoy/rails_admin_ext/config.rb, line 49
def remove_action(action_name)
  @remove_action.delete remove_action
  @actions_list.uniq
end