]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/changeset_controller.rb
Improve behaviour of browse pages when no bounding box is available
[rails.git] / app / controllers / changeset_controller.rb
index b280de58907e10eb1ad76dcfee3f031b81499013..36b3b5124ed3b725d3cc518f33096dc2150c0cc5 100644 (file)
@@ -55,7 +55,7 @@ class ChangesetController < ApplicationController
     changeset.set_closed_time_now
 
     changeset.save!
-    render :nothing => true
+    render :text => ""
   end
 
   ##
@@ -161,6 +161,10 @@ class ChangesetController < ApplicationController
       end
     end
 
+    # create changeset and user caches
+    changeset_cache = {}
+    user_display_name_cache = {}
+
     # create an osmChange document for the output
     result = OSM::API.new.get_xml_doc
     result.root.name = "osmChange"
@@ -173,16 +177,16 @@ class ChangesetController < ApplicationController
         if (elt.version == 1)
           # first version, so it must be newly-created.
           created = XML::Node.new "create"
-          created << elt.to_xml_node
+          created << elt.to_xml_node(changeset_cache, user_display_name_cache)
         else
           unless elt.visible
             # if the element isn't visible then it must have been deleted
             deleted = XML::Node.new "delete"
-            deleted << elt.to_xml_node
+            deleted << elt.to_xml_node(changeset_cache, user_display_name_cache)
           else
             # must be a modify
             modified = XML::Node.new "modify"
-            modified << elt.to_xml_node
+            modified << elt.to_xml_node(changeset_cache, user_display_name_cache)
           end
         end
     end
@@ -200,7 +204,7 @@ class ChangesetController < ApplicationController
 
     # create the conditions that the user asked for. some or all of
     # these may be nil.
-    changesets = Changeset.scoped
+    changesets = Changeset.all
     changesets = conditions_bbox(changesets, bbox)
     changesets = conditions_user(changesets, params['user'], params['display_name'])
     changesets = conditions_time(changesets, params['time'])
@@ -239,7 +243,7 @@ class ChangesetController < ApplicationController
       render :text => changeset.to_xml, :mime_type => "text/xml"
     else
 
-      render :nothing => true, :status => :bad_request
+      render :text => "", :status => :bad_request
     end
   end
 
@@ -249,7 +253,7 @@ class ChangesetController < ApplicationController
     if request.format == :atom and params[:page]
       redirect_to params.merge({ :page => nil }), :status => :moved_permanently
     else
-      changesets = conditions_nonempty(Changeset.scoped)
+      changesets = conditions_nonempty(Changeset.all)
 
       if params[:display_name]
         user = User.find_by_display_name(params[:display_name])