authorize_resource
- before_action :check_database_writable, :only => [:new, :create, :edit, :delete]
+ before_action :check_database_writable, :only => [:new, :create, :edit, :destroy]
before_action :offline_warning, :only => [:mine, :show]
- before_action :offline_redirect, :only => [:new, :create, :edit, :delete, :data]
+ before_action :offline_redirect, :only => [:new, :create, :edit, :destroy, :data]
# Counts and selects pages of GPX traces for various criteria (by user, tags, public etc.).
# target_user - if set, specifies the user to fetch traces for. if not set will fetch all traces
@traces = @traces.limit(@page_size)
@traces = @traces.includes(:user, :tags)
- # put together SET of tags across traces, for related links
- tagset = {}
- @traces.each do |trace|
- trace.tags.reload if params[:tag] # if searched by tag, ActiveRecord won't bring back other tags, so do explicitly here
- trace.tags.each do |tag|
- tagset[tag.tag] = tag.tag
- end
- end
-
# final helper vars for view
@target_user = target_user
- @display_name = target_user.display_name if target_user
- @all_tags = tagset.values
end
def mine
begin
@trace = do_create(params[:trace][:gpx_file], params[:trace][:tagstring],
params[:trace][:description], params[:trace][:visibility])
- rescue StandardError => ex
- logger.debug ex
+ rescue StandardError => e
+ logger.debug e
end
if @trace.id
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) if Settings.trace_use_job_queue
+ TraceImporterJob.perform_later(@trace)
redirect_to :action => :index, :display_name => current_user.display_name
else
flash[:error] = t("traces.create.upload_failed") if @trace.valid?
head :not_found
end
- def delete
+ def destroy
trace = Trace.find(params[:id])
if !trace.visible?
trace.visible = false
trace.save
flash[:notice] = t ".scheduled_for_deletion"
- TraceDestroyerJob.perform_later(trace) if Settings.trace_use_job_queue
+ TraceDestroyerJob.perform_later(trace)
redirect_to :action => :index, :display_name => trace.user.display_name
end
rescue ActiveRecord::RecordNotFound
filename = "/tmp/#{rand}"
# ...and save the uploaded file to that location
- File.open(filename, "wb") { |f| f.write(file.read) }
+ File.binwrite(filename, file.read)
# Create the trace object, falsely marked as already
# inserted to stop the import daemon trying to load it
end
def offline_redirect
- redirect_to :action => :offline if Settings.status == "gpx_offline"
+ render :action => :offline if Settings.status == "gpx_offline"
end
def default_visibility