parent
							
								
									5f203ec8c0
								
							
						
					
					
						commit
						d1bc2b85d0
					
				@ -0,0 +1,6 @@
 | 
				
			||||
source "http://rubygems.org"
 | 
				
			||||
 | 
				
			||||
gemspec
 | 
				
			||||
 | 
				
			||||
gem 'carrierwave'
 | 
				
			||||
gem 'mini_magick'
 | 
				
			||||
											
												
													File diff suppressed because it is too large
													Load Diff
												
											
										
									
								@ -0,0 +1,2 @@
 | 
				
			||||
require 'bundler'
 | 
				
			||||
Bundler::GemHelper.install_tasks
 | 
				
			||||
@ -0,0 +1 @@
 | 
				
			||||
//= require kindeditor/kindeditor.js
 | 
				
			||||
@ -0,0 +1,127 @@
 | 
				
			||||
#coding: utf-8
 | 
				
			||||
require "find"
 | 
				
			||||
class Kindeditor::AssetsController < ApplicationController
 | 
				
			||||
  skip_before_filter :verify_authenticity_token
 | 
				
			||||
  def create
 | 
				
			||||
    @imgFile, @dir = params[:imgFile], params[:dir]
 | 
				
			||||
    unless @imgFile.nil?
 | 
				
			||||
      if Kindeditor::AssetUploader.save_upload_info? # save upload info into database
 | 
				
			||||
        begin
 | 
				
			||||
          @asset = "Kindeditor::#{@dir.camelize}".constantize.new(:asset => @imgFile)
 | 
				
			||||
          @asset.owner_id = params[:owner_id] ? params[:owner_id] : 0
 | 
				
			||||
          @asset.owner_type = params[:owner_type] ? params[:owner_type] : ""
 | 
				
			||||
          logger.warn '========= Warning: the owner_id is 0, "delete uploaded files automatically" will not work. =========' if defined?(logger) && @asset.owner_id == 0
 | 
				
			||||
          @asset.asset_type = @dir
 | 
				
			||||
          if @asset.save
 | 
				
			||||
            render :text => ({:error => 0, :url => @asset.asset.url,:asset_id => @asset.id}.to_json)
 | 
				
			||||
          else
 | 
				
			||||
            show_error(@asset.errors.full_messages)
 | 
				
			||||
          end
 | 
				
			||||
        rescue Exception => e
 | 
				
			||||
          show_error(e.to_s)
 | 
				
			||||
        end
 | 
				
			||||
      else # do not touch database
 | 
				
			||||
        begin
 | 
				
			||||
          uploader = "Kindeditor::#{@dir.camelize}Uploader".constantize.new
 | 
				
			||||
          uploader.store!(@imgFile)
 | 
				
			||||
          render :text => ({:error => 0, :url => uploader.url}.to_json)
 | 
				
			||||
        rescue CarrierWave::UploadError => e
 | 
				
			||||
          show_error(e.message)
 | 
				
			||||
        rescue Exception => e
 | 
				
			||||
          show_error(e.to_s)
 | 
				
			||||
        end
 | 
				
			||||
      end
 | 
				
			||||
    else
 | 
				
			||||
      show_error("No File Selected!")
 | 
				
			||||
    end
 | 
				
			||||
  end
 | 
				
			||||
 | 
				
			||||
  def list
 | 
				
			||||
    @root_path = "#{Rails.public_path}/#{RailsKindeditor.upload_store_dir}/"
 | 
				
			||||
    @root_url = "/#{RailsKindeditor.upload_store_dir}/"
 | 
				
			||||
    @img_ext = Kindeditor::AssetUploader::EXT_NAMES[:image]
 | 
				
			||||
    @dir = params[:dir].strip || ""
 | 
				
			||||
    unless Kindeditor::AssetUploader::EXT_NAMES.keys.map(&:to_s).push("").include?(@dir)
 | 
				
			||||
      render :text => "Invalid Directory name."
 | 
				
			||||
      return
 | 
				
			||||
    end
 | 
				
			||||
    
 | 
				
			||||
    Dir.chdir(Rails.public_path)
 | 
				
			||||
    RailsKindeditor.upload_store_dir.split('/').each do |dir|
 | 
				
			||||
      Dir.mkdir(dir) unless Dir.exist?(dir)
 | 
				
			||||
      Dir.chdir(dir)
 | 
				
			||||
    end
 | 
				
			||||
    
 | 
				
			||||
    Dir.mkdir(@dir) unless Dir.exist?(@dir)
 | 
				
			||||
    
 | 
				
			||||
    @root_path += @dir + "/"
 | 
				
			||||
    @root_url += @dir + "/"
 | 
				
			||||
    
 | 
				
			||||
    @path = params[:path].strip || ""
 | 
				
			||||
    if @path.empty?
 | 
				
			||||
      @current_path = @root_path
 | 
				
			||||
      @current_url = @root_url
 | 
				
			||||
      @current_dir_path = ""
 | 
				
			||||
      @moveup_dir_path = ""
 | 
				
			||||
    else
 | 
				
			||||
      @current_path = @root_path + @path + "/"      
 | 
				
			||||
      @current_url = @root_url + @path + "/"
 | 
				
			||||
      @current_dir_path = @path
 | 
				
			||||
      @moveup_dir_path = @current_dir_path.gsub(/(.*?)[^\/]+\/$/, "")
 | 
				
			||||
    end
 | 
				
			||||
    @order = %w(name size type).include?(params[:order].downcase) ? params[:order].downcase : "name"
 | 
				
			||||
    if !@current_path.match(/\.\./).nil?
 | 
				
			||||
      render :text => "Access is not allowed."
 | 
				
			||||
      return
 | 
				
			||||
    end
 | 
				
			||||
    if @current_path.match(/\/$/).nil?
 | 
				
			||||
      render :text => "Parameter is not valid."
 | 
				
			||||
      return
 | 
				
			||||
    end
 | 
				
			||||
    if !File.exist?(@current_path) || !File.directory?(@current_path)
 | 
				
			||||
      render :text => "Directory does not exist."
 | 
				
			||||
      return
 | 
				
			||||
    end
 | 
				
			||||
    @file_list = []
 | 
				
			||||
    Dir.foreach(@current_path) do |filename|  
 | 
				
			||||
      hash = {}
 | 
				
			||||
      if filename != "." and filename != ".." and filename != ".DS_Store"
 | 
				
			||||
        file = @current_path + filename
 | 
				
			||||
        if File.directory?(file)
 | 
				
			||||
          hash[:is_dir] = true
 | 
				
			||||
          hash[:has_file] = (Dir.foreach(file).count > 2)
 | 
				
			||||
          hash[:filesize] = 0
 | 
				
			||||
          hash[:is_photo] = false
 | 
				
			||||
          hash[:filetype] = ""
 | 
				
			||||
        else
 | 
				
			||||
          hash[:is_dir] = false
 | 
				
			||||
          hash[:has_file] = false
 | 
				
			||||
          hash[:filesize] = File.size(file)
 | 
				
			||||
          hash[:dir_path] = ""
 | 
				
			||||
          file_ext = file.gsub(/.*\./,"")
 | 
				
			||||
          hash[:is_photo] = @img_ext.include?(file_ext)
 | 
				
			||||
          hash[:filetype] = file_ext
 | 
				
			||||
        end
 | 
				
			||||
        hash[:filename] = filename
 | 
				
			||||
        hash[:datetime] = File.mtime(file).to_s(:db)
 | 
				
			||||
        @file_list << hash
 | 
				
			||||
      end
 | 
				
			||||
    end
 | 
				
			||||
 | 
				
			||||
    @file_list.sort! {|a, b| a["file#{@order}".to_sym] <=> b["file#{@order}".to_sym]}
 | 
				
			||||
    
 | 
				
			||||
    @result = {}
 | 
				
			||||
    @result[:moveup_dir_path] = @moveup_dir_path
 | 
				
			||||
    @result[:current_dir_path] = @current_dir_path
 | 
				
			||||
    @result[:current_url] = @current_url
 | 
				
			||||
    @result[:total_count] = @file_list.count
 | 
				
			||||
    @result[:file_list] = @file_list
 | 
				
			||||
    render :text => @result.to_json
 | 
				
			||||
  end
 | 
				
			||||
  
 | 
				
			||||
  private
 | 
				
			||||
  def show_error(msg)
 | 
				
			||||
    render :text => ({:error => 1, :message => msg}.to_json)
 | 
				
			||||
  end
 | 
				
			||||
  
 | 
				
			||||
