]> git.openstreetmap.org Git - rails.git/commitdiff
Add support for relation history.
authorChristopher Schmidt <crschmidt@crschmidt.net>
Sun, 20 Apr 2008 15:32:25 +0000 (15:32 +0000)
committerChristopher Schmidt <crschmidt@crschmidt.net>
Sun, 20 Apr 2008 15:32:25 +0000 (15:32 +0000)
app/controllers/browse_controller.rb
app/views/browse/_member.rhtml
app/views/browse/_relation_members.rhtml
app/views/browse/relation_history.rhtml [new file with mode: 0644]
app/views/browse/relation_view.rhtml
config/routes.rb

index 785d8cdcf74ebf7a1a6b9a1a2bb1e19678fd5448..e679442c196cf02e8a7e7edda379b932cf09a437 100644 (file)
@@ -17,6 +17,21 @@ class BrowseController < ApplicationController
     end
   end
   
     end
   end
   
+  def relation_history
+    begin
+      @relation = Relation.find(params[:id])
+     
+      @name = @relation.tags['name'].to_s 
+      if @name.length == 0:
+       @name = "#" + @relation.id.to_s
+      end
+       
+      @title = 'Relation History | ' + (@name)
+    rescue ActiveRecord::RecordNotFound
+      render :nothing => true, :status => :not_found
+    end
+  end
+  
   def way_view 
     begin
       @way = Way.find(params[:id])
   def way_view 
     begin
       @way = Way.find(params[:id])
@@ -61,6 +76,7 @@ class BrowseController < ApplicationController
       render :nothing => true, :status => :not_found
     end
   end
       render :nothing => true, :status => :not_found
     end
   end
+  
   def node_history 
     begin
       @node = Node.find(params[:id])
   def node_history 
     begin
       @node = Node.find(params[:id])
index 104c7e1f99774b81e0b1114f5cab7f534ca85ba3..2b9ee2b31833e49cc436ba9b9fe7c8070dcd4c63 100644 (file)
@@ -1,7 +1,5 @@
-<% if member.member.visible %>
 <tr>
 <tr>
-  <td><%= link_to member.member.id.to_s, :controller => member.member_type, :id => member.member.id %></td>
+  <td><%= link_to member.member_id.to_s, :controller => member.member_type, :id => member.member_id %></td>
   <td><%= h(member.member_type) %></td>
   <td><%= h(member.member_role) %></td>
 </tr> 
   <td><%= h(member.member_type) %></td>
   <td><%= h(member.member_role) %></td>
 </tr> 
-<% end %>
index 0e77721527488048d913d8c3955b5e2908eb7037..ebe20ba7e87c9e7fdb24c73b799e8e33b70d9d73 100644 (file)
@@ -1,4 +1,4 @@
-<% if relation.members.length != 0 %>
+<% if members.length != 0 %>
 <h3>Members</h3> 
 <table id="keyvalue" cellpadding="3">
   <tr>
 <h3>Members</h3> 
 <table id="keyvalue" cellpadding="3">
   <tr>
@@ -6,6 +6,6 @@
     <th>Type</th>
     <th>Role</th>
   </tr>
     <th>Type</th>
     <th>Role</th>
   </tr>
-  <%= render :partial => 'member', :collection => relation.relation_members  %>
+  <%= render :partial => 'member', :collection => members  %>
 </table>
 <% end %>
 </table>
 <% end %>
diff --git a/app/views/browse/relation_history.rhtml b/app/views/browse/relation_history.rhtml
new file mode 100644 (file)
index 0000000..f3a75cd
--- /dev/null
@@ -0,0 +1,9 @@
+<h2>Relation History: <%= h(@name) %></h2>
+<%= render :partial => 'common', :locals => { :obj => @relation, :type => "relation" } %>
+<h2>Hisorical Versions</h2> 
+<% @relation.old_relations.reverse.each do |relation| %>
+<%= render :partial => 'common_editedby', :locals => { :obj => relation } %>
+<%= render :partial => 'tag_table', :locals => { :tags => relation.tags } %>
+<%= render :partial => 'relation_members', :locals => { :members => relation.old_members } %>
+<hr />
+<% end %>
index c75e485ae05cca50124f0c73b1f9887d51404cf5..5dc06f10a45a9afdba479e03bde50b67fcc32b8b 100644 (file)
@@ -1,4 +1,4 @@
 <h2>Relation Browser: <%= h(@name) %></h2>
 <%= render :partial => 'common', :locals => { :obj => @relation, :type => "relation" } %>
 <%= render :partial => 'tag_table', :locals => { :tags => @relation.tags } %>
 <h2>Relation Browser: <%= h(@name) %></h2>
 <%= render :partial => 'common', :locals => { :obj => @relation, :type => "relation" } %>
 <%= render :partial => 'tag_table', :locals => { :tags => @relation.tags } %>
-<%= render :partial => 'relation_members', :locals => { :relation => @relation } %>
+<%= render :partial => 'relation_members', :locals => { :members => @relation.relation_members } %>
index b8de4eca9bc9298940fc3b55ac05736a623799ff..83b39e615f5efb453372c64b9187bf15f91c5ee0 100644 (file)
@@ -60,6 +60,7 @@ ActionController::Routing::Routes.draw do |map|
   map.connect '/node/:id', :controller => 'browse', :action => 'node_view', :id => /\d+/
   map.connect '/node/:id/history', :controller => 'browse', :action => 'node_history', :id => /\d+/
   map.connect '/relation/:id', :controller => 'browse', :action => 'relation_view', :id => /\d+/
   map.connect '/node/:id', :controller => 'browse', :action => 'node_view', :id => /\d+/
   map.connect '/node/:id/history', :controller => 'browse', :action => 'node_history', :id => /\d+/
   map.connect '/relation/:id', :controller => 'browse', :action => 'relation_view', :id => /\d+/
+  map.connect '/relation/:id/history', :controller => 'browse', :action => 'relation_history', :id => /\d+/
   
   # web site
 
   
   # web site