Sha256: 0f50084878c8e6b423c710e6967b7be0625e60135972c018e22c18f32329503f

Contents?: true

Size: 1.75 KB

Versions: 4

Compression:

Stored size: 1.75 KB

Contents

module CropImageRiffpad
  module ControllerMethod          
    
    def crop_image(model_name, attachment_name, style) # model_name = "user" => class User | model_name = "user_photo" => UserPhoto
      [:update, :create].each do |action_name|
        define_method action_name do # define action update for controller
          if params[:action].to_s == "update"
            @object = ActiveSupport::Inflector.constantize(ActiveSupport::Inflector.classify(model_name)).find(params[:id])
            @object.attributes = params[model_name.to_sym]
          else
            @object = ActiveSupport::Inflector.constantize(ActiveSupport::Inflector.classify(model_name)).new(params[model_name.to_sym])                      
          end
          if @object.save
            params[:id] = @object.id
            if params[:crop] == "true"
              redirect_to self.send("#{model_name}_url", @object)
            else
              if params[model_name.to_sym] and params[model_name.to_sym][attachment_name.to_sym].blank?
                responds_to_parent do
                  render :js => "document.location = \"#{escape_javascript(self.send("#{model_name}_url", @object))}\""
                end
              else
                responds_to_parent do 
                  crop_action_content = render_to_string :action => :crop
                  render :js => "renderFancyBoxWithContent('#{escape_javascript(crop_action_content)}');"
                end
              end
            end
          else
            edit_action_content = render_to_string :action => params[:action]
            responds_to_parent do 
              render :js => "$('#container').html('#{escape_javascript(edit_action_content)}');"
            end
          end
        end
      end
    end    
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
cropimage_riffpad-0.1.1 lib/cropimage_riffpad/crop_image_controller.rb
cropimage_riffpad-0.1.0 lib/cropimage_riffpad/crop_image_controller.rb
cropimage_riffpad-0.0.2 lib/cropimage_riffpad/crop_image_controller.rb
cropimage_riffpad-0.0.1 lib/cropimage_riffpad/crop_image_controller.rb