end
 | 
				
			||||
@ -0,0 +1,91 @@
 | 
				
			||||
# encoding: utf-8
 | 
				
			||||
 | 
				
			||||
require 'carrierwave/processing/mime_types'
 | 
				
			||||
 | 
				
			||||
class Kindeditor::AssetUploader < CarrierWave::Uploader::Base
 | 
				
			||||
  
 | 
				
			||||
  EXT_NAMES = {:image => RailsKindeditor.upload_image_ext,
 | 
				
			||||
               :flash => RailsKindeditor.upload_flash_ext,
 | 
				
			||||
               :media => RailsKindeditor.upload_media_ext,
 | 
				
			||||
               :file  => RailsKindeditor.upload_file_ext}
 | 
				
			||||
 | 
				
			||||
  # Include RMagick or ImageScience support:
 | 
				
			||||
  # include CarrierWave::RMagick
 | 
				
			||||
  # include CarrierWave::ImageScience
 | 
				
			||||
  # include CarrierWave::MiniMagick
 | 
				
			||||
 | 
				
			||||
  # Choose what kind of storage to use for this uploader:
 | 
				
			||||
  storage :file
 | 
				
			||||
  # storage :fog
 | 
				
			||||
 | 
				
			||||
  # Override the directory where uploaded files will be stored.
 | 
				
			||||
  # This is a sensible default for uploaders that are meant to be mounted:
 | 
				
			||||
  def store_dir
 | 
				
			||||
    if Kindeditor::AssetUploader.save_upload_info?
 | 
				
			||||
      "#{RailsKindeditor.upload_store_dir}/#{model.asset_type.to_s.underscore.gsub(/(kindeditor\/)|(_uploader)/, '')}/#{model.created_at.strftime("%Y%m")}"
 | 
				
			||||
    else
 | 
				
			||||
      "#{RailsKindeditor.upload_store_dir}/#{self.class.to_s.underscore.gsub(/(kindeditor\/)|(_uploader)/, '')}/#{Time.now.strftime("%Y%m")}"
 | 
				
			||||
    end
 | 
				
			||||
  end
 | 
				
			||||
 | 
				
			||||
  def cache_dir
 | 
				
			||||
    "#{Rails.root}/tmp/uploads"
 | 
				
			||||
  end
 | 
				
			||||
 | 
				
			||||
  # Provide a default URL as a default if there hasn't been a file uploaded:
 | 
				
			||||
  # def default_url
 | 
				
			||||
  #   "/images/fallback/" + [version_name, "default.png"].compact.join('_')
 | 
				
			||||
  # end
 | 
				
			||||
 | 
				
			||||
  # Process files as they are uploaded:
 | 
				
			||||
  # process :scale => [200, 300]
 | 
				
			||||
  #
 | 
				
			||||
  # def scale(width, height)
 | 
				
			||||
  #   # do something
 | 
				
			||||
  # end
 | 
				
			||||
 | 
				
			||||
  # Create different versions of your uploaded files:
 | 
				
			||||
  # version :thumb do
 | 
				
			||||
  #   process :scale => [50, 50]
 | 
				
			||||
  # end
 | 
				
			||||
 | 
				
			||||
  # Add a white list of extensions which are allowed to be uploaded.
 | 
				
			||||
  # For images you might use something like this:
 | 
				
			||||
 | 
				
			||||
  # Override the filename of the uploaded files:
 | 
				
			||||
  # Avoid using model.id or version_name here, see uploader/store.rb for details.
 | 
				
			||||
  before :store, :remember_cache_id
 | 
				
			||||
  after :store, :delete_tmp_dir
 | 
				
			||||
 | 
				
			||||
  # store! nil's the cache_id after it finishes so we need to remember it for deletition
 | 
				
			||||
  def remember_cache_id(new_file)
 | 
				
			||||
    @cache_id_was = cache_id
 | 
				
			||||
  end
 | 
				
			||||
 | 
				
			||||
  def delete_tmp_dir(new_file)
 | 
				
			||||
    # make sure we don't delete other things accidentally by checking the name pattern
 | 
				
			||||
    if @cache_id_was.present? && @cache_id_was =~ /\A[\d]{8}\-[\d]{4}\-[\d]+\-[\d]{4}\z/
 | 
				
			||||
      FileUtils.rm_rf(File.join(cache_dir, @cache_id_was))
 | 
				
			||||
    end
 | 
				
			||||
  end
 | 
				
			||||
 | 
				
			||||
  def filename
 | 
				
			||||
    if original_filename 
 | 
				
			||||
      @name ||= Digest::MD5.hexdigest(File.dirname(current_path)).slice(0, 12)
 | 
				
			||||
      "#{@name}.#{file.extension}"
 | 
				
			||||
    end
 | 
				
			||||
  end
 | 
				
			||||
  
 | 
				
			||||
  def self.save_upload_info?
 | 
				
			||||
    begin
 | 
				
			||||
      %w(asset file flash image media).each do |s|
 | 
				
			||||
        "Kindeditor::#{s.camelize}".constantize
 | 
				
			||||
      end
 | 
				
			||||
      return true
 | 
				
			||||
    rescue
 | 
				
			||||
      return false
 | 
				
			||||
    end
 | 
				
			||||
  end
 | 
				
			||||
 | 
				
			||||
