resources_controller.rb
上传用户:netsea168
上传日期:2022-07-22
资源大小:4652k
文件大小:3k
源码类别:

Ajax

开发平台:

Others

  1. class Admin::ResourcesController < Admin::BaseController
  2.   upload_status_for :file_upload, :status => :upload_status
  3.   cache_sweeper :blog_sweeper
  4.   
  5.   def upload
  6.     begin
  7.       case request.method
  8.         when :post
  9.           file = params[:upload][:filename]
  10.           unless file.content_type
  11.             mime = 'text/plain'
  12.           else
  13.             mime = file.content_type.chomp
  14.           end
  15.           @up = Resource.create(:filename => file.original_filename, :mime => mime, :created_at => Time.now)
  16.           @up.write_to_disk(file)
  17.           @up.create_thumbnail
  18.           
  19.           @message = _('File uploaded: ')+ file.size.to_s
  20.           finish_upload_status "'#{@message}'"
  21.       end
  22.     rescue
  23.       @message = "'" + _('Unable to upload') + " #{file.original_filename}'"
  24.       @up.destroy unless @up.nil?
  25.       raise
  26.     end
  27.   end
  28.   def update
  29.     @resource = Resource.find(params[:resource][:id])
  30.     @resource.attributes = params[:resource]
  31.     if request.post? and @resource.save
  32.       flash[:notice] = _('Metadata was successfully updated.')
  33.     else
  34.       flash[:error] = _('Not all metadata was defined correctly.')
  35.       @resource.errors.each do |meta_key,val|
  36.         flash[:error] << "<br />" + val
  37.       end
  38.     end
  39.     redirect_to :action => 'index'
  40.   end
  41.   def set_mime
  42.     @resource = Resource.find(params[:resource][:id])
  43.     @resource.mime = params[:resource][:mime] unless params[:resource][:mime].empty?
  44.     if request.post? and @resource.save
  45.       flash[:notice] = _('Content Type was successfully updated.')
  46.     else
  47.       flash[:error] = _("Error occurred while updating Content Type.")
  48.     end
  49.     redirect_to :action => "index"
  50.   end
  51.   def upload_status
  52.     render :inline => "<%= upload_progress.completed_percent rescue 0 %> % " + _("complete"), :layout => false
  53.   end
  54.   def index
  55.     @r = Resource.new
  56.     @resources = Resource.paginate :page => params[:page], :conditions => "mime NOT LIKE '%image%'", :order => 'created_at DESC', :per_page => this_blog.admin_display_elements
  57.   end
  58.   
  59.   def images
  60.     @resources = Resource.paginate :page => params[:page], :conditions => "mime LIKE '%image%'", :order => 'created_at DESC', :per_page => this_blog.admin_display_elements
  61.   end
  62.   
  63.   def get_thumbnails
  64.     position = params[:position].to_i
  65.     
  66.     @resources = Resource.find(:all, :conditions => "mime LIKE '%image%'", :order => 'created_at DESC', :limit => "#{position}, 10")
  67.     
  68.     render 'get_thumbnails', :layout => false
  69.     
  70.   end
  71.   
  72.   def destroy
  73.     begin
  74.       @file = Resource.find(params[:id])
  75.       mime = @file.mime
  76.       case request.method
  77.         when :post
  78.           @file.destroy
  79.           if mime =~ /image/
  80.             redirect_to :action => 'images'
  81.           else
  82.             redirect_to :action => 'index'
  83.           end
  84.       end
  85.     rescue
  86.       raise
  87.     end
  88.   end
  89. end