# four main cases:
# 1 - all traces, logged in = all public traces + all user's (i.e + all mine)
# 2 - all traces, not logged in = all public traces
- # 3 - user's traces, logged in as same user = all user's traces
+ # 3 - user's traces, logged in as same user = all user's traces
# 4 - user's traces, not logged in as that user = all user's public traces
if target_user.nil? # all traces
if @user
conditions = ["gpx_files.visibility in ('public', 'identifiable') AND gpx_files.user_id = ?", target_user.id] #4
end
end
-
+
if params[:tag]
@tag = params[:tag]
conditions[0] += " AND 0 = 1"
end
end
-
+
conditions[0] += " AND gpx_files.visible = ?"
conditions << true
end
end
end
-
+
# final helper vars for view
@action = action
@display_name = target_user.display_name if target_user
@trace.visibility = visibility.v
elsif @user.preferences.find(:first, :conditions => {:k => "gps.trace.public", :v => "default"}).nil?
@trace.visibility = "private"
- else
+ else
@trace.visibility = "public"
end
list(@user, "mine")
begin
do_create(params[:trace][:gpx_file], params[:trace][:tagstring],
params[:trace][:description], params[:trace][:visibility])
- rescue
+ rescue => ex
+ logger.debug ex
end
if @trace.id
@trace.visibility = params[:trace][:visibility]
if @trace.save
redirect_to :action => 'view'
- end
+ end
end
else
render :nothing => true, :status => :forbidden
conditions << params[:tag]
end
- traces = Trace.find(:all, :include => :user, :conditions => conditions,
+ traces = Trace.find(:all, :include => :user, :conditions => conditions,
:order => "timestamp DESC", :limit => 20)
rss = OSM::GeoRSS.new
else
@user.preferences.create(:k => "gps.trace.visibility", :v => visibility)
end
-
+
end
def offline_warning
<%= link_to t('trace.trace.more'), {:controller => 'trace', :action => 'view', :display_name => trace.user.display_name, :id => trace.id}, {:title => t('trace.trace.trace_details')} %> /
<%= link_to_if trace.inserted?, t('trace.trace.map'), {:controller => 'site', :action => 'index', :lat => trace.latitude, :lon => trace.longitude, :zoom => 14}, {:title => t('trace.trace.view_map')} %> /
<%= link_to t('trace.trace.edit'), {:controller => 'site', :action => 'edit', :gpx => trace.id }, {:title => t('trace.trace.edit_map')} %>
- <% if trace.public? %>
+ <% if trace.visibility == "public" %>
<span style="color:green"><%= t'trace.trace.public' %></span>
+ <% elsif trace.visibility == "identifiable" %>
+ <span style="color:green"><%= t'trace.trace.identifiable' %></span>
+ <% elsif trace.visibility == "trackable" %>
+ <span style="color:red"><%= t'trace.trace.trackable' %></span>
<% else %>
<span style="color:red"><%= t'trace.trace.private' %></span>
<% end %>