end
 | 
				
			||||
 | 
				
			||||
@ -0,0 +1,10 @@
 | 
				
			||||
# encoding: utf-8
 | 
				
			||||
 | 
				
			||||
class Kindeditor::FileUploader < Kindeditor::AssetUploader
 | 
				
			||||
 | 
				
			||||
  def extension_white_list
 | 
				
			||||
    EXT_NAMES[:file]
 | 
				
			||||
  end
 | 
				
			||||
 | 
				
			||||
end
 | 
				
			||||
 | 
				
			||||
@ -0,0 +1,10 @@
 | 
				
			||||
# encoding: utf-8
 | 
				
			||||
 | 
				
			||||
class Kindeditor::FlashUploader < Kindeditor::AssetUploader
 | 
				
			||||
 | 
				
			||||
  def extension_white_list
 | 
				
			||||
    EXT_NAMES[:flash]
 | 
				
			||||
  end
 | 
				
			||||
 | 
				
			||||
end
 | 
				
			||||
 | 
				
			||||
@ -0,0 +1,10 @@
 | 
				
			||||
# encoding: utf-8
 | 
				
			||||
 | 
				
			||||
class Kindeditor::ImageUploader < Kindeditor::AssetUploader
 | 
				
			||||
 | 
				
			||||
  def extension_white_list
 | 
				
			||||
    EXT_NAMES[:image]
 | 
				
			||||
  end
 | 
				
			||||
 | 
				
			||||
