layout 'site'
def list
- @traces = Trace.find(:all)
+ @traces = Trace.find(:all, :conditions => ['public = true'])
end
def mine
@traces = Trace.find(:all, :conditions => ['user_id = ?', @user.id])
end
+ def view
+ @trace = Trace.find(params[:id])
+ unless @trace.public
+ if @user
+ render :nothing, :status => 401 if @trace.user.id != @user.id
+ end
+ end
+ end
+
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']['data'] = @params['trace']['gpx_file'].read
-# @params['trace']['mime_type'] = @params['trace']['gpx_file'].content_type.chomp
@params['trace'].delete('gpx_file') # let's remove the field from the hash, because there's no such field in the DB anyway.
@trace = Trace.new(@params['trace'])
@trace.inserted = false
redirect_to :action => 'mine'
end
+
+ def georss
+ traces = Trace.find(:all, :conditions => ['public = true'], :order => 'timestamp DESC', :limit => 20)
+
+
+ end
+
+ def picture
+ trace = Trace.find(params[:id])
+ send_data(trace.large_picture, :filename => "#{trace.id}.gif", :type => 'image/png', :disposition => 'inline') if trace.public
+ end
+
+ def icon
+ trace = Trace.find(params[:id])
+ send_data(trace.icon_picture, :filename => "#{trace.id}.gif", :type => 'image/gif', :disposition => 'inline') if trace.public
+ end
end