Sha256: 1e9e7fa9718af6c90b6300f873224f215a7c0e66af880ad096d418c16a9d5e90

Contents?: true

Size: 1.38 KB

Versions: 16

Compression:

Stored size: 1.38 KB

Contents

module Alchemy
  module Custom
    module Model
      module Admin
        class ClonesController < ::Alchemy::Custom::Model::Admin::BaseController
          def create
            @obj.assign_attributes clean_params
            if @parent.present?
              @obj.send("#{@obj.class.to_cloner_name}=",@parent)
            end
            @obj = yield @obj if block_given?
            if @obj.apply
              after_successfull_create
            else
              after_unsuccessfully_create
            end
          end

          private

          def authorize_resource
            authorize!(:clone, @parent.class)
          end

          def base_class
            "::#{parent_model_name_demodulized.classify}Cloner".constantize
          end

          def after_successfull_create
            url = polymorphic_path [:admin, @parent.class]
            flash[:notice] = t(:record_succesfully_cloned, model: @parent.class.model_name.human)
            respond_to do |format|
              format.js {
                @redirect_url = url
                render :redirect
              }
              format.html {redirect_to url}
            end
          end

          def after_unsuccessfully_create
            render :new
          end

          def permitted_attributes
            base_class._virtual_column_names.collect(&:to_sym)
          end


        end
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
alchemy-custom-model-3.2 app/controllers/alchemy/custom/model/admin/clones_controller.rb
alchemy-custom-model-3.1.5 app/controllers/alchemy/custom/model/admin/clones_controller.rb
alchemy-custom-model-3.1.4 app/controllers/alchemy/custom/model/admin/clones_controller.rb
alchemy-custom-model-3.1.3 app/controllers/alchemy/custom/model/admin/clones_controller.rb
alchemy-custom-model-3.1.2 app/controllers/alchemy/custom/model/admin/clones_controller.rb
alchemy-custom-model-3.1.1 app/controllers/alchemy/custom/model/admin/clones_controller.rb
alchemy-custom-model-3.1.0 app/controllers/alchemy/custom/model/admin/clones_controller.rb
alchemy-custom-model-2.2.2 app/controllers/alchemy/custom/model/admin/clones_controller.rb
alchemy-custom-model-3.0.0 app/controllers/alchemy/custom/model/admin/clones_controller.rb
alchemy-custom-model-2.2.1 app/controllers/alchemy/custom/model/admin/clones_controller.rb
alchemy-custom-model-2.2.0 app/controllers/alchemy/custom/model/admin/clones_controller.rb
alchemy-custom-model-2.1.2 app/controllers/alchemy/custom/model/admin/clones_controller.rb
alchemy-custom-model-2.1.1 app/controllers/alchemy/custom/model/admin/clones_controller.rb
alchemy-custom-model-2.1.0 app/controllers/alchemy/custom/model/admin/clones_controller.rb
alchemy-custom-model-2.0.3 app/controllers/alchemy/custom/model/admin/clones_controller.rb
alchemy-custom-model-2.0.2 app/controllers/alchemy/custom/model/admin/clones_controller.rb