X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/01cfcbd845c5d8d33f83bb22a24cf35932da2e29..c43fac76df4751f4b4d04c6f197f5b28229bd624:/app/controllers/trace_controller.rb diff --git a/app/controllers/trace_controller.rb b/app/controllers/trace_controller.rb index fcf66dac1..262af0f84 100644 --- a/app/controllers/trace_controller.rb +++ b/app/controllers/trace_controller.rb @@ -13,6 +13,8 @@ class TraceController < ApplicationController # from display name, pick up user id if one user's traces only display_name = params[:display_name] if target_user.nil? and display_name and display_name != '' + @paging_action = 'view' + @display_name = display_name target_user = User.find(:first, :conditions => [ "display_name = ?", display_name]) end @@ -98,16 +100,16 @@ class TraceController < ApplicationController def create filename = "/tmp/#{rand}" - File.open(filename, "w") { |f| f.write(@params['trace']['gpx_file'].read) } - @params['trace']['name'] = @params['trace']['gpx_file'].original_filename.gsub(/[^a-zA-Z0-9.]/, '_') # This makes sure filenames are sane - @params['trace'].delete('gpx_file') # remove the field from the hash, because there's no such field in the DB - @trace = Trace.new(@params['trace']) + File.open(filename, "w") { |f| f.write(params[:trace][:gpx_file].read) } + params[:trace][:name] = params[:trace][:gpx_file].original_filename.gsub(/[^a-zA-Z0-9.]/, '_') # This makes sure filenames are sane + params[:trace].delete('gpx_file') # remove the field from the hash, because there's no such field in the DB + @trace = Trace.new(params[:trace]) @trace.inserted = false @trace.user = @user @trace.timestamp = Time.now if @trace.save - saved_filename = "/tmp/#{@trace.id}.gpx" + saved_filename = "/home/osm/gpx/#{@trace.id}.gpx" File.rename(filename, saved_filename) logger.info("id is #{@trace.id}") @@ -115,14 +117,15 @@ class TraceController < ApplicationController redirect_to :action => 'mine' else # fixme throw an error here - # render :action => 'mine' + redirect_to :action => 'mine' + flash[:notice] = "You haven't entered a tag or a description for yoru traces." end end def data trace = Trace.find(params[:id]) if trace.public? or (@user and @user == trace.user) - send_data(File.open("/tmp/#{trace.id}.gpx",'r').read , :filename => "#{trace.id}.gpx", :type => 'text/plain', :disposition => 'inline') + send_data(File.open("/home/osm/gpx/#{trace.id}.gpx",'r').read , :filename => "#{trace.id}.gpx", :type => 'text/plain', :disposition => 'inline') end end @@ -177,17 +180,17 @@ class TraceController < ApplicationController filename = "/tmp/#{rand}" File.open(filename, "w") { |f| f.write(request.raw_post) } - @params['trace'] = {} - @params['trace']['name'] = params[:filename] - @params['trace']['tagstring'] = params[:tags] - @params['trace']['description'] = params[:description] - @trace = Trace.new(@params['trace']) + params[:trace] = {} + params[:trace][:name] = params[:filename] + params[:trace][:tagstring] = params[:tags] + params[:trace][:description] = params[:description] + @trace = Trace.new(params[:trace]) @trace.inserted = false @trace.user = @user @trace.timestamp = Time.now if @trace.save - saved_filename = "/tmp/#{@trace.id}.gpx" + saved_filename = "/home/osm/gpx/#{@trace.id}.gpx" File.rename(filename, saved_filename) logger.info("id is #{@trace.id}") flash[:notice] = "Your GPX file has been uploaded and is awaiting insertion in to the database. This will usually happen within half an hour, and an email will be sent to you on completion."