138 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			138 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| class Admin::AssetsController < OrbitBackendController
 | |
| 
 | |
|   before_filter :setup_vars
 | |
|   
 | |
|   def index
 | |
|     @assets = (params[:sort] || @filter) ? get_sorted_and_filtered("asset") : Asset.all.desc(:created_at).page(params[:page]).per(10)
 | |
|     if params[:type] == "images"
 | |
|       @assets = @assets.where(:content_type => /^image/)
 | |
|     end
 | |
|     @tag = ModuleTag.new
 | |
| 
 | |
|     @module_app = ModuleApp.find(params[:module_app_id]) rescue nil
 | |
|     raise ModuleAppError, 'Can not find ModuleApp' if @module_app.nil?
 | |
|     @module_app_id = @module_app.id rescue nil 
 | |
|     
 | |
|    render :layout => "assets" 
 | |
|   end
 | |
|   
 | |
|   def show
 | |
|   #TODO
 | |
|   end
 | |
|   
 | |
|   def new
 | |
|     @asset = Asset.new
 | |
|     @asset_categories = AssetCategory.all
 | |
|     @tags = get_tags
 | |
|     respond_to do |format|
 | |
|       format.html {}
 | |
|       format.js { render 'js/show_pop_up', :locals => {:partial => 'admin/assets/new'} }
 | |
|     end
 | |
|   end
 | |
|   
 | |
|   def edit
 | |
|     @asset = Asset.find(params[:id])
 | |
|     @tags = get_tags
 | |
|     render layout: false
 | |
|   end
 | |
|   
 | |
|   def create  
 | |
|     @asset = Asset.new(params[:asset])
 | |
|     @asset.filename = @asset.title rescue nil
 | |
|     if @asset.filename && @asset.save
 | |
|       # respond_to do |format|
 | |
|       #   format.js {
 | |
|       #     if params[:uploader]
 | |
|       #       render 'create'
 | |
|       #     else
 | |
|       #       render 'js/remove_pop_up_and_reload_content', :locals => {:function => 'replaceWith', :id => "asset_#{@asset.id}", :value => @asset, :values => nil, :partial => 'admin/assets/asset', :locals => nil}
 | |
|       #     end
 | |
|       #   }
 | |
|       # end
 | |
|       # render :json=>{"url"=>@asset.data.url,"title"=>"xxx","desc"=>"sss"}.to_json
 | |
|       render :layout=>false
 | |
|     else
 | |
|       flash[:error] = t('create.fail')
 | |
|       @asset_categories = AssetCategory.all
 | |
|       @tags = get_tags
 | |
|       respond_to do |format|
 | |
|         format.js { 
 | |
|           if params[:uploader]
 | |
|             render 'file_upload'
 | |
|           else
 | |
|             render 'js/reload_pop_up', :locals => {:value => @asset, :values => nil, :partial => 'admin/assets/new', :locals => {:is_html => false}} 
 | |
|           end
 | |
|         }
 | |
|       end
 | |
|     end
 | |
|   end
 | |
|   
 | |
|   def update
 | |
|     @asset = Asset.find(params[:id])
 | |
|     if @asset.update_attributes(params[:asset])
 | |
|      render layout: false
 | |
|     else
 | |
|       flash[:error] = t('update.fail')
 | |
|       @asset_categories = AssetCategory.all
 | |
|       @tags = get_tags
 | |
|       respond_to do |format|
 | |
|         format.html { render :action => :edit }
 | |
|         format.js { render 'js/reload_pop_up', :locals => {:value => @asset, :values => nil, :partial => 'admin/assets/edit', :locals => {:is_html => false}} }
 | |
|       end
 | |
|     end
 | |
|     
 | |
|   end
 | |
|     
 | |
|   def destroy
 | |
|     @asset = Asset.find(params[:id])
 | |
|     @asset.destroy
 | |
|     respond_to do |format|
 | |
|       format.js { render 'js/remove_element', :locals => {:id => "asset_#{@asset.id}"} }
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def delete
 | |
|     if params[:ids]
 | |
|       asset = Asset.any_in(:_id => params[:ids]).destroy_all
 | |
|     end
 | |
|     redirect_to assets_url(:filter => params[:filter], :direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options])
 | |
|   end
 | |
| 
 | |
|   def delete_files
 | |
|     @files = params[:files]
 | |
|     @files.each do |file|
 | |
|       asset = Asset.find(file)
 | |
|       asset.destroy
 | |
|     end
 | |
|     @assets = (params[:sort] || @filter) ? get_sorted_and_filtered("asset") : Asset.all.desc(:created_at).page(params[:page]).per(10)
 | |
|     if params[:type] == "images"
 | |
|       @assets = @assets.where(:content_type => /^image/)
 | |
|     end
 | |
|     # render :json =>{"success"=>true}.to_json
 | |
|   end
 | |
| 
 | |
|   def file_upload
 | |
|     @files = params['files']
 | |
|     a = Array.new
 | |
|     @files.each do |file|
 | |
|       @asset = current_user.assets.new
 | |
|       @asset.data = file
 | |
|       @asset.title_translations = {:en => file.original_filename, :zh_tw => file.original_filename}
 | |
|       # @asset.title_translations[:zh_tw] = file.original_filename
 | |
|       @asset.save!
 | |
|       a << {"url"=>@asset.data.url}
 | |
|     end
 | |
|     render :json=>{"files"=>a}.to_json
 | |
|   end
 | |
| 
 | |
|   def file_select
 | |
|     @assets = Asset.all
 | |
|     render :layout => false
 | |
|   end
 | |
|   
 | |
|   def check_permission
 | |
|     true
 | |
|   end
 | |
| 
 | |
| end
 |