class TracesController < ApplicationController
+ include UserMethods
+
layout "site", :except => :georss
before_action :authorize_web
# from display name, pick up user id if one user's traces only
display_name = params[:display_name]
if display_name.present?
- target_user = User.active.where(:display_name => display_name).first
+ target_user = User.active.find_by(:display_name => display_name)
if target_user.nil?
render_unknown_user display_name
return
@params = params.permit(:display_name, :tag, :before, :after)
@traces = if params[:before]
- traces.where("id < ?", params[:before]).order(:id => :desc)
+ traces.where("gpx_files.id < ?", params[:before]).order(:id => :desc)
elsif params[:after]
- traces.where("id > ?", params[:after]).order(:id => :asc)
+ traces.where("gpx_files.id > ?", params[:after]).order(:id => :asc)
else
traces.order(:id => :desc)
end
flash[:notice] = t ".trace_uploaded"
flash[:warning] = t ".traces_waiting", :count => current_user.traces.where(:inserted => false).count if current_user.traces.where(:inserted => false).count > 4
- TraceImporterJob.perform_later(@trace)
+ @trace.schedule_import
redirect_to :action => :index, :display_name => current_user.display_name
else
flash[:error] = t(".upload_failed") if @trace.valid?
trace.visible = false
trace.save
flash[:notice] = t ".scheduled_for_deletion"
- TraceDestroyerJob.perform_later(trace)
+ trace.schedule_destruction
redirect_to :action => :index, :display_name => trace.user.display_name
end
rescue ActiveRecord::RecordNotFound
# Save the trace object
if trace.save
# Finally save the user's preferred privacy level
- if pref = current_user.preferences.where(:k => "gps.trace.visibility").first
+ if pref = current_user.preferences.find_by(:k => "gps.trace.visibility")
pref.v = visibility
pref.save
else
end
def default_visibility
- visibility = current_user.preferences.where(:k => "gps.trace.visibility").first
+ visibility = current_user.preferences.find_by(:k => "gps.trace.visibility")
if visibility
visibility.v
- elsif current_user.preferences.where(:k => "gps.trace.public", :v => "default").first.nil?
+ elsif current_user.preferences.find_by(:k => "gps.trace.public", :v => "default").nil?
"private"
else
"public"