Changeset 1834

Show
Ignore:
Timestamp:
10/24/08 09:02:20 (2 months ago)
Author:
dbryson
Message:

added file upload

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • hive/trunk/data_webapp/app/controllers/queue_urls_controller.rb

    r1704 r1834  
    3333    @queue_urls = QueueUrl.paginate(:conditions => {:host_id => 0},:order => 'priority DESC, count DESC, created_at ASC',:page => params[:page],:per_page => 10) 
    3434    @queue_url = QueueUrl.new 
     35    @upload = UploadFile.new 
    3536 
    3637    respond_to do |format| 
     
    3940    end 
    4041  end 
     42   
     43  # Handle the file upload form 
     44  def create_upload 
     45    upload = UploadFile.new(params[:upload]) 
     46     
     47    if upload.save 
     48      full_url = "#{request.protocol}#{request.host_with_port}#{upload.relative_url}" 
     49      job_hash = { 
     50        :source => { 
     51          :feed_type => 'web', 
     52          :name => 'drone_interface', 
     53        }, 
     54        :notify_source => params[:notify], 
     55        :queue_urls => { 
     56          full_url => params[:priority] 
     57        } 
     58      } 
     59       
     60      # Insert and get the inserted job 
     61      job = DroneJob.insert(job_hash) 
     62      job_id = (job.nil? || job.id.nil?) ? 0 : job.id 
     63 
     64      @queue_url = []  
     65      if not job.nil? 
     66        @queue_url << job.queue_urls 
     67      end 
     68       
     69      if job_id > 0 and @queue_url.size > 0 
     70        flash[:notice] = 'QueueUrl was successfully created.' 
     71        redirect_to(:action => 'new') 
     72      else 
     73        flash[:notice] = 'Failed to create a job for your request.<br>Perhaps an invalid url?' 
     74        redirect_to :action => "new"  
     75      end 
     76    else 
     77      # Uggg...Since we redirect I must create a custom message 
     78      str = "" 
     79      str << "File Upload Error(s):<br/>" 
     80      str << "<ul>" 
     81      upload.errors.full_messages.each do |m| 
     82      str << "<li>#{m}</li>" 
     83      end 
     84      str << "</ul>" 
     85      flash[:notice] = str 
     86      redirect_to :action => 'new' 
     87    end 
     88  end 
     89   
    4190  # POST /queue_urls 
    4291  # POST /queue_urls.xml 
    4392  def create 
    44     # Create a job hash for the requested URL 
    4593    job_hash = { 
    4694      :source => { 
    47         :feed_type => 'web', 
    48         :name => 'drone_interface', 
     95          :feed_type => 'web', 
     96          :name => 'drone_interface', 
    4997      }, 
    5098      :notify_source => params[:notify], 
    5199      :queue_urls => { 
    52         params[:queue_url][:url] => params[:queue_url][:priority] 
     100          params[:queue_url][:url] => params[:queue_url][:priority] 
    53101      } 
    54102    } 
     103   
    55104    if not params[:address].nil? 
    56105      job_hash[:source][:response_protocol] = 'smtp' 
    57106      job_hash[:source][:response_address] = params[:address] 
    58107    end 
    59      
     108         
    60109    # Insert and get the inserted job 
    61110    job = DroneJob.insert(job_hash) 
     
    66115      @queue_url << job.queue_urls 
    67116    end 
    68  
     117     
    69118    respond_to do |format| 
    70119      if job_id > 0 and @queue_url.size > 0