diff --git a/app/controllers/browse_controller.rb b/app/controllers/browse_controller.rb
index 785d8cdcf..e679442c1 100644
--- a/app/controllers/browse_controller.rb
+++ b/app/controllers/browse_controller.rb
@@ -17,6 +17,21 @@ class BrowseController < ApplicationController
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])
@@ -61,6 +76,7 @@ class BrowseController < ApplicationController
render :nothing => true, :status => :not_found
end
end
+
def node_history
begin
@node = Node.find(params[:id])
diff --git a/app/views/browse/_member.rhtml b/app/views/browse/_member.rhtml
index 104c7e1f9..2b9ee2b31 100644
--- a/app/views/browse/_member.rhtml
+++ b/app/views/browse/_member.rhtml
@@ -1,7 +1,5 @@
-<% if member.member.visible %>
- <%= link_to member.member.id.to_s, :controller => member.member_type, :id => member.member.id %> |
+ <%= link_to member.member_id.to_s, :controller => member.member_type, :id => member.member_id %> |
<%= h(member.member_type) %> |
<%= h(member.member_role) %> |
-<% end %>
diff --git a/app/views/browse/_relation_members.rhtml b/app/views/browse/_relation_members.rhtml
index 0e7772152..ebe20ba7e 100644
--- a/app/views/browse/_relation_members.rhtml
+++ b/app/views/browse/_relation_members.rhtml
@@ -1,4 +1,4 @@
-<% if relation.members.length != 0 %>
+<% if members.length != 0 %>
Members
@@ -6,6 +6,6 @@
Type |
Role |
- <%= render :partial => 'member', :collection => relation.relation_members %>
+ <%= render :partial => 'member', :collection => members %>
<% end %>
diff --git a/app/views/browse/relation_history.rhtml b/app/views/browse/relation_history.rhtml
new file mode 100644
index 000000000..f3a75cd07
--- /dev/null
+++ b/app/views/browse/relation_history.rhtml
@@ -0,0 +1,9 @@
+Relation History: <%= h(@name) %>
+<%= render :partial => 'common', :locals => { :obj => @relation, :type => "relation" } %>
+Hisorical Versions
+<% @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 } %>
+
+<% end %>
diff --git a/app/views/browse/relation_view.rhtml b/app/views/browse/relation_view.rhtml
index c75e485ae..5dc06f10a 100644
--- a/app/views/browse/relation_view.rhtml
+++ b/app/views/browse/relation_view.rhtml
@@ -1,4 +1,4 @@
Relation Browser: <%= h(@name) %>
<%= 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 } %>
diff --git a/config/routes.rb b/config/routes.rb
index b8de4eca9..83b39e615 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -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 '/relation/:id/history', :controller => 'browse', :action => 'relation_history', :id => /\d+/
# web site