]> git.openstreetmap.org Git - rails.git/commitdiff
Refactor traces list display
authorAndy Allan <git@gravitystorm.co.uk>
Wed, 17 Mar 2021 17:57:18 +0000 (17:57 +0000)
committerAndy Allan <git@gravitystorm.co.uk>
Wed, 17 Mar 2021 18:04:00 +0000 (18:04 +0000)
Ideas taken from #3036

app/views/traces/_trace.html.erb
app/views/traces/index.html.erb
config/locales/en.yml
test/controllers/traces_controller_test.rb

index c2f4183eb433df939a52300a996fbc453a6fd21c..b7325dc54e73e1035e806828a77101ab81b51064 100644 (file)
@@ -8,28 +8,49 @@
       <% end %>
     <% end %>
   </td>
-  <td><%= link_to trace.name, :controller => "traces", :action => "show", :display_name => trace.user.display_name, :id => trace.id %>
-    <span class="text-muted" title="<%= trace.timestamp %>"> ...
-      <% if trace.inserted %>
-        (<%= t ".count_points", :count => trace.size %>)
-      <% end %>
-      ... <%= time_ago_in_words(trace.timestamp, :scope => :'datetime.distance_in_words_ago') %></span>
-      <%= link_to_if trace.inserted?, t(".map"), { :controller => "site", :action => "index", :mlat => trace.latitude, :mlon => trace.longitude, :anchor => "map=14/#{trace.latitude}/#{trace.longitude}" }, { :title => t(".view_map") } %> /
-      <%= link_to t(".edit"), { :controller => "site", :action => "edit", :gpx => trace.id }, { :title => t(".edit_map") } %>
+  <td>
+    <span class="mr-2">
+      <%= link_to trace.name, :controller => "traces", :action => "show", :display_name => trace.user.display_name, :id => trace.id %>
+    </span>
 
-      <% badge_class = case trace.visibility
-                       when "public", "identifiable" then "success"
-                       else "danger"
-                       end %>
-      <span class="badge badge-<%= badge_class %> text-white"><%= t(".#{trace.visibility}") %></span>
+    <% if trace.inserted? %>
+      <span class="mr-2">
+        <%= t ".count_points", :count => trace.size %>
+      </span>
+    <% end %>
+
+    <% badge_class = case trace.visibility
+                     when "public", "identifiable" then "success"
+                     else "danger"
+                     end %>
+    <span class="badge badge-<%= badge_class %> text-white"><%= t(".#{trace.visibility}") %></span>
 
-      <br />
-      <%= trace.description %>
     <br />
-    <%= t ".by" %> <%= link_to trace.user.display_name, user_path(trace.user) %>
-    <% if !trace.tags.empty? %>
-      <%= t ".in" %>
-      <%= safe_join(trace.tags.collect { |tag| link_to_tag tag.tag }, ", ") %>
+    <span class="text-muted">
+      <span title="<%= trace.timestamp %>">
+        <%= time_ago_in_words(trace.timestamp, :scope => :'datetime.distance_in_words_ago') %>
+      </span>
+      <%= t ".by" %> <%= link_to trace.user.display_name, user_path(trace.user) %>
+      <% if !trace.tags.empty? %>
+        <%= t ".in" %>
+        <%= safe_join(trace.tags.collect { |tag| link_to_tag tag.tag }, ", ") %>
+      <% end %>
+    </span>
+    <br />
+    <p class="font-italic my-1">
+      <%= trace.description %>
+    </p>
+  </td>
+  <td>
+    <% if trace.inserted? %>
+      <ul class="secondary-actions">
+        <li>
+          <%= link_to t(".view_map"), { :controller => "site", :action => "index", :mlat => trace.latitude, :mlon => trace.longitude, :anchor => "map=14/#{trace.latitude}/#{trace.longitude}" } %>
+        </li>
+        <li>
+          <%= link_to t(".edit_map"), { :controller => "site", :action => "edit", :gpx => trace.id } %>
+        </li>
+      </ul>
     <% end %>
   </td>
 </tr>
index fa69c48a2aff55ffe22d27dce85d8247cc6015aa..b38436c0a4c5d3ac8e156537108620cb527a0e0a 100644 (file)
@@ -27,7 +27,7 @@
 
   <table id="trace_list" class="table table-borderless table-striped">
     <tbody>
-      <%= render @traces unless @traces.nil? %>
+      <%= render @traces %>
     </tbody>
   </table>
 
index a2b8ab4426985c796ba12bac29efd6d92e134a1b..ec4c2adf2fc7614c62ae9dd2b053012a5f124163 100644 (file)
@@ -2109,7 +2109,6 @@ en:
       more: "more"
       trace_details: "View Trace Details"
       view_map: "View Map"
-      edit: "edit"
       edit_map: "Edit Map"
       public: "PUBLIC"
       identifiable: "IDENTIFIABLE"
@@ -2117,7 +2116,6 @@ en:
       trackable: "TRACKABLE"
       by: "by"
       in: "in"
-      map: "map"
     index:
       public_traces: "Public GPS traces"
       my_traces: "My GPS traces"
index 9ced73414e05ca02d0388d45a21e59033a95a0ba..16a4741a079259a9da413b2519c1ca67be38a15a 100644 (file)
@@ -768,7 +768,7 @@ class TracesControllerTest < ActionDispatch::IntegrationTest
         assert_select "tr", :count => traces.length do |rows|
           traces.zip(rows).each do |trace, row|
             assert_select row, "a", Regexp.new(Regexp.escape(trace.name))
-            assert_select row, "span", Regexp.new(Regexp.escape("(#{trace.size} points)")) if trace.inserted?
+            assert_select row, "span", Regexp.new(Regexp.escape("#{trace.size} points")) if trace.inserted?
             assert_select row, "td", Regexp.new(Regexp.escape(trace.description))
             assert_select row, "td", Regexp.new(Regexp.escape("by #{trace.user.display_name}"))
           end