end
 | 
				
			||||
 | 
				
			||||
@ -0,0 +1,10 @@
 | 
				
			||||
# encoding: utf-8
 | 
				
			||||
 | 
				
			||||
class Kindeditor::MediaUploader < Kindeditor::AssetUploader
 | 
				
			||||
 | 
				
			||||
  def extension_white_list
 | 
				
			||||
    EXT_NAMES[:media]
 | 
				
			||||
  end
 | 
				
			||||
 | 
				
			||||
end
 | 
				
			||||
 | 
				
			||||
@ -0,0 +1,6 @@
 | 
				
			||||
Rails.application.routes.draw do
 | 
				
			||||
  namespace :kindeditor do
 | 
				
			||||
    post "/upload" => "assets#create"
 | 
				
			||||
    get  "/filemanager" => "assets#list"
 | 
				
			||||
  end
 | 
				
			||||
end
 | 
				
			||||
@ -0,0 +1,10 @@
 | 
				
			||||
Description:
 | 
				
			||||
    install kindeditor for your application
 | 
				
			||||
 | 
				
			||||
Example:
 | 
				
			||||
    rails generate rails_kindeditor:install
 | 
				
			||||
 | 
				
			||||
    This will create:
 | 
				
			||||
        config/kindeditor.rb
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
@ -0,0 +1,23 @@
 | 
				
			||||
