adding changeset stuff for the data browser
authorShaun McDonald <shaun@shaunmcdonald.me.uk>
Mon, 13 Oct 2008 20:48:58 +0000 (20:48 +0000)
committerShaun McDonald <shaun@shaunmcdonald.me.uk>
Mon, 13 Oct 2008 20:48:58 +0000 (20:48 +0000)
app/controllers/browse_controller.rb
app/models/changeset.rb
app/views/browse/_changeset_details.rhtml [new file with mode: 0644]
app/views/browse/changeset.rhtml [new file with mode: 0644]
config/routes.rb

index 408846c..94a8a09 100644 (file)
@@ -112,4 +112,15 @@ class BrowseController < ApplicationController
       render :action => "not_found", :status => :not_found
     end
   end
+  
+  def changeset
+    begin
+      @changeset = Changeset.find(params[:id])
+      
+      @title = "Changeset | #{@changeset.id}"
+    rescue ActiveRecord::RecordNotFound
+      @type = "changeset"
+      render :action => "not_found", :status => :not_found
+    end
+  end
 end
index 070314e..dc6c0e0 100644 (file)
@@ -47,6 +47,10 @@ class Changeset < ActiveRecord::Base
     return cs
   end
 
+  def tags_as_hash
+    return tags
+  end
+
   def tags
     unless @tags
       @tags = {}
diff --git a/app/views/browse/_changeset_details.rhtml b/app/views/browse/_changeset_details.rhtml
new file mode 100644 (file)
index 0000000..d8a911f
--- /dev/null
@@ -0,0 +1,19 @@
+<table>
+
+  <%= render :partial => "common_details", :object => changeset_details %>
+
+  <% unless node_details.ways.empty? and node_details.containing_relation_members.empty? %>
+    <tr valign="top">
+      <th>Part of:</th>
+      <td>
+        <table padding="0">
+          <% node_details.ways.each do |way| %>
+            <tr><td><%= link_to "Way " + way.id.to_s, :action => "way", :id => way.id.to_s %></td></tr>
+          <% end %>
+          <%= render :partial => "containing_relation", :collection => node_details.containing_relation_members %>
+        </table>
+      </td>
+    </tr>      
+  <% end %>
+
+</table>
diff --git a/app/views/browse/changeset.rhtml b/app/views/browse/changeset.rhtml
new file mode 100644 (file)
index 0000000..4ecdb8e
--- /dev/null
@@ -0,0 +1,38 @@
+<table width="100%">
+  <tr>
+    <td>
+      <h2>Changeset: <%= h(@changeset.id) %></h2>
+    </td>
+    <td>
+      <%= render :partial => "navigation" %>
+    </td>
+  </tr>
+  <tr valign="top">
+    <td>
+      <tr>
+        <th>Created at:</th>
+        <td><%= h(@changeset.created_at) %></td>
+      </tr>
+      
+      <% if @changeset.user.data_public? %>
+        <tr>
+          <th>Belongs to:</th>
+          <td><%= link_to h(@changeset.user.display_name), :controller => "user", :action => "view", :display_name => @changeset.user.display_name %></td>
+        </tr>
+      <% end %>
+      <% unless @changeset.tags_as_hash.empty? %>
+        <tr valign="top">
+          <th>Tags:</th>
+          <td>
+            <table padding="0">
+              <%= render :partial => "tag", :collection => @changeset.tags_as_hash %>
+            </table>
+          </td>
+        </tr>      
+      <% end %>
+    <hr />
+      <%= link_to "Download XML", :controller => "changeset", :action => "read" %>
+    </td>
+    <% # render :partial => "map", :object => @node %>
+  </tr>
+</table>
index 286e405..db59a28 100644 (file)
@@ -73,6 +73,7 @@ ActionController::Routing::Routes.draw do |map|
   map.connect '/browse/node/:id/history', :controller => 'browse', :action => 'node_history', :id => /\d+/
   map.connect '/browse/relation/:id', :controller => 'browse', :action => 'relation', :id => /\d+/
   map.connect '/browse/relation/:id/history', :controller => 'browse', :action => 'relation_history', :id => /\d+/
+  map.connect '/browse/changeset/:id', :controller => 'browse', :action => 'changeset', :id => /\d+/
   
   # web site