include UserMethods
include PaginationMethods
- layout "site", :except => :georss
+ layout "site"
before_action :authorize_web
before_action :set_locale
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, :destroy, :data]
+ before_action :offline_redirect, :only => [:new, :create, :edit, :destroy]
# 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
@trace.schedule_import
redirect_to :action => :index, :display_name => current_user.display_name
else
- flash[:error] = t(".upload_failed") if @trace.valid?
+ flash.now[:error] = t(".upload_failed") if @trace.valid?
render :action => "new"
end
flash[:notice] = t ".updated"
redirect_to :action => "show", :display_name => current_user.display_name
else
- @title = t ".title", :name => @trace.name
+ @title = t "traces.edit.title", :name => @trace.name
render :action => "edit"
end
rescue ActiveRecord::RecordNotFound
redirect_to :action => :index, :display_name => current_user.display_name
end
- def data
- trace = Trace.visible.find(params[:id])
-
- if trace.public? || (current_user && current_user == trace.user)
- if Acl.no_trace_download(request.remote_ip)
- head :forbidden
- elsif request.format == Mime[:xml]
- send_data(trace.xml_file.read, :filename => "#{trace.id}.xml", :type => request.format.to_s, :disposition => "attachment")
- elsif request.format == Mime[:gpx]
- send_data(trace.xml_file.read, :filename => "#{trace.id}.gpx", :type => request.format.to_s, :disposition => "attachment")
- elsif trace.file.attached?
- redirect_to rails_blob_path(trace.file, :disposition => "attachment")
- else
- send_file(trace.trace_name, :filename => "#{trace.id}#{trace.extension_name}", :type => trace.mime_type, :disposition => "attachment")
- end
- else
- head :not_found
- end
- rescue ActiveRecord::RecordNotFound
- head :not_found
- end
-
- def georss
- @traces = Trace.visible_to_all.visible
-
- @traces = @traces.joins(:user).where(:users => { :display_name => params[:display_name] }) if params[:display_name]
-
- @traces = @traces.tagged(params[:tag]) if params[:tag]
- @traces = @traces.order("timestamp DESC")
- @traces = @traces.limit(20)
- @traces = @traces.includes(:user)
- end
-
private
def do_create(file, tags, description, visibility)