module RailsKindeditor
 | 
				
			||||
  class InstallGenerator < Rails::Generators::Base
 | 
				
			||||
    source_root File.expand_path('../templates', __FILE__)
 | 
				
			||||
    desc "Install kindeditor for your application."
 | 
				
			||||
 | 
				
			||||
    def copy_kindeditor_files
 | 
				
			||||
      if ::Rails.version < "3.1.0"
 | 
				
			||||
        warn "Warning: rails_kindeditor ~> v0.3.0 only support Rails3.1+!"
 | 
				
			||||
        warn "If you're using rails3.0.x, please check rails_kindeditor v0.2.8"
 | 
				
			||||
      else
 | 
				
			||||
        template "rails_kindeditor.rb", "config/initializers/rails_kindeditor.rb"
 | 
				
			||||
      end
 | 
				
			||||
    end
 | 
				
			||||
    
 | 
				
			||||
    def insert_or_copy_js_files
 | 
				
			||||
      if File.exist?('app/assets/javascripts/application.js')
 | 
				
			||||
        insert_into_file "app/assets/javascripts/application.js", "//= require kindeditor\n", :after => "jquery_ujs\n"
 | 
				
			||||
      else
 | 
				
			||||
        copy_file "application.js", "app/assets/javascripts/application.js"
 | 
				
			||||
      end
 | 
				
			||||
    end
 | 
				
			||||
  end
 | 
				
			||||
end
 | 
				
			||||
@ -0,0 +1,17 @@
 | 
				
			||||
// This is a manifest file that'll be compiled into application.js, which will include all the files
 | 
				
			||||
// listed below.
 | 
				
			||||
//
 | 
				
			||||
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
 | 
				
			||||
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
 | 
				
			||||
//
 | 
				
			||||
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
 | 
				
			||||
// the compiled file.
 | 
				
			||||
//
 | 
				
			||||
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
 | 
				
			||||
// GO AFTER THE REQUIRES BELOW.
 | 
				
			||||
//
 | 
				
			||||
//= require jquery
 | 
				
			||||
//= require jquery_ujs
 | 
				
			||||
//= require kindeditor
 | 
				
			||||
//= require_tree .
 | 
				
			||||
 | 
				
			||||
@ -0,0 +1,19 @@
 | 
				
			||||
RailsKindeditor.setup do |config|
 | 
				
			||||
 | 
				
			||||
  # Specify the subfolders in public directory.
 | 
				
			||||
  # You can customize it , eg: config.upload_dir = 'this/is/my/folder'
 | 
				
			||||
  config.upload_dir = 'uploads'
 | 
				
			||||
 | 
				
			||||
  # Allowed file types for upload.
 | 
				
			||||
  config.upload_image_ext = %w[gif jpg jpeg png bmp]
 | 
				
			||||
  config.upload_flash_ext = %w[swf flv]
 | 
				
			||||
  config.upload_media_ext = %w[swf flv mp3 wav wma wmv mid avi mpg asf rm rmvb]
 | 
				
			||||
  config.upload_file_ext = %w[doc docx xls xlsx ppt htm html txt zip rar gz bz2]
 | 
				
			||||
  
 | 
				
			||||
  # Porcess upload image size
 | 
				
			||||
  # eg: 1600x1600 => 800x800
 | 
				
			||||
  #     1600x800  => 800x400
 | 
				
			||||
  #     400x400   => 400x400  # No Change
 | 
				
			||||
  # config.image_resize_to_limit = [800, 800]
 | 
				
			||||
 | 
				
			||||
