From 1df4ad819cb5151d1bdd7bb98cf4833d219bd09d Mon Sep 17 00:00:00 2001 From: Shaun McDonald Date: Thu, 31 Dec 2009 00:10:10 +0000 Subject: [PATCH] Rather than just say public or private for each GPS trace in the list, instead state the new permission levels. Green colour means that it will be shown in the trace list to other users. Red means that other users won't see the trace in the list. Have added two new translations for the other trace permissions. --- app/controllers/trace_controller.rb | 19 ++++++++++--------- app/views/trace/_trace.html.erb | 6 +++++- config/locales/en.yml | 2 ++ 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/app/controllers/trace_controller.rb b/app/controllers/trace_controller.rb index 9addcbfec..99f11d546 100644 --- a/app/controllers/trace_controller.rb +++ b/app/controllers/trace_controller.rb @@ -44,7 +44,7 @@ class TraceController < ApplicationController # 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 @@ -59,7 +59,7 @@ class TraceController < ApplicationController conditions = ["gpx_files.visibility in ('public', 'identifiable') AND gpx_files.user_id = ?", target_user.id] #4 end end - + if params[:tag] @tag = params[:tag] @@ -71,7 +71,7 @@ class TraceController < ApplicationController conditions[0] += " AND 0 = 1" end end - + conditions[0] += " AND gpx_files.visible = ?" conditions << true @@ -91,7 +91,7 @@ class TraceController < ApplicationController end end end - + # final helper vars for view @action = action @display_name = target_user.display_name if target_user @@ -106,7 +106,7 @@ class TraceController < ApplicationController @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") @@ -134,7 +134,8 @@ class TraceController < ApplicationController 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 @@ -184,7 +185,7 @@ class TraceController < ApplicationController @trace.visibility = params[:trace][:visibility] if @trace.save redirect_to :action => 'view' - end + end end else render :nothing => true, :status => :forbidden @@ -225,7 +226,7 @@ class TraceController < ApplicationController 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 @@ -386,7 +387,7 @@ private else @user.preferences.create(:k => "gps.trace.visibility", :v => visibility) end - + end def offline_warning diff --git a/app/views/trace/_trace.html.erb b/app/views/trace/_trace.html.erb index 696c2045c..a3ae1fb08 100644 --- a/app/views/trace/_trace.html.erb +++ b/app/views/trace/_trace.html.erb @@ -18,8 +18,12 @@ <%= 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" %> <%= t'trace.trace.public' %> + <% elsif trace.visibility == "identifiable" %> + <%= t'trace.trace.identifiable' %> + <% elsif trace.visibility == "trackable" %> + <%= t'trace.trace.trackable' %> <% else %> <%= t'trace.trace.private' %> <% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index d6547fc78..4fd3e9967 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1239,7 +1239,9 @@ en: edit: "edit" edit_map: "Edit Map" public: "PUBLIC" + identifiable: "IDENTIFIABLE" private: "PRIVATE" + trackable: "TRACKABLE" by: "by" in: "in" map: "map" -- 2.43.2