X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/93dab8a1272f8c807da841c0a55b37f74b65b8c3..374d9ea486dcf6bb6ad2fe5bb4e5a180a8f556a3:/app/controllers/trace_controller.rb diff --git a/app/controllers/trace_controller.rb b/app/controllers/trace_controller.rb index 06db32248..fa062b728 100644 --- a/app/controllers/trace_controller.rb +++ b/app/controllers/trace_controller.rb @@ -3,16 +3,31 @@ class TraceController < ApplicationController layout 'site' def list - @traces = Trace.find(:all) - end + @page = params[:page].to_i + + opt = Hash.new + opt[:conditions] = ['public = true'] + opt[:order] = 'timestamp DESC' + opt[:limit] = 20 + + if @page > 0 + opt[:offset => 20*@page] + end - def mine - @traces = Trace.find(:all, :conditions => ['user_id = ?', @user.id]) + if params[:tag] + + end + + @traces = Trace.find(:all , opt) end def view @trace = Trace.find(params[:id]) - render :nothing, :status => 401 if @trace.user.id != @user.id + unless @trace.public + if @user + render :nothing, :status => 401 if @trace.user.id != @user.id + end + end end def create @@ -34,6 +49,21 @@ class TraceController < ApplicationController redirect_to :action => 'mine' end + def georss + traces = Trace.find(:all, :conditions => ['public = true'], :order => 'timestamp DESC', :limit => 20) + + rss = OSM::GeoRSS.new + + #def add(latitude=0, longitude=0, title_text='dummy title', url='http://www.example.com/', description_text='dummy description', timestamp=Time.now) + traces.each do |trace| + rss.add(trace.latitude, trace.longitude, trace.name, url_for({:controller => 'trace', :action => 'view', :id => trace.id, :display_name => trace.user.display_name}), " 'icon', :id => trace.id, :user_login => trace.user.display_name})}'> GPX file with #{trace.size} points from #{trace.user.display_name}", trace.timestamp) + end + + response.headers["Content-Type"] = 'application/xml+rss' + + render :text => rss.to_s + 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 @@ -43,5 +73,4 @@ class TraceController < ApplicationController trace = Trace.find(params[:id]) send_data(trace.icon_picture, :filename => "#{trace.id}.gif", :type => 'image/gif', :disposition => 'inline') if trace.public end - end