Sha256: 58968fe6b0a81971305f524c3787f4d819e25c782dde6fa7c7a0ab009e22248b

Contents?: true

Size: 1.5 KB

Versions: 1

Compression:

Stored size: 1.5 KB

Contents

require 'action_controller/railtie'

module MediaMagick
  class AttachController < ActionController::Base
    def create
      klass = params[:model].constantize.find(params[:id])
      attachment = klass.send(params[:relation].pluralize).create(params[:relation].singularize => params[:file])
      klass.save

      render :partial => "/#{attachment.class::TYPE}", :locals => {:attachment => attachment}
    end

    def destroy
      attachment = params[:model].classify.constantize.find(params[:id]).send(params[:relation].pluralize).find(params[:relation_id])
      attachment.destroy
      render nothing: true
    end

    def update_priority
      attachments = params[:elements]
      attachments = attachments.split(',') unless attachments.kind_of?(Array)

      parent = params[:model].constantize.find(params[:model_id])

      attachments.each_with_index do |id, i|
        attachment = parent.send(params[:relation]).find(id)
        attachment.priority = i
        attachment.save
      end

      render :text => params[:attachments]
    end

    def recreate_versions
      parent = params[:model].classify.constantize.find(params[:model_id])

      errors = []
      parent.send(params[:relation].pluralize).each do |attachment|
        errors << attachment unless attachment.recreate_versions!
      end

      if errors.empty?
        redirect_to :back, notice: t('media_magick.recreate_versions.ok')
      else
        redirect_to :back, notice: t('media_magick.recreate_versions.error')
      end
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
media_magick-0.0.1 app/controllers/media_magick/attach_controller.rb