]> git.openstreetmap.org Git - rails.git/commitdiff
Refactor common changeset element subpages code
authorAnton Khorev <tony29@yandex.ru>
Wed, 6 Mar 2024 12:22:02 +0000 (15:22 +0300)
committerAnton Khorev <tony29@yandex.ru>
Mon, 3 Jun 2024 11:07:23 +0000 (14:07 +0300)
app/views/changesets/_elements.html.erb [new file with mode: 0644]
app/views/changesets/show.html.erb

diff --git a/app/views/changesets/_elements.html.erb b/app/views/changesets/_elements.html.erb
new file mode 100644 (file)
index 0000000..37ef2d1
--- /dev/null
@@ -0,0 +1,12 @@
+<div>
+  <%= render :partial => "paging_nav", :locals => { :type => type, :pages => pages } %>
+  <ul class="list-unstyled">
+    <% elements.each do |element| %>
+      <%= element_list_item type, element do
+            t "printable_name.current_and_old_links_html",
+              :current_link => link_to(printable_element_name(element), :controller => type.pluralize, :action => :show, :id => element.id[0]),
+              :old_link => link_to(printable_element_version(element), :controller => "old_#{type.pluralize}", :action => :show, :id => element.id[0], :version => element.version)
+          end %>
+    <% end %>
+  </ul>
+</div>
index d44ccfc075934a552ea4fc5c0ccf557de937ec15..110caab0319e309bfb5c600fc56e1ac8f1d85e88 100644 (file)
   <% end %>
 
   <% unless @ways.empty? %>
   <% end %>
 
   <% unless @ways.empty? %>
-    <%= render :partial => "paging_nav", :locals => { :type => "way", :pages => @way_pages } %>
-    <ul class="list-unstyled">
-      <% @ways.each do |way| %>
-        <%= element_list_item "way", way do
-              t "printable_name.current_and_old_links_html",
-                :current_link => link_to(printable_element_name(way), way_path(way.way_id)),
-                :old_link => link_to(printable_element_version(way), old_way_path(way.way_id, way.version))
-            end %>
-      <% end %>
-    </ul>
+    <%= render :partial => "elements", :locals => { :type => "way", :elements => @ways, :pages => @way_pages } %>
   <% end %>
 
   <% unless @relations.empty? %>
   <% end %>
 
   <% unless @relations.empty? %>
-    <%= render :partial => "paging_nav", :locals => { :type => "relation", :pages => @relation_pages } %>
-    <ul class="list-unstyled">
-      <% @relations.each do |relation| %>
-        <%= element_list_item "relation", relation do
-              t "printable_name.current_and_old_links_html",
-                :current_link => link_to(printable_element_name(relation), relation_path(relation.relation_id)),
-                :old_link => link_to(printable_element_version(relation), old_relation_path(relation.relation_id, relation.version))
-            end %>
-      <% end %>
-    </ul>
+    <%= render :partial => "elements", :locals => { :type => "relation", :elements => @relations, :pages => @relation_pages } %>
   <% end %>
 
   <% unless @nodes.empty? %>
   <% end %>
 
   <% unless @nodes.empty? %>
-    <%= render :partial => "paging_nav", :locals => { :type => "node", :pages => @node_pages } %>
-    <ul class="list-unstyled">
-      <% @nodes.each do |node| %>
-        <%= element_list_item "node", node do
-              t "printable_name.current_and_old_links_html",
-                :current_link => link_to(printable_element_name(node), node_path(node.node_id), { :rel => link_follow(node) }),
-                :old_link => link_to(printable_element_version(node), old_node_path(node.node_id, node.version), { :rel => link_follow(node) })
-            end %>
-      <% end %>
-    </ul>
+    <%= render :partial => "elements", :locals => { :type => "node", :elements => @nodes, :pages => @node_pages } %>
   <% end %>
 </div>
 
   <% end %>
 </div>