end
 | 
				
			||||
@ -0,0 +1,14 @@
 | 
				
			||||
Description:
 | 
				
			||||
    Copy model, migration and uploader to your application.
 | 
				
			||||
 | 
				
			||||
Example:
 | 
				
			||||
    rails generate rails_kindeditor:migration
 | 
				
			||||
 | 
				
			||||
    This will create:
 | 
				
			||||
        app/models/kindeditor/asset.rb
 | 
				
			||||
        app/models/kindeditor/file.rb
 | 
				
			||||
        app/models/kindeditor/flash.rb
 | 
				
			||||
        app/models/kindeditor/image.rb
 | 
				
			||||
        app/models/kindeditor/media.rb
 | 
				
			||||
        db/migrate/xxxxxxxxx_create_kindeditor_assets.rb
 | 
				
			||||
 | 
				
			||||
@ -0,0 +1,36 @@
 | 
				
			||||
module RailsKindeditor
 | 
				
			||||
  class MigrationGenerator < Rails::Generators::Base
 | 
				
			||||
    include Rails::Generators::Migration
 | 
				
			||||
    source_root File.expand_path('../templates', __FILE__)
 | 
				
			||||
    desc "Copy model and migration to your application."
 | 
				
			||||
    class_option :orm, :type => :string, :aliases => "-o", :default => "active_record", :desc => "ORM options: active_record or mongoid"
 | 
				
			||||
 | 
				
			||||
    def copy_files
 | 
				
			||||
      orm = options[:orm].to_s
 | 
				
			||||
      orm = "active_record" unless %w{active_record mongoid}.include?(orm)
 | 
				
			||||
      %w(asset file flash image media).each do |file|
 | 
				
			||||
        copy_model(orm, file)
 | 
				
			||||
      end
 | 
				
			||||
      if Rails.version < '4.0.0' && Rails.version >= '3.0.0' # insert code for rails3
 | 
				
			||||
        insert_into_file "app/models/kindeditor/asset.rb", "  attr_accessible :asset\n", :after => "before_save :update_asset_attributes\n"
 | 
				
			||||
      end
 | 
				
			||||
      if orm == "active_record"
 | 
				
			||||
        migration_template "migration/migration.rb", "db/migrate/create_kindeditor_assets.rb"
 | 
				
			||||
      end
 | 
				
			||||
    end
 | 
				
			||||
 | 
				
			||||
   def self.next_migration_number(dirname)
 | 
				
			||||
     if ActiveRecord::Base.timestamped_migrations
 | 
				
			||||
       Time.now.utc.strftime("%Y%m%d%H%M%S")
 | 
				
			||||
     else
 | 
				
			||||
       "%.3d" % (current_migration_number(dirname) + 1)
 | 
				
			||||
     end
 | 
				
			||||
   end
 | 
				
			||||
   
 | 
				
			||||
   private
 | 
				
			||||
   def copy_model(orm, name)
 | 
				
			||||
     template "models/#{orm}/kindeditor/#{name}.rb", "app/models/kindeditor/#{name}.rb"
 | 
				
			||||
   end
 | 
				
			||||
  end
 | 
				
			||||
end
 | 
				
			||||
 | 
				
			||||
@ -0,0 +1,17 @@
 | 
				
			||||
class CreateKindeditorAssets < ActiveRecord::Migration
 | 
				
			||||
  def self.up
 | 
				
			||||
    create_table :kindeditor_assets do |t|
 | 
				
			||||
      t.string :asset
 | 
				
			||||
      t.integer :file_size
 | 
				
			||||
      t.string :file_type
 | 
				
			||||
      t.integer :owner_id
 | 
				
			||||
      t.string :asset_type # list by kindeditor: image, file, media, flash
 | 
				
			||||
      t.timestamps
 | 
				
			||||
    end
 | 
				
			||||
  end
 | 
				
			||||
 | 
				
			||||
  def self.down
 | 
				
			||||
    drop_table :kindeditor_assets
 | 
				
			||||
  end
 | 
				
			||||
