Sha256: bea32a14b4477e23fe4c4e4ca52ae157310086518c17c6f1937bfd68aa30018f

Contents?: true

Size: 1.66 KB

Versions: 2

Compression:

Stored size: 1.66 KB

Contents

class Assetable::AssetsController < ActionController::Base

  respond_to :html, :js

  def index
    @assets = Assetabler::Asset.page(params[:page]).per(20)
    @fieldname = params[:fieldname]
    @uploader_id = params[:uploader_id]
  end

  # Insert assets into a gallery or uploader
  def insert
    @fieldname = params[:fieldname]
    @uploader_id = params[:uploader_id]
    @assets = Assetabler::Asset.find(params[:asset_ids])
  end

  # Create a new asset
  def create
    # Get the content type
    content_type = params[:file].content_type
    asset_params = {name: params[:file].original_filename, filename: params[:file]}

    # Create the appropriate model
    if content_type.split("/").first == "image"
      @asset = Assetabler::Image.new(asset_params)
    elsif content_type.split("/").first == "video"
      @asset = Assetabler::Video.new(asset_params)
    elsif content_type.split("/").first == "application"
      @asset = Assetabler::Document.new(asset_params)
    end

    # Return
    @fieldname = params[:fieldname]
    @uploader_id = params[:uploader_id]
    if @asset.errors.empty? and @asset.save
      render :create
    else
      render :error
    end
  end

  # Edit an asset will return the edit form
  def edit
    @asset = Assetabler::Asset.find(params[:id])
  end

  # Update an asset
  def update
    @asset = Assetabler::Asset.find(params[:id])
    @asset.update_attributes(permitted_params)
  end

  # Permitted params for the model
  def permitted_params
    params.require(params[:asset_type].underscore.to_sym).permit(
      :name,
      :filename,
      :body,
      :content_type,
      :width,
      :height,
      :asset_type,
      :ratio
    )
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
assetable-0.3.1 app/controllers/assetable/assets_controller.rb
assetable-0.3.0 app/controllers/assetable/assets_controller.rb