Add history for ways and nodes, split 'last edited by' into a seperate template to...
authorChristopher Schmidt <crschmidt@crschmidt.net>
Sun, 20 Apr 2008 15:14:20 +0000 (15:14 +0000)
committerChristopher Schmidt <crschmidt@crschmidt.net>
Sun, 20 Apr 2008 15:14:20 +0000 (15:14 +0000)
app/controllers/browse_controller.rb
app/views/browse/_common.rhtml
app/views/browse/_common_editedby.rhtml [new file with mode: 0644]
app/views/browse/node_history.rhtml [new file with mode: 0644]
app/views/browse/way_history.rhtml [new file with mode: 0644]
config/routes.rb

index 1806558f2d43146747f4ab068bcd7c7f42fcac12..785d8cdcf74ebf7a1a6b9a1a2bb1e19678fd5448 100644 (file)
@@ -31,6 +31,21 @@ class BrowseController < ApplicationController
       render :nothing => true, :status => :not_found
     end
   end
+  
+  def way_history 
+    begin
+      @way = Way.find(params[:id])
+     
+      @name = @way.tags['name'].to_s 
+      if @name.length == 0:
+       @name = "#" + @way.id.to_s
+      end
+       
+      @title = 'Way History | ' + (@name)
+    rescue ActiveRecord::RecordNotFound
+      render :nothing => true, :status => :not_found
+    end
+  end
 
   def node_view 
     begin
@@ -46,4 +61,18 @@ class BrowseController < ApplicationController
       render :nothing => true, :status => :not_found
     end
   end
+  def node_history 
+    begin
+      @node = Node.find(params[:id])
+     
+      @name = @node.tags_as_hash['name'].to_s 
+      if @name.length == 0:
+       @name = "#" + @node.id.to_s
+      end
+       
+      @title = 'Node | ' + (@name)
+    rescue ActiveRecord::RecordNotFound
+      render :nothing => true, :status => :not_found
+    end
+  end
 end
index d5db7c6cc19355294c6118137f8126fc43b4b8e8..ec590bda0319381a88987a2fde017593b0c30909 100644 (file)
@@ -9,7 +9,4 @@ Deleted
 <% end %>
 <li><%= link_to h("History"), :controller => "api/#{API_VERSION}/"+type, :id => obj.id, :action => "history" %></li>
 </ul>
-Last edited: <%= h(obj.timestamp) %>
-<% if obj.user.data_public %>
-by <%= link_to h(obj.user.display_name), :controller => 'user', :action => 'view' , :display_name => obj.user.display_name %>
-<% end %>
+<%= render :partial => 'common_editedby', :locals => { :obj => obj } %>
diff --git a/app/views/browse/_common_editedby.rhtml b/app/views/browse/_common_editedby.rhtml
new file mode 100644 (file)
index 0000000..0f00f3e
--- /dev/null
@@ -0,0 +1,4 @@
+Last edited: <%= h(obj.timestamp) %>
+<% if obj.user.data_public %>
+by <%= link_to h(obj.user.display_name), :controller => 'user', :action => 'view' , :display_name => obj.user.display_name %>
+<% end %>
diff --git a/app/views/browse/node_history.rhtml b/app/views/browse/node_history.rhtml
new file mode 100644 (file)
index 0000000..ad46202
--- /dev/null
@@ -0,0 +1,8 @@
+<h2>Node History: <%= h(@name) %></h2>
+<%= render :partial => 'common', :locals => { :obj => @node, :type => "node" } %>
+<h2>Hisorical Versions</h2> 
+<% @node.old_nodes.reverse.each do |node| %>
+<%= render :partial => 'common_editedby', :locals => { :obj => node } %>
+<%= render :partial => 'tag_table', :locals => { :tags => node.tags_as_hash } %>
+<hr />
+<% end %>
diff --git a/app/views/browse/way_history.rhtml b/app/views/browse/way_history.rhtml
new file mode 100644 (file)
index 0000000..32aadb3
--- /dev/null
@@ -0,0 +1,8 @@
+<h2>Way History: <%= h(@name) %></h2>
+<%= render :partial => 'common', :locals => { :obj => @way, :type => "way" } %>
+<h2>Hisorical Versions</h2> 
+<% @way.old_ways.reverse.each do |way| %>
+<%= render :partial => 'common_editedby', :locals => { :obj => way } %>
+<%= render :partial => 'tag_table', :locals => { :tags => way.tags } %>
+<hr />
+<% end %>
index 77a8dd8c2064fc5ca70c55ef882fdc598c82e1c9..b8de4eca9bc9298940fc3b55ac05736a623799ff 100644 (file)
@@ -56,7 +56,10 @@ ActionController::Routing::Routes.draw do |map|
   
   # Data browsing
   map.connect '/way/:id', :controller => 'browse', :action => 'way_view', :id => /\d+/
+  map.connect '/way/:id/history', :controller => 'browse', :action => 'way_history', :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+/
   
   # web site