Generate correct URLs for changeset feeds
authorTom Hughes <tom@compton.nu>
Sat, 19 Nov 2011 12:29:43 +0000 (12:29 +0000)
committerTom Hughes <tom@compton.nu>
Sat, 19 Nov 2011 12:42:37 +0000 (12:42 +0000)
app/controllers/changeset_controller.rb
app/views/changeset/list.atom.builder
app/views/changeset/list.html.erb
config/routes.rb

index 07a123bf8d53d82681854eb20d5f84347849e100..5c42013546fe6c84773c811f749e7c208809d7e0 100644 (file)
@@ -246,8 +246,6 @@ class ChangesetController < ApplicationController
     end
   end
 
-  
-  
   ##
   # list edits (open changesets) in reverse chronological order
   def list
@@ -269,6 +267,7 @@ class ChangesetController < ApplicationController
           @title = t 'user.no_such_user.title'
           @not_found_user = params[:display_name]
           render :template => 'user/no_such_user', :status => :not_found
+          return
         end
       end
 
@@ -312,6 +311,14 @@ class ChangesetController < ApplicationController
       
       @edits = changesets.order("changesets.created_at DESC").offset((@page - 1) * @page_size).limit(@page_size).preload(:user, :changeset_tags)
     end
+
+    render :action => :list
+  end
+
+  ##
+  # list edits as an atom feed
+  def feed
+    list
   end
 
 private
index 9512ef827dece7ffdd26a597afc91c4817b97e54..591f269b611d765a075914d319c15d4c7f367310 100644 (file)
@@ -1,6 +1,6 @@
 atom_feed(:language => I18n.locale, :schema_date => 2009,
           :id => url_for(params.merge({ :only_path => false })),
-          :root_url => url_for(params.merge({ :only_path => false, :format => nil })),
+          :root_url => url_for(params.merge({ :action => :list, :format => nil, :only_path => false })),
           "xmlns:georss" => "http://www.georss.org/georss") do |feed|
   feed.title @title
 
index c7cf63353032e5daba5c6da638a5654ed65c3ddf..5d12aa83794bb1cb7a8a2344acddc298e7f44b00 100644 (file)
@@ -10,8 +10,8 @@
 
 <%= render :partial => 'changeset_paging_nav' %>
 
-<%= atom_link_to params.merge({ :page => nil, :format => :atom }) %>
+<%= atom_link_to params.merge({ :page => nil, :action => :feed }) %>
 
 <% content_for :head do %>
-<%= auto_discovery_link_tag :atom, params.merge({ :page => nil, :format => :atom }) %>
+<%= auto_discovery_link_tag :atom, params.merge({ :page => nil, :action => :feed }) %>
 <% end %>
index 1916ae74a81dcd784aa60a7a2929855b94976e2e..cd7261cdf81a68f1759a835e458eae21448a128f 100644 (file)
@@ -85,9 +85,9 @@ OpenStreetMap::Application.routes.draw do
   match '/browse/relation/:id/history' => 'browse#relation_history', :id => /\d+/
   match '/browse/changeset/:id' => 'browse#changeset', :as => :changeset, :id => /\d+/
   match '/user/:display_name/edits' => 'changeset#list'
-  match '/user/:display_name/edits/feed' => 'changeset#list', :format => :atom
+  match '/user/:display_name/edits/feed' => 'changeset#feed', :format => :atom
   match '/browse/changesets' => 'changeset#list'
-  match '/browse/changesets/feed' => 'changeset#list', :format => :atom
+  match '/browse/changesets/feed' => 'changeset#feed', :format => :atom
   match '/browse' => 'changeset#list'
 
   # web site
@@ -96,7 +96,7 @@ OpenStreetMap::Application.routes.draw do
   match '/copyright' => 'site#copyright'
   match '/copyright/:copyright_locale' => 'site#copyright'
   match '/history' => 'changeset#list'
-  match '/history/feed' => 'changeset#list', :format => :atom
+  match '/history/feed' => 'changeset#feed', :format => :atom
   match '/export' => 'site#export'
   match '/login' => 'user#login'
   match '/logout' => 'user#logout'