Convert trace views to use CSS based user specific components
authorTom Hughes <tom@compton.nu>
Wed, 21 Jul 2010 20:48:32 +0000 (21:48 +0100)
committerTom Hughes <tom@compton.nu>
Thu, 22 Jul 2010 19:47:29 +0000 (20:47 +0100)
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/view.html.erb

index c51f54c5e713b13899e2bb606b1875c5e6c8037b..d82308baa1163734a34218efe613bbfa7b7141b3 100644 (file)
@@ -23,10 +23,10 @@ class TraceController < ApplicationController
 
   # Counts and selects pages of GPX traces for various criteria (by user, tags, public etc.).
   #  target_user - if set, specifies the user to fetch traces for.  if not set will fetch all traces
-  def list(target_user = nil, action = "list")
+  def list
     # from display name, pick up user id if one user's traces only
     display_name = params[:display_name]
-    if target_user.nil? and !display_name.blank?
+    if !display_name.blank?
       target_user = User.find(:first, :conditions => { :status => ["active", "confirmed"], :display_name => display_name })
       if target_user.nil?
         @title = t'trace.no_such_user.title'
@@ -103,7 +103,7 @@ class TraceController < ApplicationController
     end
 
     # final helper vars for view
-    @action = action
+    @target_user = target_user
     @display_name = target_user.display_name if target_user
     @all_tags = tagset.values
     @trace = Trace.new(:visibility => default_visibility) if @user
index 3d93b65e818ffcd6f63e4760795313b0490bf5be..c6e755b1e5c45362242501fa026dadfd0fdc70e8 100644 (file)
@@ -1,5 +1,5 @@
-<% if @user.traces.count(:conditions => ["inserted=?", false]) > 4 %>
-  <p><%= t'trace.trace_header.traces_waiting', :count => @user.traces.count(:conditions => ["inserted=?", false]) %></p>
+<% if @target_user.traces.count(:conditions => ["inserted=?", false]) > 4 %>
+  <p><%= t'trace.trace_header.traces_waiting', :count => @target_user.traces.count(:conditions => ["inserted=?", false]) %></p>
 <% end %>
 
 <% form_for :trace, @trace, :url => { :action => "create" }, :html => { :multipart => true } do |f| %>
index 85de7739693b324e022721c5f39afa7039f0007c..37b944fd49cbfe0bf1a74300d1b65587c902a567 100644 (file)
@@ -6,13 +6,15 @@
 
 <p>
   <%= rss_link_to :action => 'georss', :display_name => @display_name, :tag => @tag %>
-  <% if @user.nil? or @display_name.nil? or @user.display_name != @display_name %>
+  <% unless_user(@target_user, :span) do %>
     | <%= link_to t('trace.trace_header.see_just_your_traces'), :action => 'mine' %>
   <% end %>
-  <% if @tag or @display_name %>
-    | <%= link_to t('trace.trace_header.see_all_traces'), :controller => 'trace', :action => 'list' %>
-  <% end %>
-  <% if @tag and @user and @user.display_name == @display_name %>
-    | <%= link_to t('trace.trace_header.see_your_traces'), :controller => 'trace', :action => 'mine' %>
+  <% if @tag %>
+    <% if @display_name %>
+      | <%= link_to t('trace.trace_header.see_all_traces'), :controller => 'trace', :action => 'list' %>
+    <% end %>
+    <% if_user(@target_user, :span) do %>
+      | <%= link_to t('trace.trace_header.see_your_traces'), :controller => 'trace', :action => 'mine' %>
+    <% end %>
   <% end %>
 </p>
index fe7e5a13ac2d9fa753a0b93b914c753be343cd96..a954dd76632d4cfbfb1a3879be44541b2bc1c32b 100644 (file)
@@ -1,5 +1,5 @@
 <%= render :partial => 'trace_header' %>
-<% if @user and @user.display_name == @display_name %>
+<% if_user(@target_user) do %>
   <%= render :partial => 'trace_form' %>
 <% end %>
 <%= render :partial => 'trace_list' %>
index 73638cb3d917da56649a77be0bd504b807746f4e..bfef5d90166b553e09672802e9c6902d39413177 100644 (file)
 
 <br /><br />
 
-<table>
-  <tr>
-    <% if @trace.user == @user %>
-    <td><%= button_to t('trace.view.edit_track'), :controller => 'trace', :action => 'edit', :id => @trace.id %></td>
-    <% end %>
-    <% if @trace.user == @user %>
-    <td><%= button_to t('trace.view.delete_track'), :controller => 'trace', :action => 'delete', :id => @trace.id %></td>
-    <% end %>
-  </tr>
-</table>
+<% if_user(@trace.user) do %>
+  <table>
+    <tr>
+      <td><%= button_to t('trace.view.edit_track'), :controller => 'trace', :action => 'edit', :id => @trace.id %></td>
+      <td><%= button_to t('trace.view.delete_track'), :controller => 'trace', :action => 'delete', :id => @trace.id %></td>
+    </tr>
+  </table>
+<% end %>