class ForemanSalt::SaltModulesController

def action_permission

def action_permission
  case params[:action]
  when 'import'
    :import
  when 'apply_changes'
    :import
  else
    super
  end
end

def apply_changes

def apply_changes
  if params[:changed].blank?
    info _('No changes found')
  else
    params[:changed].each do |environment, states|
      next unless states[:add] || states[:remove]
      add_to_environment(JSON.load(states[:add]), environment) if states[:add]
      remove_from_environment(JSON.load(states[:remove]), environment) if states[:remove]
    end
    clean_orphans
    success _('Successfully imported')
  end
  redirect_to salt_modules_path
end

def create

def create
  logger.info("Params: #{params.inspect}")
  @salt_module = SaltModule.new(salt_module_params)
  if @salt_module.save
    process_success
  else
    process_error
  end
end

def destroy

def destroy
  if @salt_module.destroy
    process_success
  else
    process_error
  end
end

def edit

def edit
  @salt_environments = @salt_module.salt_environments
end

def import

def import
  result = fetch_states_from_proxy(@proxy)
  @changes = result[:changes]
  @deletes = result[:deletes]
  if @changes.empty?
    info _('No changes found')
    redirect_to salt_modules_path
  end
end

def index

def index
  @salt_modules = resource_base.search_for(params[:search], :order => params[:order]).includes(:salt_environments).paginate(:page => params[:page])
end

def new

def new
  @salt_module = SaltModule.new
end

def update

def update
  if @salt_module.update_attributes(salt_module_params)
    success _('Successfully updated %s.' % @salt_module.to_s)
    redirect_to salt_modules_path
  else
    process_error
  end
end