Make traces/mine redirect to the user's traces page instead of rendering
authorTom Hughes <tom@compton.nu>
Sun, 10 Jan 2010 09:16:18 +0000 (09:16 +0000)
committerTom Hughes <tom@compton.nu>
Sun, 10 Jan 2010 09:16:18 +0000 (09:16 +0000)
it itself. Also make sure the traces page for a user includes the upload
form if the requestor is logged in as that user.

app/controllers/trace_controller.rb
app/views/trace/_trace_form.html.erb
app/views/trace/_trace_header.html.erb
app/views/trace/list.html.erb
app/views/trace/mine.html.erb [deleted file]

index 99f11d5469414a1c41c3c1389fe3ad6760c5b21b..4c4ec60a7ab59401785ad98b812a439025c4ade0 100644 (file)
@@ -96,20 +96,11 @@ class TraceController < ApplicationController
     @action = action
     @display_name = target_user.display_name if target_user
     @all_tags = tagset.values
+    @trace = Trace.new(:visibility => default_visibility) if @user
   end
 
   def mine
-    # Load the preference of whether the user set the trace public the last time
-    @trace = Trace.new
-    visibility = @user.preferences.find(:first, :conditions => {:k => "gps.trace.visibility"})
-    if visibility
-      @trace.visibility = visibility.v
-    elsif @user.preferences.find(:first, :conditions => {:k => "gps.trace.public", :v => "default"}).nil?
-      @trace.visibility = "private"
-    else
-      @trace.visibility = "public"
-    end
-    list(@user, "mine")
+    redirect_to :action => :list, :display_name => @user.display_name
   end
 
   def view
@@ -398,4 +389,16 @@ private
     redirect_to :action => :offline if OSM_STATUS == :gpx_offline
   end
 
+  def default_visibility
+    visibility = @user.preferences.find(:first, :conditions => {:k => "gps.trace.visibility"})
+
+    if visibility
+      visibility.v
+    elsif @user.preferences.find(:first, :conditions => {:k => "gps.trace.public", :v => "default"}).nil?
+      "private"
+    else
+      "public"
+    end
+  end
+
 end
index 194b8b2bc920135d9e30a12065ead1a9d48b07ee..3d93b65e818ffcd6f63e4760795313b0490bf5be 100644 (file)
@@ -1,3 +1,7 @@
+<% if @user.traces.count(:conditions => ["inserted=?", false]) > 4 %>
+  <p><%= t'trace.trace_header.traces_waiting', :count => @user.traces.count(:conditions => ["inserted=?", false]) %></p>
+<% end %>
+
 <% form_for :trace, @trace, :url => { :action => "create" }, :html => { :multipart => true } do |f| %>
 <table>
   <tr><td align="right"><%= t'trace.trace_form.upload_gpx' %></td><td><%= f.file_field :gpx_file, :size => 50, :maxlength => 255 %></td></tr>
index 5be7269c2e0691d392e28c1ac355ff0f15cb7fca..85de7739693b324e022721c5f39afa7039f0007c 100644 (file)
@@ -16,7 +16,3 @@
     | <%= link_to t('trace.trace_header.see_your_traces'), :controller => 'trace', :action => 'mine' %>
   <% end %>
 </p>
-
-<% if @user and @user.traces.count(:conditions => ["inserted=?", false]) > 4 %>
-  <p><%= t'trace.trace_header.traces_waiting', :count => @user.traces.count(:conditions => ["inserted=?", false]) %></p>
-<% end %>
index 51752a246603773b2e2da2f15ea402ae847015ff..fe7e5a13ac2d9fa753a0b93b914c753be343cd96 100644 (file)
@@ -1,3 +1,5 @@
 <%= render :partial => 'trace_header' %>
-
+<% if @user and @user.display_name == @display_name %>
+  <%= render :partial => 'trace_form' %>
+<% end %>
 <%= render :partial => 'trace_list' %>
diff --git a/app/views/trace/mine.html.erb b/app/views/trace/mine.html.erb
deleted file mode 100644 (file)
index 7deaa18..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<%= render :partial => 'trace_header' %>
-<%= render :partial => 'trace_form' %>
-<%= render :partial => 'trace_list' %>