end
 | 
				
			||||
 | 
				
			||||
@ -0,0 +1,14 @@
 | 
				
			||||
class Kindeditor::Asset < ActiveRecord::Base
 | 
				
			||||
  self.table_name = 'kindeditor_assets'
 | 
				
			||||
  mount_uploader :asset, Kindeditor::AssetUploader
 | 
				
			||||
  validates_presence_of :asset
 | 
				
			||||
  before_save :update_asset_attributes
 | 
				
			||||
  
 | 
				
			||||
  private
 | 
				
			||||
  def update_asset_attributes
 | 
				
			||||
    if asset.present? && asset_changed?
 | 
				
			||||
      self.file_size = asset.file.size
 | 
				
			||||
      self.file_type = asset.file.content_type
 | 
				
			||||
    end
 | 
				
			||||
  end
 | 
				
			||||
end
 | 
				
			||||
@ -0,0 +1,3 @@
 | 
				
			||||
class Kindeditor::File < Kindeditor::Asset
 | 
				
			||||
  mount_uploader :asset, Kindeditor::FileUploader
 | 
				
			||||
end
 | 
				
			||||
@ -0,0 +1,3 @@
 | 
				
			||||
class Kindeditor::Flash < Kindeditor::Asset
 | 
				
			||||
  mount_uploader :asset, Kindeditor::FlashUploader
 | 
				
			||||
end
 | 
				
			||||
@ -0,0 +1,3 @@
 | 
				
			||||
class Kindeditor::Image < Kindeditor::Asset
 | 
				
			||||
  mount_uploader :asset, Kindeditor::ImageUploader
 | 
				
			||||
end
 | 
				
			||||
@ -0,0 +1,3 @@
 | 
				
			||||
class Kindeditor::Media < Kindeditor::Asset
 | 
				
			||||
  mount_uploader :asset, Kindeditor::MediaUploader
 | 
				
			||||
end
 | 
				
			||||
@ -0,0 +1,27 @@
 | 
				
			||||
require 'carrierwave/mongoid'
 | 
				
			||||
 | 
				
			||||
class Kindeditor::Asset
 | 
				
			||||
  include Mongoid::Document
 | 
				
			||||
  include Mongoid::Timestamps
 | 
				
			||||
  
 | 
				
			||||
  field :file_size, :type => Integer
 | 
				
			||||
  field :file_type, :type => String
 | 
				
			||||
  field :owner_id, :type => Integer
 | 
				
			||||
  field :asset_type, :type => String
 | 
				
			||||
  
 | 
				
			||||
  mount_uploader :asset, Kindeditor::AssetUploader
 | 
				
			||||
  validates_presence_of :asset
 | 
				
			||||
  before_save :update_asset_attributes
 | 
				
			||||
  
 | 
				
			||||
  def self.collection_name
 | 
				
			||||
    :kindeditor_assets
 | 
				
			||||
  end
 | 
				
			||||
 | 
				
			||||
  private
 | 
				
			||||
  def update_asset_attributes
 | 
				
			||||
    if asset.present? && asset_changed?
 | 
				
			||||
      self.file_size = asset.file.size
 | 
				
			||||
      self.file_type = asset.file.content_type
 | 
				
			||||
    end
 | 
				
			||||
  end
 | 
				
			||||
end
 | 
				
			||||
@ -0,0 +1,3 @@
 | 
				
			||||
class Kindeditor::File < Kindeditor::Asset
 | 
				
			||||
  mount_uploader :asset, Kindeditor::FileUploader
 | 
				
			||||
end
 | 
				
			||||
Some files were not shown because too many files have changed in this diff Show More
					Loading…
					
					
				
		Reference in new issue